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

 
artmedia70:
Voulez-vous le profit total de toutes les positions ouvertes, ou voulez-vous mettre un stop sur chacune d'elles lorsqu'elle atteint 20 pips de profit ?
Si vous pensez qu'une seule position sera ouverte à la fois, vous devez utiliser son profit et placer un stop.
 

Salut. Il existe une stratégie d'arbitrage, est-elle parfaite ? En d'autres termes, est-il irréel de perdre sur ce produit ou le prix n'atteint-il pas toujours le bon niveau ?

Merci.

 
sur chaque stop lorsqu'un profit atteint 20 pips
 

Je le fais encore mal :(

Pourquoi est-ce qu'il ne compare pas ?

if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(230),10,"Wingdings",SymbolSellColor);
      Print("Ошибка при вызове sig_nal201 1:",GetLastError());}
   else if (
   (NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))//&&
   /*(NormalizeDouble((StrToDouble(ObjectFind("signal11"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal21"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal41"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal51"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal61"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))&&
   (NormalizeDouble((StrToDouble(ObjectFind("signal71"))),2)<NormalizeDouble((StrToDouble(ObjectFind("signal31"))),2))*/)
   {ObjectSetText("sig_nal201",CharToStr(228),10,"Wingdings",SymbolBuyColor);
      Print("Ошибка при вызове sig_nal201 2:",GetLastError());}
   else {ObjectSetText("sig_nal201",CharToStr(224),10,"Wingdings",SymbolBasisColor);
      Print("Ошибка при вызове sig_nal201 3:",GetLastError());}
J'ai commenté, je compare 2 valeurs - il tire toujours la dernière...
 
profitinvesting:
pour que chacun mette son propre stop quand il atteint 20 pips de bénéfice

Igor Kim dispose d'une fonction qui fixe un stop au seuil de rentabilité pour un nombre de pips donné (il peut également être défini) :

Fonction MovingInWL()

 
Abzasc:

Je le fais encore mal :(

Pourquoi n'est-il pas comparable ?

J'ai commenté l'inutile, je compare 2 valeurs - c'est toujours la dernière qui est tirée...

Intéressant... ObjectFind() ; renvoie le numéro de la sous-fenêtre du graphique où cet objet est trouvé :

Recherche un objet avec le nom spécifié. La fonction renvoie l'index de la fenêtre à laquelle appartient l'objet. Si elle échoue, la fonction renvoie -1. Appelez la fonction GetLastError() pour obtenir plus d'informations sur l'erreur. Les sous-fenêtres du graphique (s'il y a des sous-fenêtres d'indicateurs dans le graphique) sont numérotées à partir de 1. La sous-fenêtre du graphique principal est toujours présente et a l'indice 0.

Et à quoi le comparez-vous ?

(NormalizeDouble((StrToDouble(ObjectFind("signal01"))),0)>NormalizeDouble((StrToDouble(ObjectFind("signal31"))),0))

Je trouve cette construction un peu étrange. Pourquoi normaliser le numéro de sous-fenêtre(int), d'ailleurs converti en double , et par la fonction StrToDouble() ?

 
Abzasc:

Pourquoi n'est-il pas comparable ?

Peut-être parce que j'obtiens le nom de l'objet, pas sa valeur ? Alors comment puis-je obtenir la valeur correcte ? Confus, il semble.
 
artmedia70:

C'est intéressant... ObjectFind() ; renvoie le numéro de la sous-fenêtre du graphique

:) Je lisais aussi l'aide :)

Il y a des objets texte, je dois les comparer (chiffres). Comment ?

Un indicateur dessine un tableau et l'autre doit le calculer.

 
Abzasc:
Peut-être parce que j'obtiens le nom de l'objet, pas sa valeur ? Alors comment puis-je obtenir la valeur correctement ? Confus, il semble.
Vous comparez les numéros des sous-fenêtres dans lesquelles les objets sont dessinés. Si c'est le cas, la fonction ObjectFind(); renvoie le numéro de cette fenêtre et il sera le même pour les deux valeurs comparées. Vous comparez donc les chiffres des fenêtres. Et très probablement la même fenêtre avec elle-même...
 
Abzasc:

:) Je lisais aussi l'aide :)

Il y a des objets texte, je dois les comparer (chiffres). Comment ?

Des chiffres de quoi ? Pouvez-vous être plus précis ?