Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 425 1...418419420421422423424425426427428429430431432...1599 Новый комментарий Sergei Konoplev 2015.08.31 13:28 #4241 Tapochun: Нужно добавить в код свое перечисление.А пример кода можно?extern string Variant = "One, Two, Three"; Что надо дописать чтоб стало так: Leanid Aladzyeu 2015.08.31 13:28 #4242 Tapochun: Код ошибки?130 стоп лосс не меняет [Удален] 2015.08.31 13:30 #4243 Sergei Konoplev: А пример кода можно?Что надо дописать чтоб стало так:// На глобальном уровне enum MY_ENUM { ONE, // One TWO, // Two THREE // Three }; input MY_ENUM Variant = ONE; Renat Akhtyamov 2015.08.31 13:35 #4244 Leanid Aladzyeu: stoplevel не совсем удачный вариант для расчета стопа, тем более что int130: "Слишком близкие стопы или неправильно рассчитанные или ненормализованные цены в стопах (или в цене открытия отложенного ордера)."проще задать конкретноепробуем:double CALC_SL=25;//величина стоп-лосса в пунктах double severs_min_stop = CALC_SL*MarketInfo(symbol,MODE_POINT); [Удален] 2015.08.31 13:37 #4245 Leanid Aladzyeu: Во время выставления распринтуйте стоп предыдущий, стоп полученный и т.д. Artyom Trishkin 2015.08.31 20:23 #4246 Leanid Aladzyeu: Где ошибка? //+------------------------------------------------------------------+ double CorrectStopLoss(string sy,int op,double price_set,double stop_loss) { if(stop_loss==0) return(0); double pt=SymbolInfoDouble(sy,SYMBOL_POINT); double price=(op==OP_BUY)?SymbolInfoDouble(sy,SYMBOL_BID):(op==OP_SELL)?SymbolInfoDouble(sy,SYMBOL_ASK):price_set; int lv=StopLevel(sy), dg=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS); if(op==OP_BUY || op==OP_BUYLIMIT || op==OP_BUYSTOP) return(NormalizeDouble(fmin(price-(lv+1)*pt,stop_loss),dg)); else return(NormalizeDouble(fmax(price+(lv+1)*pt,stop_loss),dg)); } //+------------------------------------------------------------------+ double CorrectStopLoss(string sy,int op,double price_set,int stop_loss) { if(stop_loss==0) return(0); double pt=SymbolInfoDouble(sy,SYMBOL_POINT); double price=(op==OP_BUY)?SymbolInfoDouble(sy,SYMBOL_BID):(op==OP_SELL)?SymbolInfoDouble(sy,SYMBOL_ASK):price_set; int lv=StopLevel(sy), dg=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS); if(op==OP_BUY || op==OP_BUYLIMIT || op==OP_BUYSTOP) return(NormalizeDouble(fmin(price-(lv+1)*pt,price-stop_loss*pt),dg)); else return(NormalizeDouble(fmax(price+(lv+1)*pt,price+stop_loss*pt),dg)); } //+------------------------------------------------------------------+ double CorrectTakeProfit(string sy,int op,double price_set,double take_profit) { if(take_profit==0) return(0); double pt=SymbolInfoDouble(sy,SYMBOL_POINT); double price=(op==OP_BUY)?SymbolInfoDouble(sy,SYMBOL_BID):(op==OP_SELL)?SymbolInfoDouble(sy,SYMBOL_ASK):price_set; int lv=StopLevel(sy), dg=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS); if(op==OP_BUY || op==OP_BUYLIMIT || op==OP_BUYSTOP) return(NormalizeDouble(fmax(price+(lv+1)*pt,take_profit),dg)); else return(NormalizeDouble(fmin(price-(lv+1)*pt,take_profit),dg)); } //+------------------------------------------------------------------+ double CorrectTakeProfit(string sy,int op,double price_set,int take_profit) { if(take_profit==0) return(0); double pt=SymbolInfoDouble(sy,SYMBOL_POINT); double price=(op==OP_BUY)?SymbolInfoDouble(sy,SYMBOL_BID):(op==OP_SELL)?SymbolInfoDouble(sy,SYMBOL_ASK):price_set; int lv=StopLevel(sy), dg=(int)SymbolInfoInteger(sy,SYMBOL_DIGITS); if(op==OP_BUY || op==OP_BUYLIMIT || op==OP_BUYSTOP) return(NormalizeDouble(fmax(price+(lv+1)*pt,price+take_profit*pt),dg)); else return(NormalizeDouble(fmin(price-(lv+1)*pt,price-take_profit*pt),dg)); } //+------------------------------------------------------------------+ int StopLevel(string sy) { int sp=(int)SymbolInfoInteger(sy,SYMBOL_SPREAD); int lv=(int)SymbolInfoInteger(sy,SYMBOL_TRADE_STOPS_LEVEL); return((lv==0)?sp*2:lv); } //+------------------------------------------------------------------+ Leanid Aladzyeu 2015.09.01 00:58 #4247 Стоплоссы в ините ровняю ( так проще, хоть и не надежнее ) Как получить значение индикатора Зигзага? в справке не нашел его . Aleksey Vyazmikin 2015.09.01 01:16 #4248 Leanid Aladzyeu: Стоплоссы в ините ровняю ( так проще, хоть и не надежнее ) Как получить значение индикатора Зигзага? в справке не нашел его . Через iCustom. Aleksey Vyazmikin 2015.09.01 06:46 #4249 new-rena: if(prevTime!=iTime(Symbol(),PERIOD_M5,0,0)) Помаялся я - лишний ноль в функции написали.Сейчас опробую - спасибо. Sergei Maksimenko 2015.09.01 07:00 #4250 Tapochun: Вместо 0 нужно подставить OrdersHistoryTotal()-1Спасибо большое! 1...418419420421422423424425426427428429430431432...1599 Новый комментарий
Нужно добавить в код свое перечисление.
А пример кода можно?
Что надо дописать чтоб стало так:
Код ошибки?
А пример кода можно?
Что надо дописать чтоб стало так:
stoplevel не совсем удачный вариант для расчета стопа, тем более что int
проще задать конкретное
пробуем:
Где ошибка?
Стоплоссы в ините ровняю ( так проще, хоть и не надежнее )
Как получить значение индикатора Зигзага? в справке не нашел его .
Стоплоссы в ините ровняю ( так проще, хоть и не надежнее )
Как получить значение индикатора Зигзага? в справке не нашел его .
Помаялся я - лишний ноль в функции написали.
Сейчас опробую - спасибо.
Вместо 0 нужно подставить OrdersHistoryTotal()-1