Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 454

 
niktron:

si(kolpos==0&&Volume[0]<10&&iOpen("EURAUD",PERIOD_M1,1)<iClose("EURAUD",PERIOD_M1,1)&&iOpen("EURUSD",PERIOD_M1,1)>iClose("EURUSD",PERIOD_M1,1)
&&iOpen("USDJPY",PERIOD_M1,1)<iClose("USDJPY",PERIOD_M1,1)&&iOpen("AUDJPY",PERIOD_M1,1)>iClose("AUDJPY",PERIOD_M1,1)&&Open[1]<Close[1])
OrderSend("AUDUSD",OP_BUY,Lot,Ask,slippage,Ask-SL*Point,0,NULL,OrderMagicNumber(),0,Green) ;
if(kolpos==0 && 
   Volume[0]<10 && 
   iOpen("EURAUD",PERIOD_M1,1)<iClose("EURAUD",PERIOD_M1,1) && 
   iOpen("EURUSD",PERIOD_M1,1)>iClose("EURUSD",PERIOD_M1,1) &&
   iOpen("USDJPY",PERIOD_M1,1)<iClose("USDJPY",PERIOD_M1,1) &&
   iOpen("AUDJPY",PERIOD_M1,1)>iClose("AUDJPY",PERIOD_M1,1) &&
   Open[1]<Close[1])
   OrderSend("AUDUSD",OP_BUY,Lot,Ask,slippage,NormalizeDouble(Bid-SL*Point,Digits),0,NULL,magic,0,Green);

Le testez-vous sur l'AUDUSD ?

Les valeurs calculées des prix dans un ordre de transaction doivent être normalisées à Digits. En plus de cela, il doit répondre aux exigences de StopLevel (je ne l'ai pas fait ici).

Le OrderMagicNumber() est le numéro magique de la commande présélectionnée. Vous devez soit la définir avec une valeur spécifique, soit la calculer dans l'EA de manière à ce qu'elle lui soit unique.

Avant cette vérification, il faut annuler toutes les valeurs de toutes les conditions qui sont vérifiées ici. Vous saurez alors clairement où chercher.

 
artmedia70:

Faites-vous des tests sur AUDUSD ?

Les valeurs de prix calculées dans votre ordre de négociation doivent être normalisées en chiffres. Non seulement cela, mais il devrait répondre aux exigences du StopLevel (je ne l'ai pas fait ici).

OrderMagicNumber() est le numéro magique d'une commande présélectionnée. Vous devriez soit la définir comme une valeur spécifique, soit la calculer dans l'EA, afin qu'elle soit unique pour elle.

Avant cette vérification, il faut annuler toutes les valeurs de toutes les conditions qui sont vérifiées ici. Vous saurez alors clairement où chercher.



Oui, test sur AUDUSD

OrderSend("AUDUSD",OP_BUY,Lot,Ask,slippage,Ask-SL*Point,0,NULL,OrderMagicNumber(),0,Green);-cette ligne a fonctionné dans le testeur sans aucun problème, jusqu'à ce que nous ayons ajouté les conditions

comme

iOpen("AUDJPY",PERIOD_M1,1)>iClose("AUDJPY",PERIOD_M1,1)...

Je répète que tout fonctionne sur le compte... pas dans le testeur...

 
Tout...trié...il manquait l'historique des citations...AUDJPY-repéré comme mineur)))) Merci beaucoup à tous !
 
niktron:

OrderSend("AUDUSD",OP_BUY,Lot,Ask,slippage,Ask-SL*Point,0,NULL,OrderMagicNumber(),0,Green);-cette ligne a fonctionné dans le testeur sans problèmes, jusqu'à ce que les conditions soient ajoutées

Je vous ai déjà écrit à propos de cette chaîne. Ensuite, lorsque vous obtenez des erreurs 130, ne demandez pas quel est le problème.
 
artmedia70:
Je vous ai déjà écrit au sujet de cette ligne. Puis, lorsque l'erreur 130 apparaît, ne me demandez pas quel est le problème.


L'erreur 130 peut donc ne pas se produire pendant un long moment, puis elle se produira ?
 
Si quelqu'un a rencontré un code pour calculer le drawdown des actions (absolu et relatif), veuillez me donner un lien.
 
Leo59:
Si quelqu'un a rencontré un code pour calculer le drawdown des actions (absolu et relatif), veuillez me donner un lien.
Quand j'en ai eu besoin, j'ai cherché, mais je ne l'ai pas trouvé, parce que j'avais besoin non pas dans le passé, comme dans le testeur, mais dans le futur, en mettant SL sur une position ouverte pour anticiper le possible drawdown, si la position se ferme sur SL, en affichant les données dans le commentaire sur le graphique, ce que j'ai fait, et il est devenu très pratique de voir tous les problèmes possibles à l'avance sur Real, comme je vous le souhaite ! En même temps, l'ayant fait moi-même, j'ai beaucoup appris, ce qui est plus précieux. Bonne chance à vous !
 
TarasBY:
Déjà écrit.

Super, merci beaucoup pour ce matériel, maintenant il sera beaucoup plus efficace pour limiter les pertes et augmenter les profits.
 
niktron:

Par exemple, l'erreur 130 peut ne pas se produire pendant un long moment, mais ensuite elle se produira ?
Je ne suis pas un télépathe, ni Nostradamus. Je ne peux pas vous dire exactement quand l'erreur 130 apparaîtra. Mais je peux vous dire qu'il apparaîtra. Tant que vous n'aurez pas normalisé tous les prix calculés dans les ordres de transaction et vérifié les prix sl et tp dans l'ordre de transaction pour voir s'ils sont corrects par rapport aux exigences de StopLevel de votre société de courtage, vous obtiendrez la 130e erreur.
 

Il existe un tel code de fonction. Dans MT4 beta, lors de la compilation, j'obtiens l'avertissement "expression not boolean" dans les lignes marquées d'une flèche. Pouvez-vous suggérer comment le réparer ?

void WindowCaptions()
{
  int hwnd = GetAncestor(WindowHandle(Symbol(),Period()),1); 

  int ret = GetWindowLongA( hwnd, GWL_STYLE );
  if (ret & WS_MAXIMIZE) return;                                               //<---
  if (ret & WS_DLGFRAME) ret -= WS_DLGFRAME; else ret += WS_DLGFRAME;          //<---

  //это если совсем без рамочек 
  // if (ret & WS_THICKFRAME) ret -= WS_THICKFRAME; else ret += WS_THICKFRAME;
  
  SetWindowLongA( hwnd, GWL_STYLE, ret );
  SetWindowPos ( hwnd, 0,0,0,0,0, 39); 
}