Здравствуйте при модификации появляется упорно ошибка 130... может ктото подскажет?
bool x;
x=OrderModify(OrderTicket(),0,NormalizeDouble(Ask,Digits)-NormalizeDouble(Tr,Digits),OrderTakeProfit(),0,Red);
При чем MarketInfo (Symbol();MODE_STOPLEVEL) равно 30-ти меньше зания Tr которок в свою очередь равно 40.
перед етим вывожу
double Buy_modyfy = NormalizeDouble(Ask,Digits)-NormalizeDouble(dist,Digits);
Print("Buy modyfy ", Buy_modyfy);
и все прекрано... нормальное число приведенное до нужного количества знаков...
Может у когото есть идеи?
Спасибо.
- [АРХИВ] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 3.
- почему не работает if?
- Как кодировать?
prt:
Здравствуйте при модификации появляется упорно ошибка 130... может ктото подскажет?bool x; x=OrderModify(OrderTicket(),0,NormalizeDouble(Ask,Digits)-NormalizeDouble(Tr,Digits),OrderTakeProfit(),0,Red);При чем MarketInfo (Symbol();MODE_STOPLEVEL) равно 30-ти меньше зания Tr которок в свою очередь равно 40.перед етим вывожу double Buy_modyfy = NormalizeDouble(Ask,Digits)-NormalizeDouble(dist,Digits);Print("Buy modyfy ", Buy_modyfy);и все прекрано... нормальное число приведенное до нужного количества знаков...Может у когото есть идеи? Спасибо.
Здравствуйте при модификации появляется упорно ошибка 130... может ктото подскажет?bool x; x=OrderModify(OrderTicket(),0,NormalizeDouble(Ask,Digits)-NormalizeDouble(Tr,Digits),OrderTakeProfit(),0,Red);При чем MarketInfo (Symbol();MODE_STOPLEVEL) равно 30-ти меньше зания Tr которок в свою очередь равно 40.перед етим вывожу double Buy_modyfy = NormalizeDouble(Ask,Digits)-NormalizeDouble(dist,Digits);Print("Buy modyfy ", Buy_modyfy);и все прекрано... нормальное число приведенное до нужного количества знаков...Может у когото есть идеи? Спасибо.
Как-то так, но с тем учётом, что нужный ордер уже выбран при помощи OrderSelect();
//+------------------------------------------------------------------+ int op=OrderType(), Tr=40; string symbol=OrderSymbol(); double sl=0, ask=SymbolInfoDouble(symbol,SYMBOL_ASK), bid=SymbolInfoDouble(symbol,SYMBOL_BID), pt=SymbolInfoDouble(symbol,SYMBOL_POINT); int dg=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS); int sp=(int)SymbolInfoInteger(symbol,SYMBOL_SPREAD); int lv=(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL); int stopLevel=(lv==0)?sp*2:lv; if(op==OP_BUY || op==OP_SELL) { sl=(op==OP_BUY)?fmin(NormalizeDouble(bid-Tr*pt,dg),NormalizeDouble(bid-(stopLevel+1)*pt,dg)): fmax(NormalizeDouble(ask+Tr*pt,dg),NormalizeDouble(ask+(stopLevel+1)*pt,dg)); bool x=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,clrRed); } //+------------------------------------------------------------------+
Не проверял, на коленке набросал. Думаю, разберётесь. Хотя, тут в любом случае стандартную OrderModify() нужно обернуть в полноценную функцию с проверкой и обработкой всех кодов возврата сервера, иначе - только для тестера.
вторым параметром - цена открытия, а она нулевой не бывает.
evillive:
вторым параметром - цена открытия, а она нулевой не бывает.
Там ещё и уровень стопа не верно рассчитывается.
вторым параметром - цена открытия, а она нулевой не бывает.
artmedia70:
Как-то так, но с тем учётом, что нужный ордер уже выбран при помощи OrderSelect();
Не проверял, на коленке набросал. Думаю, разберётесь. Хотя, тут в любом случае стандартную OrderModify() нужно обернуть в полноценную функцию с проверкой и обработкой всех кодов возврата сервера, иначе - только для тестера.
Да и тут не правильно. Скорее так:
//+------------------------------------------------------------------+ int op=OrderType(), Tr=40; bool x=false; string symbol=OrderSymbol(); double sl=0, ask=SymbolInfoDouble(symbol,SYMBOL_ASK), bid=SymbolInfoDouble(symbol,SYMBOL_BID), pt=SymbolInfoDouble(symbol,SYMBOL_POINT); int dg=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS); int sp=(int)SymbolInfoInteger(symbol,SYMBOL_SPREAD); int lv=(int)SymbolInfoInteger(symbol,SYMBOL_TRADE_STOPS_LEVEL); int stopLevel=(lv==0)?sp*2:lv; if(op==OP_BUY) { sl=fmin(NormalizeDouble(bid-Tr*pt,dg),NormalizeDouble(bid-(stopLevel+1)*pt,dg)); if(OrderStopLoss()<sl) x=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,clrBlue); } if(op==OP_SELL) { sl=fmax(NormalizeDouble(ask+Tr*pt,dg),NormalizeDouble(ask+(stopLevel+1)*pt,dg)); if(OrderStopLoss()==0 || OrderStopLoss()>sl) x=OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0,clrRed); } //+------------------------------------------------------------------+
Спасибо огромное корифеям!!! Постараюсь разобратся... Не подскажите есть ли где-то заготовка с примерным набором ошибок для бработки при применнеи модификации ордеров. Заранее благодарен!
prt:
Спасибо огромное корифеям!!! Постараюсь разобратся... Не подскажите есть ли где-то заготовка с примерным набором ошибок для бработки при применнеи модификации ордеров. Заранее благодарен!
Спасибо огромное корифеям!!! Постараюсь разобратся... Не подскажите есть ли где-то заготовка с примерным набором ошибок для бработки при применнеи модификации ордеров. Заранее благодарен!
Или какую вам заготовку нужно?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь