
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Было и так у меня "<=", но значения Стохастика меняются оч. сильно с каждым даже тиком, - там в значении после запятой ещё четыре знака, т.е. на одном тике значения могут изменится от (например) 75.0003 до 74.0900.
А уж по ценам открытия и подавно.../Так что знак"=" можно без опасения пропустить. Но конечно, чтоб не думалось - пожалуй , сделаю.
Попробуйте добавить Print перед OrderClose и посмотреть появляется ли сигнал закрытия.
Сделал. Добавил. Нет, .....ъ! Не появляется в журнале Надпись о закрытиии.
Не пойму ничего! Вставил этот блок в другой советник. И в третий. ... . Но ситуация не изменилась! Не закрываются позиции. Хотя редко-редко (один-два раза на истории =1год ) и промелькнет зелёный треугольничек закрытия на визуальном графике. Но не должно так быть! Позиции, судя по коду, должны закрываться, как у швейной машинке челнок!
B закачке - индикатор NOnLagMA
А может быть и не должен этот блок работать? Ведь у нас при открытии в коде предусмотрены стопы: - стоплосс и тейкпрофит. И может все остальные условия закрытия по этой причине игнорируются?
ticket=OrderSend(Symbol(),0,Lots,Ask,Slippage,Bid-SL_long*Point,Ask+TP_long*Point, NULL,MagicNum, 0,CLR_NONE);
И придеться с этим как то иначе бороться.
Не пойму ничего!
ВнимательнЕЕ надо ;)
Вот ф-ция start() проверочного варианта (без СЛ и ТП, с правильными сообщениями и без ненужного слипа):
Но я на вашем месте не использовал бы этого эксперта на реальном счету. Его надо привести в порядок, или в "боевую готовность", если угодно ;)
Да, конечно. Благодарю вас за помощь! Ваше замечание о своей ошибке понял.
И принял к сведению ваши рекомендации. До реальной торговли ещё далеко...
p.s/ Всё заработало.... ! Да ещё как!
Код не смотрел.
Но одно исправил бы точно: вместо "if(Stochast_1>75 && Stochast_0<75)" сделал бы "if(Stochast_1>75 && Stochast_0<=75)".
А не лучше было бы: так: if(Stochast_1-75.0>0 && Stochast_0-75.0<=0) дабы избежать ненужных преобразований типов int и double.
А каким образом мы при этом избегаем ненужные int и double. ? Не соображу никак. Тем более, что есть резон вместо чисел ввести в внешние параметры - extern int Up_lim = 80; extern int Low_lim = 20;
имхо во-первых, некорректно сравнивать вещественное Stochast_ и целое 75, во-вторых сравнивать правильнее их разность с нулём.
'Сравнение вещественных чисел'