Я взял написал простенький скрипт (установка двух отложенников в обе стороны близко к рынку, чтобы кидать его на график перед выходом новости, чтобы не суетиться вручную), уж казалось бы - куда проще, однако не работает, ордеров никаких не открывает, и в журнале просто пишет что скрипт такой-то loaded successfully, а затем сразу removed в ту же секунду! Компилируется без ошибок. Я его перевел в форму эксперта, т.е. добавил инит и деинит, для проверки в тестере, он заработал. Но как Вы понимаете, мне же нужен не эксперт, а именно скрипт.
Здравствуйте. Помогите пожалуйста. Удалил мт, вместе с ним все индикаторы, все полностью. Сейчас установил, а там все как было так и осталось. Как быть? Может еще где то хранятся копии индикаторов и всего остального?
Вы только деинсталлировали или удалили еще и папку с МТ из Program Files?
Я взял написал простенький скрипт (установка двух отложенников в обе стороны близко к рынку, чтобы кидать его на график перед выходом новости, чтобы не суетиться вручную), уж казалось бы - куда проще, однако не работает, ордеров никаких не открывает, и в журнале просто пишет что скрипт такой-то loaded successfully, а затем сразу removed в ту же секунду! Компилируется без ошибок. Я его перевел в форму эксперта, т.е. добавил инит и деинит, для проверки в тестере, он заработал. Но как Вы понимаете, мне же нужен не эксперт, а именно скрипт.
Я взял написал простенький скрипт (установка двух отложенников в обе стороны близко к рынку, чтобы кидать его на график перед выходом новости, чтобы не суетиться вручную), уж казалось бы - куда проще, однако не работает, ордеров никаких не открывает, и в журнале просто пишет что скрипт такой-то loaded successfully, а затем сразу removed в ту же секунду! Компилируется без ошибок. Я его перевел в форму эксперта, т.е. добавил инит и деинит, для проверки в тестере, он заработал. Но как Вы понимаете, мне же нужен не эксперт, а именно скрипт.
Что здесь не так? Заранее спасибо.
На четырёхзнаке работает. На пятизнаке не проверял, но добавил проверку на ограничения по уровню СтопЛевел:
//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+externint SL = 15;
externint TP = 90;
externint DELTA = 15;
externdouble LOT = 0.1;
externint SLIP = 3;
//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start()
{
//----int StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
if (DELTA <= StopLevel) DELTA = StopLevel+1;
double BUYPRICE = Ask + DELTA*Point;
double SELLPRICE = Bid - DELTA*Point;
int OPEN_ORDER;
OPEN_ORDER=OrderSend(Symbol(),OP_BUYSTOP,LOT,BUYPRICE,SLIP,BUYPRICE-SL*Point,BUYPRICE+TP*Point,NULL,0,0,Blue);
OPEN_ORDER=OrderSend(Symbol(),OP_SELLSTOP,LOT,SELLPRICE,SLIP,SELLPRICE+SL*Point,SELLPRICE-TP*Point,NULL,0,0,Red);
//----return(0);
}
//+------------------------------------------------------------------+
В принципе, можете сделать корректировку Point под четырёх-, пятизнак во избежание ошибок. Так как уровень Дельта должен быть на пятизнаке в десять раз больше, т.е. не 15, а 150, ну и стопы с тейками соответственно...
Тогда это будет выглядеть так:
//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+externint SL = 15;
externint TP = 90;
externint DELTA = 15;
externdouble LOT = 0.1;
externint SLIP = 3;
//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start()
{
//----double PointX;
if(Digits==5 || Digits==3) PointX = Point * 10; // Корректировка Point под трёх- пятизнакif(Digits==4 || Digits==2) PointX = Point;
int StopLevel = MarketInfo(Symbol(),MODE_STOPLEVEL);
if (DELTA <= StopLevel) DELTA = StopLevel+1;
double BUYPRICE = Ask + DELTA*PointX;
double SELLPRICE = Bid - DELTA*PointX;
int OPEN_ORDER;
OPEN_ORDER=OrderSend(Symbol(),OP_BUYSTOP,LOT,BUYPRICE,SLIP,BUYPRICE-SL*PointX,BUYPRICE+TP*PointX,NULL,0,0,Blue);
OPEN_ORDER=OrderSend(Symbol(),OP_SELLSTOP,LOT,SELLPRICE,SLIP,SELLPRICE+SL*PointX,SELLPRICE-TP*PointX,NULL,0,0,Red);
//----return(0);
}
//+------------------------------------------------------------------+
Не смешно ) Вопрос был здесь - https://www.mql5.com/ru/forum/131277/page87 Но, так как на форуме администраторы не рекомендуют повторять вопросы, поэтому я его вновь не написал.
Подскажите, пожалуйста, что не так ? Ставлю советник на тестер на GBPUSD - открывает сделки всё, как положено. Cтавлю его же на индекс доллара DXH1 - многие сделки не открывает: ошибка "130" - Неправильные стопы. Причём непонятно, что не так - при похожих ситуациях то открывает, то нет, но больше, что нет. Спред и уровень стопов для индекса доллара -100 и 200. Спред и уровень стопов для GBPUSD -3 и 4. Цены в индексе доллара, например 78,150, в паре - 4 знака после запятой. Но это учитывается
Вот часть кода :
На вскидку:
1) SL и TP ненормализованы;
2) в OrderSend при нормализации используется Digits, тогда как ордер выставляется по Symb.
Попробуйте так:
int opDigits=MarketInfo(Symb,MODE_DIGITS);
SL = NormalizeDouble(SL,opDigits);
TP = NormalizeDouble(TP,opDigits);
ОткрФрвверх = NormalizeDouble(ОткрФрвверх,opDigits);
ticketup=OrderSend(Symb, OP_BUYSTOP, Lot, ОткрФрвверх,0, SL, TP,NULL,A,0,вверх); // Ордер вверх
2) в OrderSend при нормализации используется Digits, тогда как ордер выставляется по Symb.
Попробуйте так:
Большое спасибо ! Заработало, правда редко, иногда всё же проскакивает эта же ошибка - 130....... ( А нормализовать стопы нужно всегда или только на индексах ? (просто на парах валют стопы всегда, по-моему, работали без нормализации).
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Все было тут C:\Users\======\AppData\Local\VirtualStore\Program Files\====== - MetaTrader\
vista
Подскажите пожалуйста.
Я взял написал простенький скрипт (установка двух отложенников в обе стороны близко к рынку, чтобы кидать его на график перед выходом новости, чтобы не суетиться вручную), уж казалось бы - куда проще, однако не работает, ордеров никаких не открывает, и в журнале просто пишет что скрипт такой-то loaded successfully, а затем сразу removed в ту же секунду! Компилируется без ошибок. Я его перевел в форму эксперта, т.е. добавил инит и деинит, для проверки в тестере, он заработал. Но как Вы понимаете, мне же нужен не эксперт, а именно скрипт.
Что здесь не так? Заранее спасибо.
Вот код скрипта:
#property copyright "alexey15"
#property link ""
#property show_confirm
extern int SL = 15;
extern int TP = 90;
extern int DELTA = 15;
extern double LOT = 0.1;
extern int SLIP = 3;
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
double BUYPRICE = Ask + DELTA*Point;
double SELLPRICE = Bid - DELTA*Point;
int OPEN_ORDER;
OPEN_ORDER=OrderSend(Symbol(),OP_BUYSTOP,LOT,BUYPRICE,SLIP,BUYPRICE-SL*Point,BUYPRICE+TP*Point,NULL,0,0,Blue);
OPEN_ORDER=OrderSend(Symbol(),OP_SELLSTOP,LOT,SELLPRICE,SLIP,SELLPRICE+SL*Point,SELLPRICE-TP*Point,NULL,0,0,Red);
//----
return(0);
}
//+------------------------------------------------------------------+
Здравствуйте. Помогите пожалуйста. Удалил мт, вместе с ним все индикаторы, все полностью. Сейчас установил, а там все как было так и осталось. Как быть? Может еще где то хранятся копии индикаторов и всего остального?
Подскажите пожалуйста.
Я взял написал простенький скрипт (установка двух отложенников в обе стороны близко к рынку, чтобы кидать его на график перед выходом новости, чтобы не суетиться вручную), уж казалось бы - куда проще, однако не работает, ордеров никаких не открывает, и в журнале просто пишет что скрипт такой-то loaded successfully, а затем сразу removed в ту же секунду! Компилируется без ошибок. Я его перевел в форму эксперта, т.е. добавил инит и деинит, для проверки в тестере, он заработал. Но как Вы понимаете, мне же нужен не эксперт, а именно скрипт.
Что здесь не так? Заранее спасибо.
Вот код скрипта:
Проверил. Ваш скрипт работает.
На всякий случай выведите принт ошибки:
Подскажите пожалуйста.
Я взял написал простенький скрипт (установка двух отложенников в обе стороны близко к рынку, чтобы кидать его на график перед выходом новости, чтобы не суетиться вручную), уж казалось бы - куда проще, однако не работает, ордеров никаких не открывает, и в журнале просто пишет что скрипт такой-то loaded successfully, а затем сразу removed в ту же секунду! Компилируется без ошибок. Я его перевел в форму эксперта, т.е. добавил инит и деинит, для проверки в тестере, он заработал. Но как Вы понимаете, мне же нужен не эксперт, а именно скрипт.
Что здесь не так? Заранее спасибо.
На четырёхзнаке работает. На пятизнаке не проверял, но добавил проверку на ограничения по уровню СтопЛевел:
В принципе, можете сделать корректировку Point под четырёх-, пятизнак во избежание ошибок. Так как уровень Дельта должен быть на пятизнаке в десять раз больше, т.е. не 15, а 150, ну и стопы с тейками соответственно...Тогда это будет выглядеть так:
Доброе утро !
Никто по индексам не подскажет...?
Доброе утро !
Никто по индексам не подскажет...?
Точно, индексы.
Здравствуйте !
Подскажите, пожалуйста, что не так ? Ставлю советник на тестер на GBPUSD - открывает сделки всё, как положено. Cтавлю его же на индекс доллара DXH1 - многие сделки не открывает: ошибка "130" - Неправильные стопы. Причём непонятно, что не так - при похожих ситуациях то открывает, то нет, но больше, что нет. Спред и уровень стопов для индекса доллара -100 и 200. Спред и уровень стопов для GBPUSD -3 и 4. Цены в индексе доллара, например 78,150, в паре - 4 знака после запятой. Но это учитывается
Вот часть кода :
На вскидку:
1) SL и TP ненормализованы;
2) в OrderSend при нормализации используется Digits, тогда как ордер выставляется по Symb.
Попробуйте так:
На вскидку:
1) SL и TP ненормализованы;
2) в OrderSend при нормализации используется Digits, тогда как ордер выставляется по Symb.
Попробуйте так: