Aide au codage - page 36

 

Besoin d'aide pour le traitement de STOPLOSS

mladen:
kemal44

Voici un lien vers un fil de discussion où il est expliqué comment utiliser les fonctions dans le code : https://www.mql5.com/en/forum/173005

Il est très bien expliqué là (et plus que je ne peux expliquer dans un post) comment les utiliser.

Cher Mladen ,

Lors du backtesting, BreakEven-Stoplos semble fonctionner, mais lorsque le compte réel, pour autant que je vois qu'il ne fonctionne pas correctement,

Pourriez-vous jeter un coup d'oeil au fichier expert, et me dire ce qui ne va pas ?

Merci d'avance

Dossiers :
xpexpert.txt  24 kb
 

...

kemal

Vérifiez dans l'onglet des experts du terminal quelle erreur est écrite.

Je ne peux pas le vérifier car il manque la logique d'entrée (il ne met jamais BuyCondition ou SellCondition à vrai comme c'est écrit).

kemal44:
Cher Mladen ,

Lors du backtesting, BreakEven-Stoplos semble fonctionner mais sur le compte réel, il ne fonctionne pas correctement,

Pourriez-vous jeter un coup d'oeil au fichier expert, et me dire ce qui ne va pas ?

Merci d'avance
 
mladen:
kemal

Vérifiez dans l'onglet des experts du terminal quelle erreur est écrite.

Je ne peux pas le vérifier car il manque la logique d'entrée (il ne met jamais BuyCondition ou SellCondition à vrai de la façon dont il est écrit).

Voici l'expert avec la logique d'achat et de vente,

Le problème est le breakeven stop-loss.

Ce que je veux faire par Breakeven, c'est que si le profit augmente de 5 pip à partir du point d'entrée, le stop-loss doit être fixé au point d'entrée afin de protéger le portefeuille,

Merci d'avance

Dossiers :
xpexpert_1.txt  24 kb
 

...

Puisque la distance minimale du stop loss dépend de chaque symbole, de chaque courtier et peut varier d'un moment à l'autre, avant de définir le break even, ajoutez une vérification qui ressemblerait à ceci (c'est un exemple générique lorsqu'un ordre est un ordre d'achat, vous pouvez l'écrire de manière très similaire à un ordre de vente) :

double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

PS : tout ceci est valable (selon les dernières modifications - à partir du build 419) dans les cas où votre courtier n'est pas un courtier ECN. Si votre courtier est un courtier ECN, dans ce cas MarketInfo(Symbol(),MODE_STOPLEVEL) retournera 0 dans les dernières versions et vous devrez faire quelques expériences pour ajuster la distance minimale (s'il y en a une) du stop-loss.

kemal44:
Voici l'expert avec la logique d'achat et de vente,

Le problème est le stop-loss breakeven.

Ce que je veux faire par breakeven est que si le profit augmente de 5 pip à partir du point d'entrée, le stop-loss doit être fixé au point d'entrée afin de protéger le portefeuille,

Merci d'avance
 
mladen:
Puisque la distance minimale du stop loss dépend de chaque symbole, de chaque courtier et peut varier d'un moment à l'autre, avant de définir le break even, ajoutez une vérification qui ressemblerait à ceci (c'est un exemple générique lorsqu'un ordre est un ordre d'achat, vous pouvez l'écrire de manière très similaire à un ordre de vente) :
double minimalDistance = MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;

if (OrderType()=OP_BUY && (Bid-OrderOpenPrice())>=minimalDistance)

... your code for setting stop loss

PS : tout ceci est valable (selon les dernières modifications - à partir du build 419) dans les cas où votre courtier n'est pas un courtier ECN. Si votre courtier est un courtier ECN, dans ce cas MarketInfo(Symbol(),MODE_STOPLEVEL) retournera 0 dans les dernières versions et vous devrez faire quelques expériences pour ajuster la distance minimale (s'il y en a une) du stop loss.

Merci ;

La distance est une bonne idée,

Je n'ai aucune idée des règles des courtiers ECN, mon courtier est une société locale.

 

...

kemal44

De votre courtier - essayez ce qui suit : une façon simple de vérifier est d'essayer d'ouvrir un ordre manuellement, mais lorsque vous le faites, essayez de définir un stop loss et / ou un take profit. Si ces champs sont désactivés (comme sur l'image ci-dessous) dans la boîte de dialogue d'ouverture d'ordre ou quelle que soit la valeur autre que 0 que vous mettez dans ces champs vous obtenez une erreur alors votre courtier est un courtier de type "ECN / STP".

kemal44:
Merci ;

La distance est une bonne idée,

Je n'ai aucune idée des règles des courtiers ECN, mon courtier est une société locale.
Dossiers :
order_open.gif  22 kb
 
mladen:
kemal44

De votre courtier - essayez ce qui suit : une façon simple de vérifier est d'essayer d'ouvrir un ordre manuellement mais lorsque vous le faites, essayez de définir un stop loss et/ou un take profit. Si ces champs sont désactivés (comme sur l'image ci-dessous) dans la boîte de dialogue d'ouverture d'un ordre ou si vous obtenez une erreur quelle que soit la valeur différente de 0 que vous y mettez, alors votre courtier est un courtier de type "ECN / STP".

Ma fenêtre de trading est exactement la même que sur l'image ci-dessus, j'ai compris que mon courtier est de type "ECN / STP".

Je vous remercie

en attendant, pouvons-nous obtenir les canaux (StdDev etc..) fournis par MT4 automatiquement dans notre graphique par l'indicateur ou le code basé sur ea, je n'ai aucune idée de comment le coder, pourriez-vous m'aider à obtenir un exemple de code pour cela ?

Merci d'avance

 

...

kemal44

Je ne suis pas sûr de comprendre la question sur les "canaux", mais laissez-moi essayer :

Vous pouvez utiliser n'importe quel indicateur intégré à metatrader en utilisant les fonctions qu'ils ont fournies. Pour l'écart-type par exemple, la syntaxe est la suivante :

[].[

[/TR]

[TR]

[

[TR]

[TD]ma_method

[TD] - [TD="width : 100%"]Méthode de la MA..

[TR

][TD] - [TD="width : 100%"]Prix appliqué. Il peut s'agir de n'importe quelle valeur de l'.

[TR

] [TD]shift[TD] - [TD="width : 100%"]Indice de la valeur prise dans le tampon de l'indicateur (décalage par rapport à la barre actuelle du nombre donné de périodes précédentes).
double iStdDev(

[/TD]

string symbol, int timeframe, int ma_period, int ma_shift, int ma_method, int applied_price, int shift)[/TD]

[/TR]

[/TABLE]

Calcule l'indicateur d'écart type et renvoie sa valeur.

Paramètres :

[TABLE="class : docparams"]

symbol[/TD] -
/TD]Symbole dont les données doivent être utilisées pour calculer l'indicateur. NULL signifie le symbole actuel.[/TD]

[/TR]

timeframe[/TD] - [/TD
Timeframe. Il peut s'agir de n'importe quelle valeur de l'énumération Timeframe 0 signifie la période actuelle du graphique.[/TD]

[/TR]

ma_period[/TD] -
/TD]Période de la MA.ma_shift -
TD="width : 100%"]Décalage de la MA.
Il peut s'agir de n'importe quelle valeur d 'énumération de méthode de moyenne mobile
[TD]applied_price
énumération des prix appliqués

Exemple :

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0) ;

_________________________________________

Il en va de même pour les autres indicateurs intégrés (ceux-ci :

Vous pouvez donc utiliser n'importe laquelle de ces fonctions à partir d'un autre indicateur, script ou EA.

Si vous voulez afficher certaines des valeurs des indicateurs intégrés sur le graphique, vous devez utiliser un tampon de dessin (comme dans les indicateurs ordinaires), assigner les valeurs de certaines des fonctions ci-dessus au tampon de dessin et elles seront affichées sur le graphique. Les EAs n'ont pas de tampon de dessin, donc vous ne pouvez pas faire cela en utilisant les tampons de dessin d'un EA (vous auriez besoin d'utiliser des objets, mais c'est une histoire complètement différente).

kemal44:
La fenêtre de trading est exactement la même que celle de l'image ci-dessus, j'ai compris que mon borker est de type "ECN / STP".

Merci.

En attendant, pouvons-nous obtenir les canaux (StdDev etc..) fournis par MT4 automatiquement dans notre graphique par l'indicateur ou le code basé sur l'EA, je n'ai aucune idée de comment le coder, pourriez-vous m'aider à obtenir un exemple de code pour cela ?

Merci d'avance
 
mladen:
kemal44

Je ne suis pas sûr de comprendre la question sur les "canaux", mais laissez-moi essayer :

Vous pouvez utiliser n'importe quel indicateur intégré à metatrader en utilisant les fonctions qu'ils ont fournies. Pour l'écart-type par exemple, la syntaxe est la suivante :

TD].

[/TR]

[TR]

[TD="width : 100%"]Décalage de la MA.

[TR]

[TD]ma_method[TD] - [TD="width : 100%"]Méthode de la MA..

[TR

][TD] - [TD="width : 100%"]Prix appliqué. Il peut s'agir de n'importe quelle valeur de l'.

[TR

] [TD]shift[TD] - [TD="width : 100%"]Indice de la valeur prise dans le tampon de l'indicateur (décalage par rapport à la barre actuelle du nombre donné de périodes précédentes).
double iStdDev([/TD]string symbol, int timeframe, int ma_period, int ma_shift, int ma_method, int applied_price, int shift)[/TD]

[/TR]

[/TABLE]

Calcule l'indicateur d'écart type et renvoie sa valeur.

Paramètres :

[TABLE="class : docparams"]

symbol[/TD] - [/TD]Symbole dont les données doivent être utilisées pour calculer l'indicateur. NULL signifie le symbole actuel. [/TD]

[/TR]

timeframe[/TD] - [/
Timeframe. Il peut s'agir de n'importe quelle valeur de l'énumération Timeframe0 signifie la période actuelle du graphique.[/TD]

[/TR]

ma_period[/TD] -[/TD]Période de la MA.ma_shift -
Il peut s'agir de n'importe quelle valeur d 'énumération de méthode de moyenne mobile
[TD]applied_price
énumération des prix appliqués

Exemple :

double val=iStdDev(NULL,0,10,0,MODE_EMA,PRICE_CLOSE,0) ;

_________________________________________

Il en va de même pour les autres indicateurs intégrés (ceux-ci :

Vous pouvez donc utiliser n'importe lequel de ces éléments comme appel de fonction depuis un autre indicateur, script ou EA.

Si vous voulez afficher certaines des valeurs des indicateurs intégrés sur le graphique, vous devez utiliser un tampon de dessin (comme dans les indicateurs ordinaires), assignez les valeurs de certaines des fonctions ci-dessus au tampon de dessin et elles seront affichées sur le graphique. Les EAs n'ont pas de tampon de dessin, donc vous ne pouvez pas faire cela en utilisant les tampons de dessin d'un EA (vous auriez besoin d'utiliser des objets, mais c'est une histoire complètement différente).

Ce que je veux dire par canal Sdv est le canal comme ci-dessous,

Au fait, merci pour votre réponse rapide.

Dossiers :
xxx.gif  13 kb
 

EA avec SAR parabolique

Est-ce que quelqu'un a une idée de trading avec le SAR parabolique. Je veux faire EA avec SAR parabolique mais jusqu'à présent je n'obtiens pas de bon résultat. Donc si vous avez une idée avec le SAR parabolique, je vais l'améliorer. Le dernier que j'ai fait peut faire ce profit. mais l'équité n'est jamais la même avec l'équilibre.

Dossiers :
Raison: