Если честно, лучше будет если каждый станет заниматься своим любимым делом.
Вы написали не советник, а индикатор, пытающийся открывать ордера. Вам лучше сюда: https://www.mql5.com/ru/forum/6343
Касательно только OnInit:
int OnInit() { if (Digits==3||Digits==5) { slippage*=10; } { Comment=TimeFrame*Mexp; } return(INIT_SUCCEEDED); }
1. Переменная slippage у Вас входной параметр, не стоит его изменять программно. Задайте глобальную переменную с другим именем и используйте ее
2. Comment - зарезервированное ключевое слово языка MQL, его не рекомендуется использовать для именования переменных.
3. Comment у Вас всегда будет 0, поскольку TimFrame объявлен, но не инициализирован никаким значением по умолчанию.
4. Входной параметр Mexp имеет тип double, при перемножении с TimeFrame вы получите double, а Comment объявлен как int => усечение данных
Создайте проект из шаблона эксперта, в нем не может быть строк типа:
#property indicator_chart_window #property indicator_buffers 5 #property indicator_color1 Green #property indicator_color2 Red
Издеваться здесь вряд ли кто будет, но и помогать мало кто станет при такой постановке вопроса типа "я написал... ничего не работает... где ошибка?"
Здесь люди делятся опытом и обсуждают конкретные проблемы. В Ваш код никто вникать не будет при такой постановке. В любом случае, на том или ином этапе, Вас отправят читать стандартную документацию. И фактически, это и есть помощь.
Ошибка в строке 44:
строка 44: double PriceHigh,PriceLow,MacdCurrent,SignalCurrent,PRICE_OPEN,PRICE_CLOSE;
Уберите две последних переменных. Их не надо объявлять перед использованием. Надо:
строка 44: double PriceHigh,PriceLow,MacdCurrent,SignalCurrent;
Тогда у вас значения с индикаторов без ошибок будут браться.
Строчка 100 и 105, в функции OrderSend - комментарий или текст или NULL. "Comment" нельзя туда посылать - это зарезервированная функция. Можно:
строка 100: ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,slippage,0,0,"",magic,0,Blue); строка 105: ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,slippage,0,0,"",magic,0,Red);
OnDeinit не возвращает ничего. Надо:
void OnDeinit(const int reason) { }
В корне не верно в строке 45 и 58:
строка 45: int ticket,Comment,TimeFrame; строка 58: Comment=TimeFrame*Mexp;
Вместо Comment используйте другое название переменной, так как это зарезервированная функция.
Зачем вы объявляете то, что не используете? Тем более, это не используется в советниках. Уберите строки:
строка 11: #property indicator_chart_window строка 12: #property indicator_buffers 5 строка 24-25: #property indicator_color1 Green #property indicator_color2 Red строка 34-37: //---- indicator buffers double gadblMid[]; double gadblUpper[]; double gadblLower[];
Перечислила ошибки, что на поверхности. Может, есть еще.
P.S. "Я в программировании ноль.Вы в моей професии нули." - если мне нужен хлеб - я его покупаю, если хочу вылечиться - оплачиваю услуги доктора. Можете обратиться сюда: https://www.mql5.com/ru/job
Ошибка в строке 44:
Уберите две последних переменных. Их не надо объявлять перед использованием. Надо:
Тогда у вас значения с индикаторов без ошибок будут браться.
Строчка 100 и 105, в функции OrderSend - комментарий или текст или NULL. "Comment" нельзя туда посылать - это зарезервированная функция. Можно:
OnDeinit не возвращает ничего. Надо:
В корне не верно в строке 45 и 58:
Вместо Comment используйте другое название переменной, так как это зарезервированная функция.
Зачем вы объявляете то, что не используете? Тем более, это не используется в советниках. Уберите строки:
Перечислила ошибки, что на поверхности. Может, есть еще.
P.S. "Я в программировании ноль.Вы в моей професии нули." - если мне нужен хлеб - я его покупаю, если хочу вылечиться - оплачиваю услуги доктора. Можете обратиться сюда: https://www.mql5.com/ru/job
Ксюша, добрая душа!
Рекомендую вникнуть в OnTick... я получил массу позитива.
Ксюша, добрая душа!
Рекомендую вникнуть в OnTick... я получил массу позитива.
Присмотрелась ))) Что это? Эта логика работать не будет. Вернее она здесь отсутствует:
строка 98: if (PRICE_OPEN<PriceLow&&PRICE_OPEN<PRICE_CLOSE&&SignalCurrent<MacdCurrent&&indicator_color2<indicator_color1) строка 105: else if (PRICE_OPEN>PriceHigh&&PRICE_OPEN>PRICE_CLOSE&&SignalCurrent>MacdCurrent&&indicator_color2>indicator_color1)
Присмотрелась ))) Что это? Эта логика работать не будет. Вернее она здесь отсутствует:
оффтоп: забавно когда девушка (тем более, судя по фото, блондинка) рассуждает о логике :))))))))))))))))))))))))
Ксюша A++++
оффтоп: забавно когда девушка (тем более, судя по фото, блондинка) рассуждает о логике :))))))))))))))))))))))))
Ксюша A++++
у вас получалось программировать без логики? )))
да не в этом дело, просто видел девушку со встроенной логикой только раз в жизни. не блондинку.
А тут прям резонанс такой :) хоть какой-то позитив на ночь )))
Спасибо огромное.С объяснениями понимается лучше.
P.S. Можно,конечно,и купить готовый советник.Но хочется разобраться самому.)))
Спасибо огромное.С объяснениями понимается лучше.
P.S. Можно,конечно,и купить готовый советник.Но хочется разобраться самому.)))
в строках типа
if (PRICE_OPEN<PriceLow&&PRICE_OPEN<PRICE_CLOSE&&SignalCurrent<MacdCurrent&&indicator_color2<indicator_color1)
PRICE_OPEN, PRICE_CLOSE это константы нумерованного типа, они используются при задании параметров индикатору (модели расчета, по ценам открытия или закрытия баров). т.е. с ними проводить операции сравнения бессмысленно в принципе.
Поэтому часть условия "PRICE_OPEN<PriceLow" и подобные... это все равно что сравнивать тёплое с зелёным.
indicator_color2 и indicator_color1... ну... как бы сравнивать цвета никто не запрещает... но что это даст для торговли?
В общем лучше определитесь по каким конкретным условиям действительно нужно открывать BUY/SELL, а уж потом логику прописывать в виде программы.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Доброго всем времени суток.Я во всем этом чайник,притом еще заварочный.Проблема вот в чем.Написал советник(почти написал),посреди работы проверяю,и .....не работает....Где косяк????
Те,кто зашел поиздеваться,поприкалываться,построить из себя мастера поучающего лошару,...все пошли НА Х...Прошу помощи,а не высказываний умничающих ушлепков.Я в программировании ноль.Вы в моей професии нули.Нужна помощь,а не гнобьё.