النتائج 1 إلى 3 من 3
- 04-04-2011, 12:10 PM #1
طلب من مستر دولار تعديل هذا الكود Trailingstop
extern int TrailingProfit =25;
extern int TrailingStop =24;
طلب من مستر دولار تعديل هذا الكود Trailingstop
void TrailingPositions ()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol())
{
if((OrderType()==OP_BUY)&&(Bid)>(OrderOpenPrice()+ TrailingProfit*Point))
{
if(((OrderStopLoss())<(Bid-TrailingProfit*Point)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),
(Bid-TrailingStop*Point),OrderTakeProfit(),0,Blue);
return(0);
} }
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol())
{
if((OrderType()==OP_SELL)&&(Ask)<(OrderOpenPrice()-TrailingProfit*Point))
{
if(((OrderStopLoss())>((Ask+TrailingProfit*Point)) ))
{
OrderModify(OrderTicket(),OrderOpenPrice(),
(Ask+TrailingStop*Point),OrderTakeProfit(),0,Red);
return(0);
} } } } } }}
هذا هو الكود البرمجى الخاص بتعديل وقف الخسائر
وهذا هو الامر البرمجى الموضوع فى int start ()
if(MyOrdersTotal2()>0)
{ TrailingPositions () ;}
المطلوب تعديل المعادلة او الامر البرمجى
بحيث يتم تعديل مستوى وقف الخسائر على مستويات مختلفة فى حالة تحقق شرط محدد بمعنى
يتم فى الوقت الحالى تعديل المستوى اذا ارتفع السعر عن مستوى الشراء بمعدل 25 نقطه يتم تحريك وقف الخسائر بمعدل 24 نقطه - البيد bid فى حالة امر الشراء والعكس فى حالة امر البيع
ارجو التعديل بحيث اذا توافر شرط معين مثلا ارتفاع مؤشر الموفينج افريج اعلى خط الاسعار يتم تعديل الاوامر بحيث اذا ارتفع السعر 45 نقطة يتم تحريك وقف الخسائر بمعدل 44 نقطة اقل من البيد bid
ارجو ان تكون واضحهآخر تعديل بواسطة yasseryousef ، 04-04-2011 الساعة 12:13 PM
- 04-04-2011, 01:48 PM #2
ايه مافيش حد يساعد اخوكوا الغلبان
لا اله الا الله سيدنا محمدا رسول الله
- 06-04-2011, 02:14 AM #3
في هذه الحاله لن تحتاج إلى إستخدام التريلينج ستوب لكن ستستخدم خاصية البريك إيفين
كود PHP:void MoveBreakEven()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(BreakEven>0)
{
if(NormalizeDouble((Bid-OrderOpenPrice()),digits)>BreakEven*point)
{
if(NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),digits)<0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()+movestopto*point,digits),OrderTakeProfit(),0,Blue);
return(0);
}
}
}
}
else
{
if(BreakEven>0)
{
if(NormalizeDouble((OrderOpenPrice()-Ask),digits)>BreakEven*point)
{
if(NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),digits)<0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(OrderOpenPrice()-movestopto*point,digits),OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
}
كود PHP:if(BreakEven>0&&Ask>Ma)MoveBreakEven();
كود PHP:extern int BreakEven=0;
extern int movestopto=1;
movestopto عدد نقاط الربح التي تريد نقل الأستوب لوز عندها