[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 387

 
splxgf >>:

Michey25


когда я отвечал код был несколько другим;)

хотя есть некоторые вопросы, результат опен(0) сильно зависит от текущего тайфрейма. непонятно откуда берутся cn и какого они типа.

Сделать Alert(Open[0],cn1,Open[0]<cn1,a,(a-cn1)<0.0008) религия не позволяет?

До кучи вместо i=1 лучше юзать break, это сделает выход из цикла сразу, а не будет прогонять все команды до конца.

int i=0;
   double a, b;
   while ( i==0)
   {
     a=MarketInfo("USDCAD", MODE_ASK);
     b=MarketInfo("USDCAD", MODE_BID); 
     if((Open[0]< cn1)&&(( a- cn1)<0.0008))
      {
       OrderSend("USDCAD",OP_BUY,1, a,1, SL, cn2);
       i=1;
       }
     if((Open[0]> cn11)&&(( cn11- b)<0.0008))
      {
       OrderSend("USDCAD",OP_SELL,1, b,1, SL1, cn21);
       i=1;
      }  
   }

cn, sl, cn2... Ils sont tous doubles et sont des paramètres d'entrée, et je les saisis lorsque j'attache l'EA au graphique. Qu'est-ce que l'alerte a à voir avec ça ?

 
Rita >>:

В чем тут может быть причина, пож. подскажите ?

for(k = 0; k < iBars( Symbol_1,Period()); k++)

Il exécute une boucle sur toutes les barres, puis une autre boucle intégrée où, lors du premier appel, toutes les barres sont prises en compte car la valeur limite est à nouveau égale au nombre de barres de la fenêtre. Dans l'ensemble, nous obtenons le cycle par le nombre de barres au carré, ce qui est un peu redondant pour une tâche aussi simple.
 
Michey25 >>:

cn, sl, cn2... все типа double и являются входными параметрами, я их ввожу когда прикрепляю советник к графику. И причем здесь Alert?


Vous pouvez afficher les valeurs des variables et les résultats d'une condition avec une alerte, ajouter un if avant chaque et voir le résultat. Il s'agit d'une méthode courante de débogage des programmes, qui vous évite de vous torturer le cerveau avec des suppositions et des recherches.

 

Merci. Donc, au début de la fonction start(), je dois créer un gestionnaire de conditions, qui définit l'appel de fonctions qui renvoient le contrôle au terminal et ensuite, lorsqu'un nouveau tick est reçu, ce gestionnaire fonctionnera à nouveau ? Eh bien... Je vais devoir retravailler complètement la logique du programme...


Donc le test échoue parce que le testeur attend un nouveau tick ? Cela fonctionnera-t-il en temps réel ? Hum... Il est important de pouvoir le tester sur l'histoire après tout. Je vais y réfléchir. Merci.

 
Jahspear >>:

Спасибо. То есть надо сделать в начале функции start() некий диспетчер условий, которые определяют вызов соответствующих ситуации функций, каждая из которые возвращают управление терминалу и дальше по получению нового тика этот диспетчер снова отрабатывает? Мдаа... придется полностью переделывать логику программы...


То есть тест не проходит, потому что тестер зависает в ожидании нового тика? А в реалтайме работать будет? Гм... все-таки возможностьоттестировать на истории это важно. Буду думать. Спасибо.

Il doit fonctionner en temps réel, le conseiller expert est exécuté dans un fil distinct et peut réfléchir aussi longtemps qu'il le souhaite, et RefreshRates permet d'accéder aux cours actuels.

 
ntmmm >>:

Добрый день!

Подскажите пожалуйчта, как написать простой индикатор, который бы выделял определенный бар (должно задаваться в опциях), например в 12.30 вертикальной линией и подписать дни недели на графике (скажем где-то над хаем каждого дня)?

Спасибо!

prendre https://www.mql5.com/ru/articles/1382 et le classer

 
splxgf >>:

В реалтайме работать должно, эксперт выполняется отдельным потоком и может думать сколько ему взблагорассудится, а RefreshRates позволяет получать доступ к актуальным котировкам.

Merci. Je suis en train de retravailler la logique du programme pour qu'il n'y ait pas de boucles. Il y a encore une question qui n'est pas tout à fait claire.

Sleep(100);


C'est combien de temps en secondes ?

Et peut-il être utilisé partout, et pas seulement dans les boucles ?

Ainsi, lorsqu'une condition est remplie, vous ne réagissez pas immédiatement, mais attendez un certain temps et vérifiez à nouveau, puis exécutez.

Et cela ne va-t-il pas faire pendre le testeur ?

 

ntmmm писал(а) >>

...Pourriez-vous me dire comment écrire un indicateur simple qui mettrait en évidence une certaine barre (qui devrait être définie dans les options), par exemple à 12.30 avec une ligne verticale et signerait les jours de la semaine sur le graphique (disons quelque part au-dessus de la bosse de chaque jour) ?

Ensemble d'indicateurs iTime

 
Jahspear >>:

Это сколько по времени в секундах?

И может ли использоваться не только в циклах, а в любом месте?

Чтобы при выполнении условия не сразу реагировать, а подождать заданное время и снова проверить, а потом уже выполнять.

И не повесит ли это тестер?

1. 0,1 (zéro virgule un dixième)

2. pourrait être n'importe où

3. ne se suspend pas tout seul, mais si vous y mettez du vôtre... :)

 
alsu >>:

Merci !