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

 
Hedin:


En forex, presque tous les serveurs sont gratuits.

De plus, presque toutes les maisons de courtage disposent de comptes de démonstration qui vous permettent de négocier avec de l'argent virtuel au lieu d'argent réel.

Merci, pouvez-vous me donner un lien spécifique ? Je ne peux pas le googler. Merci encore.
 
artmedia70:
Qu'est-ce qu'un appel de marge ?
Un appel de marge est une condition qui entraîne la fermeture forcée d'une position.

Cela se produit lorsque le solde de votre compte (Equity) a atteint zéro de la marge requise (Margin) pour le montant de toutes les positions ouvertes.

L'opération est automatique. Dans certaines entreprises, l'appel de marge est fixé à 30% des fonds propres.

C'est-à-dire [AccountFreeMargin() = AccountEquity() - Margin] ?

où Marge -> total pour toutes les positions ouvertes.




 
Guest77:
Merci, pouvez-vous nous donner un lien spécifique ? Je ne peux pas le googler. Merci encore.

Il vous suffit de télécharger et d'installer MetaTrader 4 à partir de n'importe quel courtier.

Vous devez ouvrir un compte de démonstration et vous êtes prêt à l'utiliser. Tout est gratuit. Vous pouvez trouver un courtier grâce à Google, il y en a beaucoup.

 

Bonjour à tous. J'ai été confronté à un problème lors de l'écriture d'une EA, j'ai l'impression que l'erreur est quelque part en surface, mais je ne la trouve pas. Je serais heureux si quelqu'un me disait quoi faire.

L'essence du problème : on m'a demandé d'ajouter un stop suiveur dans un des EA d'Igor Kim pour plusieurs positions simultanément. J'ai tout ajouté, mais le résultat est mauvais :( Le trailing stop se déplace toujours dans les points TStop.Sell et TStop.Buy loin du bid et du ask, c'est-à-dire que le prix monte, le trailing stop monte aussi, le prix baisse - le trailing stop baisse.... Je n'ai pas besoin d'appeler l'équipe de télépathes, je vais ajouter le code moi-même :)

int start()
{
 if(GetProfitOpenPosInCurrency(Symbol(),-1,MagicNumber)>=ProfitToStartTral) //если прибыль в валюте депозита больше заданной в настройках
    {
     CloseLoss(Symbol(),-1,MagicNumber);//закрываем все убыточные позы советника по текущему символу
     start3();//запускаем трал
    }
  //бла-бла-бла, тут еще куча рабочего кода :)
}

Fonctions définies par l'utilisateur :

void start3() 
 {
  if (ShowComment) {
    Comment(IIFs(AllSymbols, "AllSymbols  ", "")
           ,"Magic="+IIFs(Magic<0, "Любой", DoubleToStr(Magic, 0))+"  "
           ,IIFs(TSProfitOnly, "TSProfitOnly  ", "")
           ,"TStop.Buy="+DoubleToStr(TStop.Buy, 0)+"п  "
           ,"TStop.Sell="+DoubleToStr(TStop.Sell, 0)+"п  "
           ,"TrailingStep="+DoubleToStr(TrailingStep, 0)+"п  "
           );
  } else Comment("");

  string sy=IIFs(AllSymbols, "", NULL);
  SimpleTrailing(sy, -1, Magic);
 } 
//*********************************************************************//
void SimpleTrailing(string sy="", int op=-1, int mn=-1) {
  double po, pp;
  int    i, k=OrdersTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        po=MarketInfo(OrderSymbol(), MODE_POINT);
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            pp=MarketInfo(OrderSymbol(), MODE_BID);
            if (!TSProfitOnly || pp-OrderOpenPrice()>TStop.Buy*po) {
              if (OrderStopLoss()<pp-(TStop.Buy+TrailingStep-1)*po||OrderStopLoss()==0) {
                ModifyOrder(-1, pp-TStop.Buy*po, -1);
              }
            }
          }
          if (OrderType()==OP_SELL) {
            pp=MarketInfo(OrderSymbol(), MODE_ASK);
            if (!TSProfitOnly || OrderOpenPrice()-pp>TStop.Sell*po) {
              if (OrderStopLoss()>pp+(TStop.Sell+TrailingStep-1)*po || OrderStopLoss()==0) {
                ModifyOrder(-1, pp+TStop.Sell*po, -1);
              }
            }
          }
        }
      }
    }
  }
} 
//****************************************************
string IIFs(bool condition, string ifTrue, string ifFalse) {
  if (condition) return(ifTrue); else return(ifFalse);
}
 

Je veux savoir s'il est possible de passer les paramètres spécifiés dans le code de l'indicateur (pas les paramètres de l'indicateur lui-même) à un autre indicateur pour traitement ?

La deuxième question, comment passer les paramètres de l'indicateur à l'EA et comment cet EA se comportera-t-il en mode test?

Merci d'avance !

 

Vous l'expliquez d'une manière très alambiquée.

La manière la plus simple de transférer à MT via GlobalVariable est à peu près comme un presse-papiers. L'un le met, l'autre le prend.

Mais, il y a beaucoup d'autres options, elles sont en fonction de la situation. Comme il n'y a pas de situation, il est difficile de parler d'options. Ilsera testé sur le même personnage.

 
zhuki:

Vous l'expliquez d'une manière très alambiquée.

La manière la plus simple de transférer à MT via GlobalVariable est à peu près comme un presse-papiers. L'un le met, l'autre le prend.

Mais il existe de nombreuses autres options, qui dépendent de la situation. Comme il n'y a pas de situation, il est difficile de parler d'options. Il sera testé sur le même personnage.


GlobalVariable n'est pas trouvé dans l'aide de MT, .....

sur les variantes. Par exemple, le calcul est le suivant : il y a un indicateur zigzag, j'ai ajouté un code définissant les modèles au code zigzag, comme If (condition) si la condition est remplie, a =1 variable si elle n'est pas remplie, a=0. Je dois passer la valeur de cette variable à un autre indicateur, dans ce cas si la variable dans cet indicateur était égale à (a=1) faire ce qui suit, si a=0. Il s'agit de passer des paramètres entre les indicateurs.

et, respectivement, sous la même forme pour passer les paramètres de l'indicateur à l'Expert Advisor. Lorsque je le teste dans le testeur de stratégie, l'Expert Advisor chargera-t-il l'indicateur pour le calcul et transmettra-t-il les valeurs de la variable à l'EA ? Ou bien il détectera une erreur car la variable est inaccessible parce qu'elle est située dans l'environnement de l'indicateur !

 

Même question. Comment transférer les données d'un indicateur non standard à un autre ?

 
zhuki:

Vous l'expliquez d'une manière très alambiquée.

La manière la plus simple de transférer à MT via GlobalVariable est à peu près comme un presse-papiers. L'un le met, l'autre le prend.

Mais, il y a beaucoup d'autres options, elles sont en fonction de la situation. Comme il n'y a pas de situation, il est difficile de parler d'options. Ilsera testé sur le même personnage.

Vous ne pouvez pas l'appeler comme l'iMA standard par un nom court, par exemple ?
 
Abzasc:
Ne pouvez-vous pas l'appeler comme l'iMA standard par un nom court, par exemple ?

Vous pouvez l'appeler, il n'y a pas d'erreurs, mais comment passer le paramètre ? Je fais un appel, mettre le paramètre entre parenthèses (que j'appelle), mais dans la réponse jurant un tel paramètre n'existe pas dans l'indicateur.
Raison: