Aide au codage - page 254

 
thefxpros:
Bonjour,

Je m'amuse à transformer un indicateur en MTF en utilisant icustom. L'indicateur fonctionne, mais n'affiche pas la couleur et les flèches correctement, pourquoi ?

Où se trouve l'erreur, s'il vous plaît ?

wilders_trailing_stop_mtf.mq4

wilders_trailing_stop.mq4

//------------------------------------------------------------------

#property copyright "thefxpros"

#property link "thefxpros@katamail.com"

//------------------------------------------------------------------

#property indicator_chart_window

//#property indicator_color1 Orange

//#property indicator_color2 LimeGreen

//#property indicator_color3 LimeGreen

//#property indicator_color4 Orange

//#property indicator_width3 1

//#property indicator_width4 1

//

//

//

extern int TimeFrame = 0;

extern int Length = 2;

extern double Coeff = 1.75;

extern int LineWidth = 1;

extern int ArrowWidth = 1;

extern color UpLineClr = LimeGreen;

extern color DnLineClr = Orange;

extern color UpArrowClr = LimeGreen;

extern color DnArrowClr = Orange;

//

double WTS[];

double WTSDn[];

double arrUp[];

double arrDn[];

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int init()

{

IndicatorBuffers(4);

SetIndexBuffer(0,WTS); SetIndexStyle(0,DRAW_LINE, EMPTY, LineWidth, DnLineClr);

SetIndexBuffer(1,WTSDn); SetIndexStyle(1,DRAW_LINE, EMPTY, LineWidth, UpLineClr);

SetIndexBuffer(2,arrUp); SetIndexStyle(2,DRAW_ARROW, EMPTY, ArrowWidth, UpArrowClr); SetIndexArrow(2,SYMBOL_ARROWUP);

SetIndexBuffer(3,arrDn); SetIndexStyle(3,DRAW_ARROW, EMPTY, ArrowWidth, DnArrowClr); SetIndexArrow(3,SYMBOL_ARROWDOWN);

IndicatorShortName("Wilders trailing stop MTF ("+Length+","+Coeff+")");

Length = MathMax(Length,1);

switch(TimeFrame)

{

case 1 : string TimeFrameStr="Period_M1"; break;

case 5 : TimeFrameStr="Period_M5"; break;

case 15 : TimeFrameStr="Period_M15"; break;

case 30 : TimeFrameStr="Period_M30"; break;

case 60 : TimeFrameStr="Period_H1"; break;

case 240 : TimeFrameStr="Period_H4"; break;

case 1440 : TimeFrameStr="Period_D1"; break;

case 10080 : TimeFrameStr="Period_W1"; break;

case 43200 : TimeFrameStr="Period_MN1"; break;

default : TimeFrameStr="Current Timeframe";

}

IndicatorShortName("Wilders trailing stop MTF ("+TimeFrameStr+")");

return(0);

}

//----

//+------------------------------------------------------------------+

//| MTF function |

//+------------------------------------------------------------------+

int start()

{

datetime TimeArray[];

int i,limit,y=0,counted_bars=IndicatorCounted();

// Plot defined time frame on to current time frame

ArrayCopySeries(TimeArray,MODE_TIME,Symbol(),TimeFrame);

limit= MathMin(Bars-counted_bars+3*TimeFrame/Period(),Bars-1);

for(i=0,y=0;i<limit;i++)

{

if (Time<TimeArray[y]) y++;

/*********************************************************************************************************

Add your main indicator loop below. You can reference an existing indicator with its iName or iCustom.

Rule 1: Add extern inputs above for all neccesary values

Rule 2: Use 'TimeFrame' for the indicator time frame

Rule 3: Use 'y' for your indicator's shift value

********************************************************************************************************/

WTS=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,0,y);

WTSDn=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,1,y);

arrUp=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,2,y);

arrDn=iCustom(Symbol(),TimeFrame,"Wilders trailing stop",Length,Coeff,3,y);

}

return(0);

}

//+------------------------------------------------------------------+[/PHP]

thefxpros

Vous avez commenté la partie où vous devez déclarer les tampons de dessin.

Cette partie :

[PHP]#property indicator_chart_window

//#property indicator_buffers 4

//#property indicator_color1 Orange

//#property indicator_color2 LimeGreen

//#property indicator_color3 LimeGreen

//#property indicator_color4 Orange

//#property indicator_width3 1

//#property indicator_width4 1

Supprimez les commentaires de ces lignes et cela fonctionnera

 
mladen:
thefxpros

Vous avez commenté la partie où vous devez déclarer les tampons de dessin.

Cette partie :

#property indicator_chart_window

//#property indicator_buffers 4

//#property indicator_color1 Orange

//#property indicator_color2 LimeGreen

//#property indicator_color3 LimeGreen

//#property indicator_color4 Orange

//#property indicator_width3 1

//#property indicator_width4 1
Enlevez les commentaires de ces lignes et cela fonctionnera

oui je sais, mais j'ai spécifié plus tard, ce n'est pas suffisant ? Dois-je toujours spécifier au début ?

Je me souviens que j'ai souvent fait comme ça, avec la version précédente de metaeditor et pour autant que je me souvienne, cela a fonctionné, est-ce que je me trompe ?

 
thefxpros:
oui je sais, mais j'ai spécifié plus tard, ce n'est pas suffisant ? Je me souviens que j'ai souvent fait comme ça, avec la version précédente de metaeditor et pour autant que je me souvienne, cela a fonctionné, est-ce que je me trompe ?

thefxpros

Au début, vous spécifiez des tampons de dessin. Plus tard, vous pourrez spécifier des tampons de calcul. Si vous ne spécifiez pas #property indicator_buffers numberOfDrawningBuffer, rien ne sera dessiné sur le cœur.

 

montrer tout votre historique de Speard . Aidez-moi s'il vous plaît

 

Quelqu'un peut-il m'aider à vérifier la fonction CloseInMA de cet EA ?

Je suis resté bloqué ici pendant plusieurs jours et je n'ai pas trouvé la solution .

Merci de votre aide.

Dossiers :
testing1.5.mq4  38 kb
 
stevenpun:
Quelqu'un peut-il m'aider à vérifier la fonction CloseInMA de cet EA ?

Je suis resté bloqué ici pendant plusieurs jours et je n'ai pas trouvé la solution .

Merci de votre aide.

stevenpun

Essayez de faire comme il est écrit maintenant

Dossiers :
 

Bonjour gourou au grand cœur, je demande s'il vous plaît que quelqu'un m'aide à coder ceci et ensuite à construire une version robot (EA) de celui-ci :

INDICATEUR- Auto dessiner des lignes horizontales (de préférence des lignes brisées) sur les prix se terminant à 5, 15, 31, 67 respectivement. Exemple sur UJ 103.05, 102.67, 103.15 e.t.c. La longueur de la ligne devrait être de 1 pouce d'une règle mathématique avec ces nombres en dessous de sorte que j'aurai un graphique décent à cause des deux lignes que j'ai déjà.

PS- Courtier à 4 et 5 chiffres compatible

 

Règles pour l'EA

ACHETER

Placez un ordre d'achat stop en attente à chaque fois que le prix bouge de 3 pips avant le nombre magique ci-dessous. Exemple pour le nombre magique 5, le prix est actuellement à UJ 103.02, placer un ordre d'achat en attente à 103.05.

VENTE

Placez un ordre de vente en attente à chaque fois que le prix s'approche du nombre magique de 3 pips par le HAUT. Exemple, le prix est actuellement à 103.08, placez un ordre de vente stop à 103.05.

SL et TP 25/50 pip chacun.

Lorsque le trade atteint +3 pips de profit, déplacez STOP LOSS pour verrouiller +1 profit, déplacez 5 pour verrouiller 4, déplacez 8 pour verrouiller 7, déplacez 12 pour verrouiller 10.

Position ouverte maximale ou trade flottant ou ordre en attente =1 seulement jusqu'à ce que le trade soit arrêté pour un nouveau trade.

Maximum daily draw down 3% et une fois atteint, EA doit arrêter le trading.

Taille de lot par défaut 0.1 (10,000)

Négociation 24 heures sur 24

P.S : L'EA doit avoir une option pour cacher les nombres magiques, le trailing stop, le take profit/stop loss de mon courtier et doit être compatible avec 4/5 chiffres. Paire par défaut UJ.

Je serais très reconnaissant d'avoir ce code bientôt.

 
mladen:
stevenpun Essayez de faire comme c'est écrit maintenant.

Bonjour mladen ,

J'ai déjà essayé, mais ça ne marche pas.

C'est pourquoi je suis très confus.

J'espère que vous pourrez m'aider à voir quel est le problème.

Je vous remercie.

 
stevenpun:
Bonjour mladen ,

J'ai déjà essayé, mais ça ne marche pas.

C'est pourquoi je suis très confus.

J'espère que vous pourrez m'aider à voir quel est le problème.

Je vous remercie.

Dans la version que vous avez postée, vous compariez des constantes (Fastma, Dn_slowma et Up_slowma sont des périodes qui sont utilisées pour les moyennes mobiles, pas les valeurs des moyennes mobiles).

Maintenant il est changé pour comparer les valeurs des moyennes mobiles. Si ce n'est pas ce que vous avez en tête, alors vous devez le changer, mais vous ne pouvez pas comparer des valeurs constantes et vous attendre à ce qu'elles changent de barre en barre.

Vérifiez si ce sont les conditions exactes des moyennes mobiles (dans la fonction GetSignalClose()) que vous avez imaginées comme conditions de sortie, mais continuez à comparer les valeurs des moyennes mobiles et non les paramètres de ces moyennes mobiles.

Raison: