@Konstantin Nikitin Sizin için daha kolay! sen Özelsin! Ders çalışıyorum! şalter henüz hiç kullanılmadı!
if (! OrderSelect (i, SELECT_BY_POS )) continue ;
if ( OrderSymbol ()!= Symbol ()) continue ;
А это как прочитать? Если (Ордер не выбран) продолжить;
Если (Текущий Символ не равен Символу) продолжить; Так? Или как?
Nasıl uygulanacağını bilen arkadaşlar: danışman, örneğin iStohastic() gibi göstergenin mutlak değerini alabilir. Ve göstergenin aşırı alım veya aşırı satım bölgesinden ayrıldığını nasıl belirleyebilirim?
Görsel olarak, örneğin, 80 ve 20 seviyelerine sahip Stokastik bir gösterge olarak.
void STOP_TAKE( void )
{
int SPREAD = ( int ) MarketInfo ( Symbol (), MODE_SPREAD );
if (stoploss<STOPLEVEL) stoploss= 0 ;
if (takeprofit<STOPLEVEL) takeprofit= 0 ;
for ( int i= 0 ; i< OrdersTotal (); i++)
{
if (! OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) continue ;
if ( OrderSymbol ()!= Symbol ()) continue ;
int tip = OrderType ();
if ( tip!= OP_BUY && tip!= OP_BUYSTOP && tip!= OP_BUYLIMIT &&
tip!= OP_SELL && tip!= OP_SELLSTOP && tip!= OP_SELLLIMIT ) continue ;
// переменные которые будут использоваться в любых ордерахint Ticket = OrderTicket ();
double OOP = OrderOpenPrice (),
OSL = OrderStopLoss (),
OTP = OrderTakeProfit ();
//---if ( OrderMagicNumber () == Magic )
{ //----------Если Ордера Советникаswitch (tip)
{
caseOP_BUY :
caseOP_BUYSTOP :
caseOP_BUYLIMIT :
{
if (takeprofit!= 0 ) TP = NormalizeDouble (OOP + takeprofit* Point , Digits ); else TP=OTP;
if (stoploss!= 0 ) SL = NormalizeDouble (OOP - (stoploss+SPREAD)* Point , Digits ); else SL=OSL;
if ( OrderModify (Ticket,OOP,SL,TP, 0 ,White)) Print ( "STOP_TAKE" ,Ticket, " SL " ,OSL, " -> " ,SL, " TP " ,OTP, " -> " ,TP);
elsePrint ( Symbol (), " Error STOP_TAKE" , GetLastError (), " Ticket " ,Ticket);
}
break ;
// end casedefault :
{
if (takeprofit!= 0 ) TP = NormalizeDouble (OOP - takeprofit* Point , Digits ); else TP=OTP;
if (stoploss!= 0 ) SL = NormalizeDouble (OOP + (stoploss+SPREAD)* Point , Digits ); else SL=OSL;
if ( OrderModify (Ticket,OOP,SL,TP, 0 ,White)) Print ( "STOP_TAKE" ,Ticket, " SL " ,OSL, " -> " ,SL, " TP " ,OTP, " -> " ,TP);
elsePrint ( Symbol (), " Error STOP_TAKE" , GetLastError (), " Ticket " ,Ticket);
} // end case
} // end switch
}
else
{ //----------Если Ордера Оператораswitch (tip)
{
caseOP_BUY :
caseOP_BUYSTOP :
caseOP_BUYLIMIT :
{
if (takeprofit!= 0 ) TP = NormalizeDouble (OOP + takeprofit* Point , Digits ); else TP=OTP;
if (stoploss!= 0 ) SL = NormalizeDouble (OOP - (stoploss+SPREAD)* Point , Digits ); else SL=OSL;
if ( OrderModify (Ticket,OOP,SL,TP, 0 ,White)) Print ( "STOP_TAKE" ,Ticket, " SL " ,OSL, " -> " ,SL, " TP " ,OTP, " -> " ,TP);
elsePrint ( Symbol (), " Error STOP_TAKE" , GetLastError (), " Ticket " ,Ticket);
}
break ;
// end casedefault :
{
if (takeprofit!= 0 ) TP = NormalizeDouble (OOP - takeprofit* Point , Digits ); else TP=OTP;
if (stoploss!= 0 ) SL = NormalizeDouble (OOP + (stoploss+SPREAD)* Point , Digits ); else SL=OSL;
if ( OrderModify (Ticket,OOP,SL,TP, 0 ,White)) Print ( "STOP_TAKE" ,Ticket, " SL " ,OSL, " -> " ,SL, " TP " ,OTP, " -> " ,TP);
elsePrint ( Symbol (), " Error STOP_TAKE" , GetLastError (), " Ticket " ,Ticket);
} // end case
} // end switch
} // end if
} // end for
} // end STOP_TAKE
Danışmanın ve diğerlerinin emirlerini değiştirirken tamamen aynı mantığa sahip olmanıza rağmen. Neden aralarında ayrım yapmanız gerektiği tam olarak açık değil. Ama ilkenin kendisinin işe yarayacağını düşünüyorum.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
@Konstantin Nikitin Sizin için daha kolay! sen Özelsin! Ders çalışıyorum! şalter henüz hiç kullanılmadı!
Rewerpool :
Ve nasıl okunur? (Sıra seçilmedi) devam ederse;
(Mevcut Sembol, Sembole eşit değilse) devam ederse; Böyle? Veya nasıl?
devam beyanı
@Konstantin Nikitin Anlaşıldı, bunun anlamı şu: Bir şey olursa beni düzeltin!
Ve işte başka bir soru: !OrderSelect - Bu şu anlama mı geliyor: Sipariş Yok mu veya Sipariş Seçilmedi mi?
Anlaşıldı, şu anlama gelir: Doğru, öyleyse!
Sıra seçilmezse döngünün sonraki elemanı seçilir
İşlemler ve ifadeler ve burada Mantıksal işlemlere bakıyoruz
bunun gibi daha fazla eklendi:
Neden böyle yazıyorsun?
Danışmanı yalnızca bir sembole koyarsanız, hepsinde işe yarar mı? Ve sihirbaz kendi görecek!
Tamamen karıştı!
Nasıl uygulanacağını bilen arkadaşlar: danışman, örneğin iStohastic() gibi göstergenin mutlak değerini alabilir. Ve göstergenin aşırı alım veya aşırı satım bölgesinden ayrıldığını nasıl belirleyebilirim?
Görsel olarak, örneğin, 80 ve 20 seviyelerine sahip Stokastik bir gösterge olarak.
Rewerpool : Eh, hatasız göründüğü gibi.
Danışmanın ve diğerlerinin emirlerini değiştirirken tamamen aynı mantığa sahip olmanıza rağmen. Neden aralarında ayrım yapmanız gerektiği tam olarak açık değil. Ama ilkenin kendisinin işe yarayacağını düşünüyorum.