Прошу прощение за хламление
OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1)-SL*Point,iHigh(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
return value of 'OrderSend' should be checked 8008 33 13
- Вопросы от начинающих MQL4 MT4 MetaTrader 4
- [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда.
- Советники: 10 пунктов по EURUSD & GBPUSD
Поставьте перед вызовом:
bool check =
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iLow(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);Спасибо вот еще вопрос где можно по учится павлик return value of 'OrderSend' should be checked "8008" 37 10
AZIK_REDKO:
Спасибо вот еще вопрос где можно по учится павлик return value of 'OrderSend' should be checked "8008" 37 10
К сожалению, не могу понять, какой именно вопрос Вы задаете. "Где можно поучиться ...." чего? Павлик - это мужское имя (Павел).
Спасибо вот еще вопрос где можно по учится павлик return value of 'OrderSend' should be checked "8008" 37 10
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iLow(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); return value of 'OrderSend' should be checked "8008" 37 10 OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iHigh(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); return value of 'OrderSend' should be checked "8008" 44 10 OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1)-SL*Point,iLow(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); return value of 'OrderSend' should be checked "8008" 47 10как можно эти исправить ошибки ? первое помогло bool check =
AZIK_REDKO:
как можно эти исправить ошибки ? первое помогло bool check =
как можно эти исправить ошибки ? первое помогло bool check =
И дальше то же самое. Только уже не нужно объявлять переменную check. Пишите:
bool check = OrderSend... ... check = OrderSend... ... check = OrderSend...
AZIK_REDKO:
Игорь у меня такой вопрос почему робот на демо-счете работает , а на реальном-счете при тестер не работает .
Трудно сказать. Приложите код эксперта, посмотрим. В крайнем случае (если нет возможности привести код эксперта) посмотрите, что в логах. Возможно, там есть сообщения об ошибках.
Игорь у меня такой вопрос почему робот на демо-счете работает , а на реальном-счете при тестер не работает .
#property copyright "TO" extern int TYPE=0; extern int TP = 20; extern int SL = 50; extern double lot=0.01; // сумма ставки в $ extern int Magic_Number=639713; int init(){ return(0);} int deinit(){ return(0);} //=================================================================== //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double SPREAD=MarketInfo(Symbol(),MODE_SPREAD)*Point; double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; if(Orders_Total(Magic_Number,Symbol())==0) { //Установка ордеров if(TYPE<=0) { // Здесь установим STOP-ордера if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD-STOPLEVEL>Ask) bool check = OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1)-SL*Point,iHigh(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); Alert(GetLastError()); // Сообщение об ошибке Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1)+STOPLEVEL<Bid) check = OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iLow(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low"); } if(TYPE>=1) { // Здесь установим LIMIT-ордера if(iHigh(Symbol(),PERIOD_D1,1)-STOPLEVEL>Bid) check = OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iHigh(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1)+STOPLEVEL<Ask) check = OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1)-SL*Point,iLow(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low"); } } return(0); } //---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----// int Orders_Total(int mn,string sym) { int num_orders=0; for(int i=OrdersTotal()-1;i>=0;i--) { bool check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==mn && sym==OrderSymbol()) num_orders++; } return(num_orders); }; //+------------------------------------------------------------------+вот
AZIK_REDKO:
вот
вот
В принципе каких-то грубых ошибок, которые бы не дали возможность советнику работать, нет. Хотя, конечно, много, чего не учтено (проверок почти нет). Если немного подрихтовать код, чтобы видеть реальные ошибки, то код станет таким:
#property copyright "TO" extern int TYPE=0; extern int TP = 20; extern int SL = 50; extern double lot=0.01; // сумма ставки в $ extern int Magic_Number=639713; int init(){ return(0);} int deinit(){ return(0);} //=================================================================== //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { double SPREAD=MarketInfo(Symbol(),MODE_SPREAD)*Point; double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point; if(Orders_Total(Magic_Number,Symbol())==0) { //Установка ордеров if(TYPE<=0) { // Здесь установим STOP-ордера if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD-STOPLEVEL>Ask) { int ticket = OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1)-SL*Point,iHigh(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); if (ticket < 0) Alert("Ошибка установки ордера Buy Stop: ", GetLastError()); // Сообщение об ошибке } else Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1)+STOPLEVEL<Bid) { ticket = OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iLow(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); if (ticket < 0) Alert("Ошибка установки ордера Sell Stop: ", GetLastError()); // Сообщение об ошибке } else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low"); } if(TYPE>=1) { // Здесь установим LIMIT-ордера if(iHigh(Symbol(),PERIOD_D1,1)-STOPLEVEL>Bid) { ticket = OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iHigh(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta); if (ticket < 0) Alert("Ошибка установки ордера Sell Limit: ", GetLastError()); // Сообщение об ошибке } else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High"); if(iLow(Symbol(),PERIOD_D1,1)+STOPLEVEL<Ask) { ticket = OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1)-SL*Point,iLow(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); if (ticket < 0) Alert("Ошибка установки ордера Buy Limit: ", GetLastError()); // Сообщение об ошибке } else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low"); } } return(0); } //---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----// int Orders_Total(int mn,string sym) { int num_orders=0; for(int i=OrdersTotal()-1;i>=0;i--) { bool check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==mn && sym==OrderSymbol()) num_orders++; } return(num_orders); }; //+------------------------------------------------------------------+
Здесь тоже далеко до совершенства, но работать во многих случаях будет (у меня работает).
Просто смотрите, какие ошибки выдает эксперт.
пробовал на реальном счете в тестер стратегий он ставок не показывал . в журнале стратегий пишет эти ошибки
Expertaddddd EURUSD,M15: OrderSend error 130
Expertaddddd EURUSD,M15: Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь