[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 555
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Лот и магик никто не имеет права трогать, а к комментарию на хвост будет дописка брокера. Но свой комментарий всегда можно найти поиском подстроки.
Ho letto da qualche parte sul forum che, in linea di principio, un commento può essere completamente sostituito da un broker. Cioè come risultato l'EA funzionerà correttamente con un broker e completamente sbagliato con un altro. Tutti i parametri "immutabili" sono necessari per generare un magik. Ecco perché voglio usare solo quelli che rimarranno intatti per certo.
Вы говорите, что у Вас сигнал тянется аж до самого разворота. Но и это можно обойти. Ордеров в рынке нет - проверяем наличие сигнала. Сигнал появился - открыли позу, сняли сигнальный флаг (обнулили переменную) и больше не проверяем наличие сигнала (например лонгового) до тех пор, пока ни возникнет противоположный сигнал (шортовый). Таким образом флаг наличия сигнала заданного типа будет вообще жить считанные секунды - флаг встал, ордер встал, флаг снят - ждём противоположного сигнала. Противоположный возник, флаг противоположного сигнала устанавливаем и устанавливаем флаг, дающий добро отслеживать сигналы, которые до этого отслеживать было запрещено.
Старт работы советника (не функция start(), а лишь начало работы):
- даём добро отслеживать и лонговые и шортовые сигналы.
Появился лонговый сигнал:
- даём добро отслеживать шортовые сигналы
- Ставим лонговый ордер и если этот ордер встал, то
- Снимаем флаг, дающий добро отслеживать лонговые сигналы.
Появился шортовый сигнал
- Если есть добро разворачивать ордера, то закрываем лонговый ордер и устанавливаем шортовый
- Устанавливаем флаг, дающий добро отслеживать лонговые сигналы и снимаем флаг, дающий добро отслеживать шортовые сигналы.
Вобщем, флаги - это выключатели. Можно так же сконструировать не выключатели, а переключатели. В этом случае советник начинает работать по принципам кибернетического автомата, который обладает памятью о том, в каком состоянии он находится. Этого можно достигнуть, например, объявив целочисленную переменную и присваивая ей номера состояний. Например в блоке инициализации пишем
Sostojanie=0;
А вот уже в старте советник знает, что в нулевом состоянии (if(Sostojanie==0){}) советнику разрешено делать только операции А, В и С. И в зависимости от того, каков будет результат одной или нескольких этих операций, советник выбирает в какое состояние нужно перейти (Sostojanie=1;// или 2, или 3 и так далее), или наоборот, остаться ли в текущем состоянии.
В каждом состоянии советник знает, что ему делать можно, а что нельзя, и при наступлении каких условий он должен перейти в иное состояние.
Buona fortuna a voi!
Se in un tester, non funzionerà, ma se in combattimento, mettete Sleep() dentro il ciclo.
Devi guardare il codice, altrimenti stai solo tirando a indovinare, non sono un sensitivo.
per un tester si può fare così
мне нужен именно цикл
Non c'è bisogno di usare break; l'ho solo indicato per non dimenticare la possibilità di interrompere forzatamente il thread di iterazione del ciclo.