[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 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... Alle von ihnen sind doppelt und sind Eingabeparameter, und ich gebe sie ein, wenn ich den EA mit dem Chart verbinde. Was hat Alert damit zu tun?

 
Rita >>:

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

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

Er führt eine Schleife über alle Balken durch und hat dann eine weitere eingebettete Schleife, in der beim ersten Aufruf alle Balken berücksichtigt werden, da der Grenzwert wiederum gleich der Anzahl der Balken im Fenster ist. Insgesamt erhalten wir den Zyklus durch die Anzahl der Balken im Quadrat, was für eine so einfache Aufgabe etwas überflüssig ist
 
Michey25 >>:

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


Sie können Variablenwerte und Ergebnisse einer Bedingung mit einem Alert anzeigen, ein if vor jeder Bedingung hinzufügen und das Ergebnis sehen. Dies ist eine gängige Methode zur Fehlersuche in Programmen, damit Sie Ihr Gehirn nicht mit Rätseln und Suchen quälen müssen.

 

Ich danke Ihnen. Also muss ich am Anfang der start()-Funktion einen Bedingungsmanager erstellen, der den Aufruf von Funktionen definiert, die die Kontrolle an das Terminal zurückgeben, und dann, wenn ein neues Tick empfangen wird, wird dieser Manager wieder funktionieren? Na ja... Ich werde die Programmlogik komplett überarbeiten müssen...


Der Test schlägt also fehl, weil der Prüfer auf einen neuen Tick wartet? Wird es in Echtzeit funktionieren? Ähm ... Es ist wichtig, dass man es in der Geschichte testen kann. Ich werde darüber nachdenken. Ich danke Ihnen.

 
Jahspear >>:

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


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

Es sollte in Echtzeit funktionieren, der Expert Advisor wird in einem separaten Thread ausgeführt und kann so lange denken, wie er will, und RefreshRates ermöglicht den Zugriff auf aktuelle Kurse.

 
ntmmm >>:

Добрый день!

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

Спасибо!

Nehmen Sie https://www.mql5.com/ru/articles/1382 und heften Sie es ab.

 
splxgf >>:

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

Ich danke Ihnen. Ich bin gerade dabei, die Programmlogik zu überarbeiten, damit sie keine Schleifen enthält. Es gibt noch eine weitere Frage, die nicht ganz klar ist.

Sleep(100);


Wie lange dauert es in Sekunden?

Und kann sie überall verwendet werden, nicht nur in Schleifen?

Wenn eine Bedingung erfüllt ist, wird nicht sofort reagiert, sondern eine bestimmte Zeit abgewartet, erneut geprüft und dann ausgeführt.

Und wird der Prüfer dadurch nicht behindert?

 

ntmmm писал(а) >>

...Könnten Sie mir bitte sagen, wie ich einen einfachen Indikator schreiben kann, der einen bestimmten Balken (sollte in den Optionen eingestellt werden), z.B. um 12.30 Uhr, mit einer vertikalen Linie hervorhebt und die Wochentage auf dem Chart anzeigt (z.B. irgendwo über dem Buckel eines jeden Tages)?

iTime-Indikator gesetzt

 
Jahspear >>:

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

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

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

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

1. 0,1 (Null Komma ein Zehntel)

2. könnte überall sein

3. hängt sich nicht von selbst auf, aber wenn man es sich in den Kopf setzt... :)

 
alsu >>:

Ich danke Ihnen!