[Archive] Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 2. - page 218

 
ViktorF:

Lorsque l'EA fonctionne, ces erreurs apparaissent :

Il est arrivé que des ordres ne soient pas fermés ou ne s'ouvrent pas à certains moments.

Dans quelle mesure les échecs de fermeture/ouverture sont-ils liés à ces erreurs ? Comment les éviter (de préférence sans remplacement du terminal MT5) ?

Voir ici et ici... et ici...

Pourquoi ne pas taper le nom de l'erreur dans le champ de recherche et obtenir la réponse immédiatement ?

 
Roman.:


Faites interdire à votre courtier d'effectuer des transactions automatisées pour vous en lui demandant fréquemment de le faire en situation réelle - vous n'aurez plus qu'à téléphoner vous-même.

Modifiez les ordres après un certain nombre de points (intervalle), par exemple 50 ou 100 - c'est avec un pentamètre (disons, lorsque le prix évolue dans votre direction - modifiez l'ordre), et tout ira bien. :-))) IMHO, bien sûr.

Hum...


J'approuve totalement...
 

Bonjour ! Citation de manuel :

Une ou plusieurs constantes peuvent être sautées dans la séquence d'initialisation. Dans ce cas, les éléments correspondants des tableaux de type numérique sont initialisés à zéro, et les éléments des tableaux de type chaîne de caractères sont initialisés avec la valeur "" (guillemets ouvrants et fermants sans espace), c'est-à-dire une chaîne vide (à ne pas confondre avec l'espace).

Question 1 : Que se passe-t-il avec les éléments de type bool lorsqu'un espace est omis ?

L'idée est la suivante : nous créons un tableau unidimensionnel de drapeaux des paramètres d'ouverture de la transaction, soit

bool Open[20] {par1,par2,par3....,par20}

si (MA1>MA2) par1=vrai ;

if (MA7>MA8) par2=true ; ...

si (ma33>ma55) par20=vrai ;

Qui a rencontré de telles solutions - conseillez :

2- la direction est-elle correcte ?

3- comment écrire des variantes de paramètres comme if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() etc. - n'est-ce pas ?

 
ilmur:

Aidez-nous s'il vous plaît... mon conseiller expert vérifie les ordres ouverts ... un ordre peut être ouvert à la fois ... mais lorsque je saisis un stop sur une ligne droite au moment de l'ouverture d'un ordre, il émet une erreur 130 ... par exemple, c'était comme ceci

si(down>0)

{

ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,0,Bid-TakeProfit*Point,0,16384,0,Red) ;

Je tape un arrêt de taille 100

ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,100,Bid-TakeProfit*Point,0,16384,0,Red) ; ...donne l'erreur 130 dans le testeur

alpari...je devrais peut-être modifier l'ordre après l'ouverture et placer un stop...conseillez moi comment faire ou indiquez moi le conseiller où cela est fait...svp


Alpari n'ouvre pas de trades avec stoploss et takeovers.
 
100yan:

L'idée est la suivante : créer un tableau unidimensionnel de drapeaux des paramètres d'ouverture de la transaction, soit

bool Open[20] {par1,par2,par3....,par20}

si (MA1>MA2) par1=vrai ;

if (MA7>MA8) par2=true ; ...

si (ma33>ma55) par20=vrai ;

Qui a rencontré de telles solutions - conseillez :

2 la direction est correcte ?

3- comment écrire des variantes de paramètres comme if (Open [12] {1,0,0,1,1...,0 } ) OrderSend() etc. - n'est-ce pas ?

quelle direction et qu'est-ce que vous voulez dire par là ?

Et comment puis-je vous dire comment faire si je ne comprends pas le problème ?

 
int OrderStatus() {
   int z1=0, z2=0;  // порядок для массива
   int i, k=OrdersTotal();
      for (i=1; i<=k; i++) {
         if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderType()==OP_BUYSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketBS[z1]=OrderTicket(); // присваем массиву под 1 ячейкой первый найденный ордер тикет
            z1++;
            }
            if (OrderType()==OP_SELLSTOP && OrderSymbol()==Symbol() && OrderMagicNumber()==MG) {
            TicketSS[z2]=OrderTicket();
            z2++;
            }
         }
      }
}
Qui peut aider, pourquoi TicketBS[] et TicketSS[] n'assignent pas de valeurs au tableau TicketBS[] ? ?? écrit toujours 0....
 
eddy:

quelle direction et qu'est-ce qui est correct ?

Et comment puis-je vous dire comment écrire quelque chose correctement si vous ne comprenez pas la tâche elle-même ?

1. la direction de la pensée est-elle correcte ?

2. comment comparer les variantes de paramètres avec un tableau donné ? C'est-à-dire créer un tableau avec les bons paramètres. Par exemple, au lieu d'écrire if((MA1>MA2)&&(MA7>MA8)&& ....), nous devrions utiliser une variante de tableau pour ouvrir un ordre de type12 Open [12] {1,1,1,0,1...,0 } où le jeu de paramètres est respectivement une condition pour ouvrir un ordre de type12.

 

тип12 Open [12] {1,1,1,0,1...,0 }

Les éléments des tableaux personnalisés sont des variables, mais vous avez un corps ici pour une raison quelconque (accolades).

 
eddy:

Les éléments des tableaux personnalisés sont des variables, et vous avez un corps ici pour une raison quelconque (accolades).


Initialisation d'un tableau


Un tableau ne peut être initialisé qu'avec des constantes du type approprié. Les tableaux unidimensionnels et multidimensionnels sont initialisés avec une séquence de constantes séparées par des virgules. La séquence est entourée d'accolades :
bool Mas_b[5] = { false, true, false, true, true }

 
Pour ce faire, vous devriez avoir plusieurs variables bool pour chaque paramètre afin de vérifier si le marché correspond à ces paramètres.