رد: اغلاق الصفقات المفتوحه
إذا كنت تقصد إغلاق الصفقات في ساعة معين فالطريقه مشابه لكود العمل في وقت معين ولكن بدلا من فتح الصفقه في وقت عمل الإكسبرت ستجعل غلق الصفقه في الوقت الذي قمت بتحديده
لذلك ستحتاج أولا إلى تعريف دالة إغلاق الصفقات خارج الداله ستارت
مثلا
كود PHP:
int CloseOrders()
{
for (int cnt = 0 ; cnt < OrdersTotal() ; cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if (OrderMagicNumber() == MagicNumber && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUY){
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,digits),3*Q);
}
if(OrderType()==OP_SELL){
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,digits),3*Q);
}
}
}
return(0);
}
ثم ستضع من ضمن شروط إغلاق الصفقه
كود PHP:
if(Hour()==CloseHour)CloseOrders()
أما إذا كنت تقصد إغلاق الصفقات بعد مرور وقت معين مثلا مرور ساعة على فتح الصفقه
فسوف تحتاج أولا إلى معرفة وقت فتح الصفقه والوقت الحالي ثم عند مرور مثلا ساعتين تقوم بإغلاق الصفقه
مثال الكود التالي
كود PHP:
void ordertime(){
int OrderTime;
for(int i=0;i<OrdersTotal();i++){
OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber){
OrderTime=(TimeCurrent()-OrderOpenTime())*60*60;
if(OrderTime>TimeHours){
if(OrderType()==OP_BUY){
OrderClose(OrderTicket(),OrderLots(),Bid,3);
}
if(OrderType()==OP_SELL){
OrderClose(OrderTicket(),OrderLots(),Ask,3);
}
}
}
}
}
وسيكون المتغير TimeHours هو عدد الساعات المطلوبه حتى يغلق الإكسبرت الصفقه بعد مرورها
رد: اغلاق الصفقات المفتوحه
انا كنت اقصد اول طريقه الاغلاق فى وقت معين
اشكرك جارى التجربه والافادة
ربنا يبارك فيك