النتائج 1 إلى 2 من 2
- 04-11-2016, 10:57 AM #1
Trailing Stop Trailing Step Trailing Profit
Trailing Stop Trailing Step Trailing Profit
ممكن عمل اكسبيرت زي التريلنج استوب يكون للترينج لوس
بمعني السعر اذا اتحرك للاعلي وانا عامل امر شراء وبيع كل ما السعر يطلع 60 نقطه
امر الشراء يعمل استوب عند 30
وامر البيع يحرك الاستوب عند 30
والاستب عدد النقاط اللي احددها
وشكرا
- 07-11-2016, 06:54 PM #2
جرب هدا الكود
كود PHP:void MoveTrailingBuy(){
for(int cnt=0;cnt<OrdersTotal();cnt++){
bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic){
if(OrderType()==OP_BUY){
if(TrailingStop>0&&NormalizeDouble(Bid-TrailingStep*point,Digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,Digits)){
if((NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(Bid-TrailingStop*point,Digits))||(OrderStopLoss()==0)){
bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-TrailingStop*point,Digits),TakeProfit,0,Blue);
}}}
if(OrderType()==OP_SELL){
if(TrailingStop>0&&NormalizeDouble(Ask-TrailingStep*point,Digits)>NormalizeDouble(OrderOpenPrice()+TrailingStop*point,Digits)){
if(NormalizeDouble(OrderTakeProfit(),Digits)<NormalizeDouble(Ask-TrailingStop*point,Digits)||(OrderTakeProfit()==0)){
bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,NormalizeDouble(Ask-TrailingStop*point,Digits),0,Red);
}}}
}
}
}
void MoveTrailingSell(){
for(int cnt=0;cnt<OrdersTotal();cnt++){
bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderSymbol()==Symbol()&&OrderMagicNumber()==magic){
if(OrderType()==OP_BUY){
if(TrailingStop>0&&NormalizeDouble(Bid+TrailingStep*point,Digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,Digits)){
if(NormalizeDouble(OrderTakeProfit(),Digits)>(NormalizeDouble(Bid+TrailingStop*point,Digits))||(OrderTakeProfit()==0)){
bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,NormalizeDouble(Bid+TrailingStop*point,Digits),0,Red);
}}}
if(OrderType()==OP_SELL){
if(TrailingStop>0&&NormalizeDouble(Ask+TrailingStep*point,Digits)<NormalizeDouble(OrderOpenPrice()-TrailingStop*point,Digits)){
if(NormalizeDouble(OrderStopLoss(),Digits)>(NormalizeDouble(Ask+TrailingStop*point,Digits))||OrderStopLoss()==0){
bool modify=OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*point,Digits),TakeProfit,0,Blue);
}}}
}
}
}