،،،وعليكم السلام ورحمة الله وبركاته،،،
،،،يجب اولا عمل وظيفة لحساب عدد الصفقات المفتوحة،،،
كود:
int orderscnt(){
int cnt=0;
for(int i =0;i<OrdersTotal();i++){
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){
if(OrderSymbol()==Symbol() && Magicnumber==OrderMagicNumber()){
cnt++;
}
}
}
return(cnt);
}
،،،بعد ذلك يتم كتابة كود فتح الصفقتين،،،
كود:
if(orderscnt()==0){
bool b = OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"",0,0,clrNONE);
bool s = OrderSend(Symbol(),OP_SELL,Lot,Bid,3,0,0,"",0,0,clrNONE);
}
،،،بعد ذلك كود التريلينج المخفي ونقوم بعمل وظيفة لمعرفة الصفقات التي تخطت قيمة التريلينج وعمل متغير داخلي لكل صفقة لحفظ القيمة،،،
كود:
void HiddenTrailingStop()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&HiddenTrailingStop>0)
{
if(OrderType()==OP_BUY)
{
if(Bid>=OrderOpenPrice()+HiddenTrailingStop*Point&&(GlobalVariableGet("TrailingStop"+OrderTicket())<Bid-HiddenTrailingStop*Point||GlobalVariableGet("TrailingStop"+OrderTicket())==0))
{
GlobalVariableSet("TrailingStop"+OrderTicket(),Bid-HiddenTrailingStop*Point);
}
}
else
{
if(Ask<=OrderOpenPrice()-HiddenTrailingStop*Point&&(GlobalVariableGet("TrailingStop"+OrderTicket())>Ask+HiddenTrailingStop*Point||GlobalVariableGet("TrailingStop"+OrderTicket())==0))
{
GlobalVariableSet("TrailingStop"+OrderTicket(),Ask+HiddenTrailingStop*Point);
}
}
}
}
}
،،،ونقوم بعمل وظيفة لتفعيل الاغلاق عند وصول السعر للتريلينج،،،
كود:
void CloseOrders()
{
for(int i=OrdersTotal()-1;i>=0;i--)
{
bool select=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY&&GlobalVariableGet("TrailingStop"+OrderTicket())!=0)
{
if(Bid<=GlobalVariableGet("TrailingStop"+OrderTicket()))
{
bool closeB=OrderClose(OrderTicket(),OrderLoTrailingStop(),Bid,3);
GlobalVariableDel("TrailingStop"+OrderTicket());
}
}
if(OrderType()==OP_SELL&&GlobalVariableGet("TrailingStop"+OrderTicket())!=0)
{
if(Ask>=GlobalVariableGet("TrailingStop"+OrderTicket()))
{
bool closeS=OrderClose(OrderTicket(),OrderLoTrailingStop(),Ask,3);
GlobalVariableDel("TrailingStop"+OrderTicket());
}
}
}
}
}
،،،بالنسبة لمعرفة اذا كانت صفقة بعينها رابحة ام خاسرة يتم البحث عنها بشئ مميز ممكن برقم ماجيك نمبر او بكومنت،،،
،،،تحياتي،،،