Aide au codage - page 65

 

Voici une fonction qui vérifiera les temps d'ouverture des ordres et retournera le prix de celui dont le temps d'ouverture est le plus récent (s'il n'y a pas eu d'ordres précédents, elle retournera 0).

double lastOrderOpenPrice(int magicNumber=0)

{

datetime lastTime = 0;

double lastPrice = 0;

for(int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS, MODE_TRADES)==false) break;

if (magicNumber!=0)

if (OrderMagicNumber() != magicNumber) continue;

if (OrderSymbol() != Symbol()) continue;

if (OrderOpenTime() <= lastTime) continue;

lastTime = OrderOpenTime();

lastPrice = OrderOpenPrice();

}

if (lastTime==0)

for(i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i,SELECT_BY_POS, MODE_HISTORY)==false) break;

if (magicNumber!=0)

if (OrderMagicNumber() != magicNumber) continue;

if (OrderSymbol() != Symbol()) continue;

if (OrderOpenTime() <= lastTime) continue;

lastTime = OrderOpenTime();

lastPrice = OrderOpenPrice();

}

return(lastPrice);

}

[/PHP]

The assumtion is that currently open orders have times more recent than the already closed orders. If you wish to avoid that assumption, comment out this line :

[PHP] if (lastTime==0)

dasio:
Bonjour,

J'ai besoin d'une double fonction qui me renvoie le orderopenprice() du dernier ordre ouvert.

Quelqu'un peut m'aider ?

Merci
 

Bonjour,

J'utilise ce code pour calculer les lots. Parfois je reçois l'erreur 131. Le code est correct ?

double Lotti1(double StopLoss,double Rischio_per_trade){

double MyLots,AllowedLots,MaxLots,MinLot,StopValue,TickValue;

int RightLots;

AllowedLots=(AccountFreeMargin()* Rischio_per_trade/100);

if (Digits==2 || Digits==4)

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE)/10;

else

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);

StopValue=StopLoss*TickValue;

MinLot=MarketInfo(Symbol(),MODE_MINLOT);

MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);

RightLots=MathRound(AllowedLots/StopValue);

double soldi_ora = AccountBalance()/100;

MyLots = soldi_ora*(Rischio_per_trade/10);

MyLots = NormalizeDouble(MyLots/StopLoss,2);

MyLots = NormalizeDouble(MyLots/(MarketInfo(Symbol(),MODE_TICKVALUE)/100),2);

MyLots = NormalizeDouble(MyLots/100,2);

return(MyLots);

}[/PHP]

the Stoploss is = [PHP]StopLoss= NormalizeDouble(Ask-SLbuy()-20*Point,5)*10000;

et Rischio_per_trade = 0.5.

Je vous remercie

 

dasio

Essayez la fonction de ce post : https://www.mql5.com/en/forum/general

dasio:
Bonjour,

J'utilise ce code pour calculer le nombre de lots. Parfois, je reçois l'erreur 131. Le code est correct ?

double Lotti1(double StopLoss,double Rischio_per_trade){

double MyLots,AllowedLots,MaxLots,MinLot,StopValue,TickValue;

int RightLots;

AllowedLots=(AccountFreeMargin()* Rischio_per_trade/100);

if (Digits==2 || Digits==4)

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE)/10;

else

TickValue=MarketInfo(Symbol(),MODE_TICKVALUE);

StopValue=StopLoss*TickValue;

MinLot=MarketInfo(Symbol(),MODE_MINLOT);

MaxLots=MarketInfo(Symbol(),MODE_MAXLOT);

RightLots=MathRound(AllowedLots/StopValue);

double soldi_ora = AccountBalance()/100;

MyLots = soldi_ora*(Rischio_per_trade/10);

MyLots = NormalizeDouble(MyLots/StopLoss,2);

MyLots = NormalizeDouble(MyLots/(MarketInfo(Symbol(),MODE_TICKVALUE)/100),2);

MyLots = NormalizeDouble(MyLots/100,2);

return(MyLots);

}[/PHP]

the Stoploss is = [PHP]StopLoss= NormalizeDouble(Ask-SLbuy()-20*Point,5)*10000;

et Rischio_per_trade = 0.5.

Merci
 

Chers amis,

Je vous souhaite respectueusement, ainsi qu'à tous les membres du forum, santé et bonheur pour la nouvelle année à venir ! Je me sens vraiment reconnaissant envers les nombreux codeurs exceptionnels et généreux ici ainsi qu'envers les idées brillantes des membres de ce forum. Tout cela m'aide beaucoup à améliorer mes compétences en trading (bien que je sois toujours un idiot dans cette carrière ).

Récemment, en examinant le marché et mon approche du trading, j'ai pensé à un indicateur qui pourrait m'aider beaucoup (et d'autres aussi, peut-être). Mon idée est simple, mais la transposer en code est au-delà de mes capacités. Je ne sais pas si un tel indicateur existe ou non, donc je vais décrire mon idée en détail et j'espère que quelqu'un m'aidera à trouver ou à créer celui qui convient le mieux.

- Idée générale : Je veux suivre le cours du marché en continu dans une fourchette de points donnée. L'indicateur me donnerait des informations nécessaires sur l'action du prix dans des segments de prix (gamme fixe donnée) tels que : (1) le niveau supérieur, (2) le niveau inférieur, (3) le niveau médian, (4) le nombre de barres dans la fourchette. J'aimerais aussi connaître le niveau du point de contrôle (POC) des barres dans la fourchette donnée, mais cela est peut-être trop compliqué à coder et consomme beaucoup de mémoire du PC.

- Analogie : J'ai trouvé des indicateurs populaires comme "Market Profile", "Price Channel", ou "Session HiLo", ... qui partagent à peu près mon idée. Mais tous sont limités par l'intervalle de temps (horaire, quotidien, ...) et ne sont pas basés sur une fourchette fixe ou manquent de certaines fonctionnalités comme je l'ai mentionné ci-dessus. J'ai essayé de recoder sur eux pour adapter mon idée mais sans succès jusqu'à présent.

- Liste de souhaits concernant l'indicateur : (1) Paramètre d'entrée : Plage fixe de points ; Intervalle de temps (en minutes, heures ou jours) ou numéro de barre utilisé pour compter le nombre de barres fermées dans la plage donnée ; Alerte lorsque le prix touche les niveaux (facultatif).

(2) Sortie sur le graphique principal : affichage d'une ligne horizontale correspondant aux niveaux de la fourchette (supérieur, inférieur, moyen), et texte informant du nombre de barres comptées dans la fourchette pour le temps donné.

(3) Mise à jour continue : l'information sera mise à jour dans 3 cas : (a) le prix atteint un nouveau sommet dans la fourchette actuelle, (b) un nouveau creux dans la fourchette actuelle, (c) de plus en plus de barres se consolident dans la fourchette actuelle.

Je dois habituellement faire toutes ces choses manuellement. Maintenant, j'espère que l'indicateur m'aidera à simplifier mon travail, à gagner du temps et à rester concentré sur l'action des prix. J'ai cherché sur Internet mais je n'ai pas trouvé un tel outil. Si vous en connaissez un, ou si vous en fabriquez un, je vous en serais très reconnaissant.

Merci de votre attention et de votre aide !

Et encore une fois, bonne année à vous !

Meilleures salutations,

fareastol

oh j'ai oublié de joindre une photo de ce que j'imagine de l'indicateur

Dossiers :
 

Je joins une autre image pour clarifier mon idée :

a) Le haut ou le bas de la fourchette actuelle est déterminé en fonction du numéro de barre saisi. Le haut/bas s'adapte à la taille de la fourchette donnée et à l'action actuelle du marché.

b) Le numéro de barre saisi est juste utilisé pour calculer le nombre de barres fermées dans la fourchette actuelle.

c) Je peux mettre l'indicateur plus d'une fois sur un graphique, avec des paramètres d'entrée différents, bien sûr.

fareastol:
Chers amis,

Je vous souhaite respectueusement, ainsi qu'à tous les membres du forum, santé et bonheur pour la nouvelle année à venir ! Je me sens vraiment reconnaissant envers les nombreux codeurs exceptionnels et généreux ici, ainsi qu'envers les idées brillantes des membres de ce forum. Tout cela m'aide beaucoup à améliorer mes compétences en trading (bien que je sois toujours un idiot dans cette carrière ).

Récemment, en examinant le marché et mon approche du trading, j'ai pensé à un indicateur qui pourrait m'aider beaucoup (et d'autres aussi, peut-être). Mon idée est très simple, mais la transposer en code est au-delà de mes capacités. Je ne sais pas si un tel indicateur existe ou non, donc je vais décrire mon idée en détail et j'espère que quelqu'un m'aidera à trouver ou à créer celui qui convient le mieux.

- Idée générale : Je veux suivre le cours du marché en continu dans une fourchette de points donnée. L'indicateur me donnerait des informations nécessaires sur l'action du prix dans des segments de prix (gamme fixe donnée) tels que : (1) le niveau supérieur, (2) le niveau inférieur, (3) le niveau médian, (4) le nombre de barres dans la fourchette. J'aimerais aussi connaître le niveau du point de contrôle (POC) des barres dans la fourchette donnée, mais cela est peut-être trop compliqué à coder et consomme beaucoup de mémoire du PC.

- Analogie : J'ai trouvé des indicateurs populaires comme "Market Profile", "Price Channel", ou "Session HiLo", ... qui partagent mon idée. Mais tous sont limités par l'intervalle de temps (horaire, quotidien, ...) et ne sont pas basés sur une fourchette fixe ou manquent de certaines fonctionnalités comme je l'ai mentionné ci-dessus. J'ai essayé de recoder sur eux pour adapter mon idée mais sans succès jusqu'à présent.

- Liste de souhaits concernant l'indicateur : (1) Paramètre d'entrée : Plage fixe de points ; Intervalle de temps (en minutes, heures ou jours) ou numéro de barre utilisé pour compter le nombre de barres fermées dans la plage donnée ; Alerte lorsque le prix touche les niveaux (facultatif).

(2) Sortie sur le graphique principal : affichage d'une ligne horizontale correspondant aux niveaux de la fourchette (supérieur, inférieur, moyen), et texte informant du nombre de barres comptées dans la fourchette pour le temps donné.

(3) Mise à jour continue : l'information sera mise à jour dans 3 cas : (a) le prix atteint un nouveau sommet dans la fourchette actuelle, (b) un nouveau creux dans la fourchette actuelle, (c) de plus en plus de barres se consolident dans la fourchette actuelle.

Je dois habituellement faire toutes ces choses manuellement. Maintenant, j'espère que l'indicateur m'aidera à simplifier mon travail, à gagner du temps et à rester concentré sur l'action des prix. J'ai cherché sur Internet mais je n'ai pas trouvé un tel outil. Si vous en connaissez un, ou si vous en fabriquez un, je vous en serais très reconnaissant.

Merci de votre attention et de votre aide !

Et encore une fois, bonne année à vous !

Meilleures salutations,

fareastol

oh j'ai oublié de joindre une photo de ce que j'imagine de l'indicateur
Dossiers :
 

Je pense que j'ai fait quelque chose moi-même après tout. Je vais maintenant le partager avec vous.

Comme indiqué à l'intérieur de l'indicateur, je n'invente rien, je mélange simplement deux indicateurs connexes que j'ai. Peut-être que ce n'est pas bien "mélangé".

Jetez-y un coup d'oeil et améliorez-le si vous pensez qu'il est utile !

 

Dessiner un objet rectangle multiple

Bonjour,

J'essaie de dessiner un rectangle multiple en vérifiant les n dernières bougies.

Le point a une règle simple.

Vous trouverez ci-joint un exemple.

Le grand rectangle sans fond définit la règle (vérifier le prix inclus du point 1 au point 2 en utilisant la moyenne mobile).

Le point pour dessiner le rectangle est le haut et le bas de la barre avec le plus haut de la fourchette.

Comment puis-je le coder ?

Merci de votre réponse.

Désolé,

Je ne peux pas attacher une image maintenant. Le point 1 est le croisement de la MA rapide avec la MA lente vers le haut et le point 2 est le croisement de la MA rapide avec la MA lente vers le bas.

 

Quelqu'un peut-il m'aider à modifier l'indicateur rsi chart bars ci-joint ?

Cet indicateur affiche des barres bleues lorsque le RSI est supérieur au niveau 50 et des barres rouges en dessous de ce niveau.

En fait, le niveau 50 est le niveau moyen du RSI. Il serait très utile d'ajouter deux niveaux supplémentaires à 70 et à 30 qui sont les véritables niveaux de surachat et de survente. Et lorsque le RSI passe ces deux niveaux 70/30, les bougies devraient également changer de couleur. J'apprécierais vraiment toute aide, et merci en plus.

Dossiers :
 

Laszlo,

Essayez cette version. Il fonctionne toujours avec 2 niveaux mais il montre (ou plutôt, ne montre pas) 3 états. Il colore les barres lorsque les niveaux sont brisés vers le haut ou vers le bas et si la valeur rsi est entre les 2 niveaux, il laisse les barres telles quelles (donc elles sont simples, non colorées par l'indicateur, les barres) Voici un exemple à quoi il ressemble et comment il se compare au rsi "régulier" :

Laszlo:
Est-ce que quelqu'un pourrait m'aider à modifier l'indicateur de barres rsi ci-joint ?

Cet indicateur affiche des barres bleues lorsque le RSi est supérieur au niveau 50 et des barres rouges en dessous de ce niveau.

En fait, le niveau 50 est le niveau moyen du RSI. Il serait très utile d'ajouter deux niveaux supplémentaires à 70 et à 30 qui sont les vrais niveaux de surachat et de survente. Et quand le RSI passe ces deux niveaux 70/30, les bougies devraient aussi changer de couleur. J'apprécierais vraiment toute aide, et merci en plus.
Dossiers :
 
fareastol:
Je pense que j'ai fait quelque chose moi-même après tout. Je partage maintenant avec vous.

Comme indiqué à l'intérieur de l'indicateur, je n'invente rien, je mélange simplement deux indicateurs connexes que j'ai. Peut-être que ce n'est pas bien "mélangé".

Jetez-y un coup d'œil et améliorez-le si vous pensez que c'est utile !

Fareastol, j'aime bien votre indicateur de plage et je pense que ce serait cool si vous pouviez ajouter un drag de "point de départ" (que vous avez) et un drag de "point de fin" et alors il dessinera automatiquement la plage pour cette période.