[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 404

 
Vinin писал(а) >>

La traversée est plus facile et plus rapide à contrôler d'une autre manière

La vitesse est plus élevée. Les expressions logiques complexes sont plus longues à exécuter que les expressions simples. La multiplication est plus rapide que la logique

Merci Vinin, qu'en est-il du nombre de trades, pouvez-vous les écrire pour qu'ils soient seulement 1.2...N, après avoir traversé la MA.

 
Vinin >>:

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

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

une autre option, mais je ne pense pas que le questionneur la comprenne encore

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

Merci Vinin, qu'en est-il du nombre de trades, est-il possible de les écrire seulement 1.2...N, après le franchissement de la MA.

Apparemment, nous devons envisager des conditions supplémentaires pour l'entrée.

Et comptez le nombre de postes ouverts.

Mais il aura peu de rapport avec les crossovers.

Parce que peut-être dans un cas il n'y avait qu'un seul signal, dans le second cas il y en avait 10.

Mais nous devons d'abord déterminer les conditions d'une entrée supplémentaire.

 
Vinin писал(а) >>

Apparemment, il y a des conditions d'entrée supplémentaires à prendre en compte.

Et comptez le nombre de postes ouverts.

Mais cela n'a que peu de rapport avec le croisement.

Parce que peut-être dans un cas il n'y avait qu'un seul signal, dans le second cas - 10.

Mais nous devons d'abord définir les conditions de l'entrée supplémentaire

OK, je vais essayer d'approfondir la question, merci beaucoup à Vilin et sanyooooook pour leur aide.

 

double Lots;
double m = 0.1;


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

Pourquoi mes Lots sont toujours nuls ?

 
Noterday >>:

double Lots;
double m = 0.1;


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

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


La boucle est-elle exécutée ou est-elle immédiatement quittée par la condition ?

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

L'expression1 décrit l'initialisation de la boucle. L'expression2 est une vérification de la condition de fin de boucle. Si elle est vraie, le corps de la boucle for est exécuté. Cette opération est répétée jusqu'à ce que l'expression2 soit fausse. Si elle est fausse, la boucle est interrompue et le contrôle est donné à l'opérateur suivant. L'expression3 est calculée après chaque itération.
for(expression1 ; expression2 ; expression3)
opérateur ;

 
Apparemment, ça sort directement... Mettre une alerte dans la boucle - rien...
 

Bonsoir. J'ai un problème avec le terminal, je ne peux pas le réparer d'une quelconque manière :

Je charge MT4, je charge un modèle, je dessine des lignes de tendance, et quand je change de TF, les lignes disparaissent, et elles ne s'affichent pas non plus sur le cadre temporel d'origine. En même temps, tous les autres graphiques ( lignes horizontales, verticales, canaux, tous les Fibos, etc.) fonctionnent bien. Sur un graphique propre ("sans modèle"), la mise en page est entièrement préservée, sur les mêmes indulgences tout fonctionnait bien auparavant. Les conseillers experts et les conseillers experts ont été désactivés. Je travaille principalement sur le tableau, aidez-moi ! !!

 

Bonjour,

Comment faire pour que mon EA ne ferme pas une transaction avant 3 min ?

Quelqu'un peut-il conseiller quoi et où prescrire ?

 
Vinin писал(а) >>

Il faut commencer par la logique. Ce que vous vouliez obtenir et comment vous vouliez l'obtenir.

Eh bien, je pense que la logique est expliquée dans les commentaires...

J'ai sorti les retours et ça s'est passé comme ça :

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

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);    
} 
Cela semble fonctionner, mais je ne sais pas si le code est correct... Si quelque chose est faux, quelqu'un peut-il le corriger ?