Aide au codage - page 109

 

modification d'unordre en cours

Bonjour à tous, j'ai essayé de programmer une modification de prix pour les ordres en attente. C'est l'un de mes premiers EAs. Je veux écrire autant d'EAs que possible afin de pouvoir écrire des EAs complexes plus tard. Avec ma modification d'ordre, j'ai le problème qu'elle ne fonctionne pas quand je la mets dans un graphique sur mon compte de démonstration. Quelqu'un peut-il trouver des erreurs et m'aider en les corrigeant ? Merci. Je n'ai vraiment pas d'autres indices. Cheers

{ RefreshRates(); double ppoint=MarketInfo(OrderSymbol(), MODE_POINT); int total=OrdersTotal(); double pBid=MarketInfo(OrderSymbol(), MODE_BID); double pAsk=MarketInfo(OrderSymbol(), MODE_ASK); double priceNew; //---- for(int i=0; i50*ppoint) { priceNew=(pBid-50*ppoint); OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit()); Print("Modified Order"); } } } if (OrderType()==OP_SELLSTOP) { if (OrderOpenPrice()-pAsk>50*ppoint) { priceNew=(pAsk+50*ppoint); OrderModify(OrderTicket(),priceNew,0,OrderStopLoss(),OrderTakeProfit()); Print("Modified Order"); } } } } }
 

Hé Robert, merci pour votre aide jusqu'à présent. Comment puis-je afficher correctement le code ici ? Merci et à bientôt.

 
fabian103:
Hé Robert, merci pour votre aide jusqu'à présent. Comment puis-je afficher correctement le code ici ? Merci et à bientôt.

fabian103

Vous devriez faire un simple copier-coller dans cette boîte de code php.

Pour une raison quelconque, votre code est "dans tous les sens". Essayez-le. Si cela ne fonctionne pas, essayez de joindre la partie du code que vous voulez réviser dans un fichier séparé (en utilisant l'outil d'attachement - celui indiqué sur l'image).

Dossiers :
attach.gif  36 kb
 

Bonjour,

J'ai essayé de calculer la valeur des bandes de bollinger à l'intérieur de l'indicateur stochastique mais je n'y suis pas parvenu.

J'obtiens la valeur référencée à la paire, mais j'ai besoin de la valeur qui devrait être comprise entre 0 et 100.

Un indice ?

Merci

 
metcalfe:
Bonjour,

J'ai essayé de calculer la valeur des bandes de bollinger dans l'indicateur stochastique mais je n'y suis pas parvenu.

J'obtiens la valeur référencée à la paire, mais j'ai besoin de la valeur qui devrait être comprise entre 0 et 100.

Un indice ?

Merci

Je suppose que vous voulez dire calculer les bandes de Bollinger d'une stochastique (en utilisant les valeurs de la stochastique au lieu des prix des symboles). Vous ne pouvez pas le faire avec un iBands() intégré car il utilise toujours les prix du graphique principal.

Vous pourriez utiliser iBandsOnArray() mais avec lui vous avez un éternel problème metatrader : les déviations ne peuvent être que des multiplicateurs entiers. Vous ne pouvez pas définir les déviations en valeurs fractionnaires. Donc, le mieux est d'utiliser les fonctions iStdDevOnArray() et iMaOnArry() pour calculer vos propres bandes de Bollinger de n'importe quelle valeur et avec n'importe quelle largeur de bande. Dans le cas du stochastique, le code qui fait cela ressemblerait à ceci :

for(int i=limit; i>=0; i--) stoch = iStochastic(NULL,0,StochPeriod,1,StochSlowing,MODE_SMA,StochPrice,MODE_MAIN,i);

for( i=limit; i>=0; i--)

{

double dev = iStdDevOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);

bollmi = iMAOnArray(stoch,0,BollingerPeriod,0,MODE_SMA,i);

bollup = bollmi+BollingerDeviations*dev;

bolldn = bollmi-BollingerDeviations*dev;

}

Je joins également l'indicateur lui-même, pour que vous puissiez continuer à l'expérimenter. Il ressemble à ceci sur le graphique :

____________________

PS : les valeurs des bandes peuvent dépasser les limites de 0 et 100 (dans les cas où le stochastique oscille autour de 0 ou 100) en fonction du multiplicateur des bandes que vous utilisez pour les déviations et de la longueur du calcul des bandes de Bollinger lui-même.

 
mladen:
Je suppose que vous voulez dire calculer les bandes de Bollinger d'une stochastique (en utilisant les valeurs de la stochastique au lieu des prix des symboles). Vous ne pouvez pas le faire avec la fonction iBands() intégrée car elle utilise toujours les prix du graphique principal.

Vous pourriez utiliser iBandsOnArray() mais avec lui vous avez un éternel problème metatrader : les déviations ne peuvent être que des multiplicateurs entiers. Vous ne pouvez pas définir les déviations en valeurs fractionnaires. Donc, le mieux est d'utiliser les fonctions iStdDevOnArray() et iMaOnArry() pour calculer vos propres bandes de Bollinger de n'importe quelle valeur et avec n'importe quelle largeur de bande. Dans le cas du stochastique, le code qui fait cela ressemblerait à ceci :

C'est SUPER AWESOME !!!!!

Merci beaucoup, j'ai essayé pendant si longtemps.

Et merci pour la réponse super rapide.

Une autre question stupide.

L'indi fonctionne très bien mais je n'arrive pas à obtenir le bon chiffre sur l'ea concernant la valeur des bandes.

Par exemple, dans l'image que vous avez jointe, les chiffres 81...67..54.....

 
metcalfe:
C'est SUPER AWESOME !!!!!

Merci beaucoup, j'ai essayé pendant si longtemps.

Et merci pour la réponse super rapide.

Une autre question stupide.

L'indi fonctionne très bien mais je n'arrive pas à obtenir le bon chiffre sur l'ea concernant la valeur des bandes.

Par exemple, comme dans l'image que vous avez jointe, les chiffres 81...67..54.....

:) :)

La longueur de lastochastique dans cet exemple est fixée à 32. C'est la seule différence par rapport aux paramètres par défaut.

 
mladen:
Dans cet exemple, la longueur stochastique est fixée à 32. C'est la seule différence par rapport aux paramètres par défaut

Désolé..je n'ai pas très bien expliqué ce que je voulais demander.

Dans mon ea j'essaie d'obtenir le numéro par exemple de la bande supérieure ou inférieure dans la fenêtre stoch comme dans l'image. Par exemple je veux dans l'ea récupérer la bande supérieure qui est 81.8116 et j'ai codé comme suit

Comment(iCustom(NULL,0, "name",24,0,MODE_UPPER,0)) ; \NNous avons renommé l'indice.

mais je n'ai pas le bon numéro.

Où est-ce que je me trompe ?

Merci

 
metcalfe:
Désolé..je n'ai pas très bien expliqué ce que je voulais demander.

Dans mon ea, j'essaie d'obtenir le numéro par exemple de la bande supérieure ou inférieure dans la fenêtre stoch comme dans l'image. Par exemple, je veux récupérer la bande supérieure qui est 81.8116 et j'ai codé comme suit

Comment(iCustom(NULL,0, "name",24,0,MODE_UPPER,0)) ; \NNous avons renommé l'indice.

mais je n'ai pas le bon numéro.

Où est-ce que je me trompe ?

Merci

Faites-le comme ceci :

double upperBand = iCustom(NULL,0,"name",24,1,0,0);[/PHP]

The problem was that you can not put 0 in place of the slowing parameter since in that case metatrader will cause an error when calculating stochastic, and you will always get 0 as a return value, so use 1 instead (it is equivalent to no smoothing of the stochastic value). Also, better to use buffer numbers (MODE_MAIN is a reserved word in MQL - it 0 but in some cases they are not what you expect them to be). To get the rest of the values you would then have to write something similar to this :

[PHP]double middleBand = iCustom(NULL,0,"name",24,1,1,0);

double lowerBand = iCustom(NULL,0,"name",24,1,2,0);
 

Ok...

Super merci.

Vous m'avez sauvé....