[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 404

 
Vinin писал(а) >>

Das Überqueren ist auf andere Weise einfacher und schneller zu kontrollieren

Die Geschwindigkeit ist höher. Die Ausführung logisch komplexer Ausdrücke dauert länger als die einfacher Ausdrücke. Multiplikation ist schneller als logisch

Danke Vinin, was ist mit der Anzahl der Trades, können Sie sie schreiben, um nur 1.2...N, nach dem Überschreiten der MA.

 
Vinin >>:

Пересечение проще и быстрее проверять по другому

Скорость работы выше. Логические сложные выражение выполняются дольше простых. Умножение быстрее логического

eine andere Möglichkeit, aber ich glaube nicht, dass der Fragesteller sie noch versteht

 
Stanislav.exe писал(а) >>

Danke Vinin, wie sieht es mit der Anzahl der Trades aus, ist es möglich nur 1.2...N zu schreiben, nach dem MA crossing.

Offensichtlich müssen wir zusätzliche Bedingungen für die Einreise in Betracht ziehen.

Und zählen Sie die Anzahl der offenen Stellen.

Aber es wird wenig mit Crossover zu tun haben.

Denn in einem Fall gab es vielleicht nur ein Signal, im zweiten Fall waren es 10.

Wir sollten jedoch zunächst die Bedingungen für einen zusätzlichen Eintrag festlegen.

 
Vinin писал(а) >>

Offensichtlich gibt es zusätzliche Zulassungsbedingungen zu beachten.

Und zählen Sie die Anzahl der offenen Stellen.

Es hat aber wenig mit dem Crossover zu tun.

Denn vielleicht gab es in einem Fall nur ein Signal, im zweiten Fall - 10.

Doch zunächst sollten wir die Bedingungen für den zusätzlichen Eintrag festlegen

OK, ich werde versuchen, tiefer zu schauen, vielen Dank an Vilin und sanyooooook für die Hilfe.

 

double Lots;
double m = 0.1;


for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}

Warum sind meine Lots immer gleich Null?

 
Noterday >>:

double Lots;
double m = 0.1;


for (m = 0.1; AccountFreeMarginCheck(Symbol(),OP_SELL,m)>150; m = m + 0.1)
{
Lots = m;
}

Почему у меня Lots всегда оказывается равен нулю?


Wird die Schleife ausgeführt oder wird sie sofort durch die Bedingung abgebrochen?

https://docs.mql4.com/ru/basis/operators/for

Ausdruck1 beschreibt die Initialisierung der Schleife. Ausdruck2 ist eine Prüfung der Schleifenabbruchbedingung. Wenn sie wahr ist, wird der Schleifenkörper for ausgeführt. Alles wiederholt sich, bis Ausdruck2 falsch ist. Wenn sie falsch ist, wird die Schleife beendet und die Kontrolle an den nächsten Operator übergeben. Ausdruck3 wird nach jeder Iteration berechnet.
for(Ausdruck1; Ausdruck2; Ausdruck3)
Betreiber;

 
Anscheinend kommt es direkt aus... Setzen Sie einen Alarm in die Schleife - nichts...
 

Guten Abend. Ich habe ein Problem mit dem Terminal, ich kann es nicht beheben:

Ich lade MT4, lade eine Vorlage, zeichne Trendlinien, und wenn ich die TFs wechsle, verschwinden die Linien, auch werden sie nicht auf dem ursprünglichen Zeitrahmen angezeigt. Gleichzeitig funktionieren alle anderen Charts (horizontale und vertikale Linien, Kanäle, alle Fibos usw.) einwandfrei. Bei einem sauberen ("vorlagenlosen") Diagramm wird das Layout vollständig beibehalten, die gleichen Indulatoren funktionierten auch vorher einwandfrei. Expert Advisors und Expert Advisors wurden deaktiviert. Ich arbeite hauptsächlich an der Karte, helfen Sie mir!!!

 

Hallo,

Wie kann ich meinen EA dazu bringen, einen Handel nicht vor 3 Minuten zu schließen?

Kann mir jemand sagen, was und wo ich verschreiben soll?

 
Vinin писал(а) >>

Man muss mit der Logik beginnen. Was Sie erreichen wollten und wie.

Nun, ich denke, die Logik wird in den Kommentaren erklärt...

Ich habe die Rücksendungen herausgenommen, und es ging folgendermaßen:

//попытка сделать функцию: отключение всех  индикаторов и разрешение только Бай или Селл в зависимости от того, 
//что закуплено, когда баланс снижается на заданный процент
//второй вариант:

bool fOffInd(){
int i, b, s;
   if( UT_AutoOf==1){
   //если баланс снизился на LossIndikator процентов
       if( gProfit<=((-1.0)* LossIndikator*AccountBalance())/100.0){
          Print ("Включен автореверс UT_!");
          UT_ON=0; //выключатель индикатора, 0-контроль отключен
          VRF_ON=0;//выключатель индикатора, 0-контроль отключен
     //выбираем открытые ордера Бай       
   for( i=1; i<=OrdersTotal(); i++){        
      if(OrderSelect( i-1, SELECT_BY_POS)==true){   
           if(OrderType()==OP_BUY && OrderSymbol()==Symbol()){ b= b+1;}
          }   
        }
   //выбираем открытые ордера Селл     
   for( i=1; i<=OrdersTotal(); i++){        
      if(OrderSelect( i-1, SELECT_BY_POS)==true){   
           if(OrderType()==OP_SELL && OrderSymbol()==Symbol()){ s= s+1;}
          }   
        }
   //если открытых Бай больше чем Селл, то включаем запрет торговли Бай     
       if( s>= b){ CloseAllBuyNow  = true;
        MaxCount = b;
         Print ("Автореверс. Работаем только Селл!");
          }
       else{
   //если открытых Селл больше чем Селл, то включаем запрет торговли Селл    
       if( b>= s){ CloseAllSellNow = true;
        MaxCount = s;
         Print ("Автореверс. Работаем только Бай!");
             }
           }
           return(false);
         }
       }
       else{
       //все индикаторы должны быть включены и запрет на Бай и Селл снят
          UT_ON=1;
          VRF_ON=1;
          CloseAllBuyNow  = false;
          CloseAllSellNow = false;
    }
   return(0);    
} 
Es scheint zu funktionieren, aber ich weiß nicht, ob der Code korrekt ist... Wenn etwas falsch ist, kann es jemand korrigieren?