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

 
Karabas >> :

Bonjour, pouvez-vous me dire s'il est possible de changer la couleur de l'indicateur ? Supposons que la fenêtre principale comporte deux moyennes mobiles avec des périodes différentes dans des couleurs différentes. >> Merci.


Cliquez avec le bouton droit de la souris sur l'une des MA (Moving Average), une fenêtre s'ouvre, cliquez sur "properties of Moving Average" et vous verrez où changer la couleur.

 
xruss >> :

Cls_B et Cls_S permettent de fermer une position et ne peuvent pas contredire Opn_B Opn_S. Ici, vous devez écrire dans le code une série temporelle qui marquerait la barre où l'ordre d'achat ou de vente a été ouvert et où il devrait être fermé afin qu'aucune autre position ne soit ouverte pendant cette période((

Je ne veux pas dire remplacer les conditions d'ouverture que vous avez déjà, mais en ajouter de nouvelles. Si je comprends bien, vous voulez interdire à l'EA d'ouvrir une position sur un signal d'ouverture, s'il n'y a pas de signal de fermeture sur le même signal. Alors ajoutez :

if (Opn_B==true && Cls_B==false) { не открывать Buy }
if (Opn_C==true && Cls_C==false) { не открывать Sell }

Et si vous le faites à votre façon, comment calculez-vous la barre à laquelle une position doit être fermée à un moment donné ? :)

 

Bonjour

//+------------------------------------------------------------------+
int start()
  {
//----
 double Macd_0=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,0,0);
 double Macd_1=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,0,1);
 double signal_0=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,1,0);
 double signal_1=iMACD(NULL,0, MAFastPeriod, MASlowPeriod, MASignalPeriod,1,1,1);
    
    if(( Macd_0 < Macd_1 && Macd_1 > 0) && ( signal_0 < signal_1 && signal_1 > 0))
     if( CheckOrders(OP_SELL))
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(( Macd_0 > Macd_1 && Macd_1 < 0) && ( signal_0 > signal_1 && signal_1 < 0))
     if( CheckOrders(OP_BUY))
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//----
   return(0);
  }
//+------------------------------------------------------------------+

Il s'agit de la première option.

//+------------------------------------------------------------------+
int start()
  {
//----
 double Macd_0=iMACD(NULL,0, pFast, pSlow, pSignal,1,0,0);
 double Macd_1=iMACD(NULL,0, pFast, pSlow, pSignal,1,0,1);
 double signal_0=iMACD(NULL,0, pFast, pSlow, pSignal,1,1,0);
 double signal_1=iMACD(NULL,0, pFast, pSlow, pSignal,1,1,1);
    
    if(( Macd_0 < Macd_1 && Macd_1 > 0) && ( signal_0 < Macd_0 && signal_1 < Macd_1 && signal_1 > 0))
     if( CheckOrders(OP_SELL)) //продажа
      {
       if(!OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Buy. Ошибка №", GetLastError()); 
       }
       
    if(( Macd_0 > Macd_1 && Macd_1 < 0) && ( signal_0 > Macd_0&& signal_1 > Macd_1&& signal_1 < 0))
     if( CheckOrders(OP_BUY)) //покупка
      {
       if(!OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, 0, 0, NULL, MagicNumber))
         Print("Не открыт ордер Sell. Ошибка №", GetLastError()); 
       }

//----
   return(0);
  }
//+------------------------------------------------------------------+

Il s'agit de la deuxième variante.

Expert Advisor basé sur le macd, le trading est simple (tout est basé sur 0 et 1 barre, le prix est ouvert).

Dans le premier cas, les valeurs macd augmentent (pour l'achat), pour la vente elles diminuent. La ligne de signalisation est également basée sur ces conditions.

Dans le deuxième cas, j'ai essayé de réaliser le croisement de la ligne macd rapide et lente. Mais des doutes subsistaient............. quant à son exactitude.........

 
Everlost >> :

Je ne veux pas dire remplacer les conditions d'ouverture que vous avez déjà, mais en ajouter de nouvelles. Si je comprends bien, vous voulez interdire à l'EA d'ouvrir une position sur un signal d'ouverture, s'il n'y a pas de signal de fermeture sur le même signal. Alors ajoutez-les :

if (Opn_B==true && Cls_B==false) { не открывать Buy }
if (Opn_C==true && Cls_C==false) { не открывать Sell }

Et si vous le faites à votre façon - comment calculez-vous la barre à laquelle la position doit être fermée à un moment donné ? :)

comment ouvrir un poste)

parce qu'il s'ouvre lorsque Opn_B=vrai Cls_B=faux et que Cls_B ne peut pas être vrai à ce moment-là.


disons que nous avons une MA` qui a croisé les cotations du prix (formé Opn_S), nous avons ouvert une position à la baisse et le SL- s'est déplacé vers le Breakeven. et ensuite le prix a glissé du SL vers le Breakeven et...

dans mon cas, une position est ouverte vers le bas(((( avant qu'un nouveau signal de MA` croisant le prix (Cls_S) soit formé.



 
xruss >> :

mais comment ma position s'ouvrira-t-elle ? :)

parce qu'il s'ouvre lorsque Opn_B=vrai Cls_B=faux et que Cls_B ne peut pas être vrai à ce moment-là.

Ok, créez une autre variable, par exemple, int Last_Position=-1. Entrez-y le type d'ordre dès que la position est ouverte. Et ajoutez des conditions :

if (Opn_B==true && Last_Position==OP_BUY) { сигнал Buy пропускаем }

 
Everlost >> :

OK, créez une autre variable, par exemple, int Last_Position=-1. Entrez-y le type d'ordre dès que la position est ouverte. Et ajoutez des conditions :

if (Opn_B==true && Last_Position==OP_BUY) { сигнал Buy пропускаем }

C'est plus ou moins comme ça que je l'ai fait, mais j'ai été un peu déçu du résultat(

Parfois, la tendance se relâche, se met en position plate (elle se corrige) puis repart avec une nouvelle force et donne le bon signal Opn_S qui sera bloqué de cette façon. Comment limiter le trading avec un seul ordre dans la zone du signal Opn_S à Cls_S et de Opn_B à Cls_B ?

 
xruss >> :

Je l'ai fait de cette façon, mais je ne suis pas satisfait du résultat(((

Parfois, la tendance s'affaiblit, passe à plat (fait une correction) puis continue à bouger avec une nouvelle force et donne le bon signal Opn_S, qui sera donc bloqué. Comment limiter le trade avec un ordre dans la zone du signal Opn_S à Cls_S et de Opn_B à Cls_B ?

C'est très simple - lorsque le signal Cls_S ou Cls_B est reçu, vous devez oublier la dernière position ouverte (remettre la valeur de la variable Last_Position à -1).

if ((Cls_S==true || Cls_B==true) && Last_Position>=0) Last_Position=-1;

 
Pouvez-vous me conseiller sur la façon d'ajouter une condition au conseiller expert, afin qu'il sache que la transaction précédente était déficitaire ?
 
Dimoncheg >> :
Pouvez-vous dire comment épeler la condition dans votre EA, afin qu'il sache que la transaction précédente était déficitaire ?

si (OrderProfit() < 0) {

...

}

 
Chers experts, n'ignorez pas ma question.

Existe-t-il un indicateur qui compte la volatilité, par exemple quotidiennement. Mais pas celle qui donne un nombre indéfini comme 0,34. Mais il devrait calculer le nombre de chandeliers par jour et le diviser par une période donnée (nombre de jours) afin que l'indicateur connaisse la valeur moyenne. Exemple : ouverture 100, clôture 200 ; le deuxième jour - ouverture 200, clôture 250. Volatilité moyenne pour ces 2 jours = ((200-100)+(250-200))/2 jours=(100+50)/2=75
Où télécharger si disponible.
Raison: