Demandez ! - page 108

 
Dave137:
void TrailingPositions() {

double pBid, pAsk, pp;

pp = MarketInfo(OrderSymbol(), MODE_POINT);

if (OrderType()==OP_BUY) {

pBid = MarketInfo(OrderSymbol(), MODE_BID);

//BreakEven routine

if (BreakEven>0) {

if ((pBid-OrderOpenPrice())>BreakEven*pp) {

if ((OrderStopLoss()-OrderOpenPrice())<0) {

ModifyStopLoss(OrderOpenPrice()+0*pp);

}

}

}

if (TrailingStop>0) {

if ((pBid-OrderOpenPrice())>TrailingStop_Over135*pp){ //15 pips TS

ModifyStopLoss(pBid-TrailingStop_Over135*pp);

if (pBid-OrderOpenPrice()>TrailingStop_Over90*pp && pBid-OrderOpenPrice()<TrailingStop_Over135*pp){ //55 pips TS

ModifyStopLoss(pBid-TrailingStop_Over90*pp);

if ((OrderOpenPrice()-pAsk)>TrailingStop +TrailingStep+1*pp && (OrderOpenPrice()-pAsk) < TrailingStop_Over90*pp+TrailingStep-1*pp || OrderStopLoss()==0) {//75 pips TS

ModifyStopLoss(pAsk+TrailingStop*pp);

return;

}

}

}

}

}[/PHP]

Three levels of Trailing Stop:

1) 75 Pips TS up to first 90 Pips Profit.

2) 55 Pips TS after 90 but only up to 135 pips profit.

3) 15 Pips TS after 135 pips profit.

The problem I am having is the Trailing Stop moves both up and down as the price moves up and down . . It should just be moving up as the price profit increases and stop if the price starts dropping! How do I get it to stop moving down as the price drops - The Trailing Stop is acting like a Yo-Yo as the price moves up and down.

I am not sure how to stop this from happening?? Please, I need your expertise!

Humbly,

Dave

par exemple : [PHP]ts = pBid - TrailingStop_Over135*pp ;

si (ts > OrderOpenPrice() && ts > OrderStopLoss()) ModifierStopLoss(ts) ;

 

puis-je demander de l'aide?

Puis-je demander à quelqu'un de jeter un coup d'oeil à mon code pour voir où il est erroné s'il vous plaît.... Je ne suis pas un grand programmeur et j'apprécierais un peu d'aide à ce sujet.

Merci beaucoup par avance

je viens aussi de réaliser quelque chose - il y a un gars appelé Ben Taylor qui vend un EA qui ressemble presque exactement à celui que coder's guru a programmé - peut-être que c'est l'un de ses clients - lol

si ce n'est pas le cas - nous devrions faire savoir à coders guru à ce sujet

Dossiers :
 
Michel:
Si nécessaire, vérifiez d'abord que vous êtes après 8 heures du matin :
if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

Bonjour Michel :

Je me réfère à ton code :

if(Hour() < 8) return ;

J'ai modifié le code comme suit :

if(Hour()>12) hr_x=1 ;

.....

.....

.....

.....

if(hr_x==1) signal=50 ;

Mais j'avais toutes les barres de l'histogramme 50 !!!!

Si vous regardez le graphique ci-dessous, il semble que la commande "Hour" ne le reconnaisse pas ! !!

Pour info, j'utilise un graphique 30 min, y aura-t-il une différence ? J'ai essayé de passer à un graphique d'une heure mais le problème existe toujours !

J'ai aussi essayé "if(Hour() < 8) return ; " mais toutes les barres ont disparu ! !!

J'ai essayé beaucoup de choses mais je n'arrive toujours pas à le faire fonctionner.

Est-il possible de me conseiller à nouveau ? Merci

Dossiers :
untitled_5.jpg  115 kb
 
n3sve1k4s:
Bonjour codersguru, pouvez-vous ajouter un signal avec pop-up et flèches à l'indicateur ci-dessous ?

quelqu'un peut-il ajouter un signal ???

 

Merci Michel pour la correction correcte de mon triple codage de Trailing Stop. Cela va, je l'espère, mettre la touche finale à ma nouvelle création ea. Sans la générosité des connaissances de chacun, je n'aurais pas été capable de programmer ce langage. Je garde des notes sur toutes les nouvelles informations que j'acquiers sur ce langage. J'espère que lorsque MT5 sera introduit, le codage ne changera pas trop radicalement - je détesterais devoir tout recommencer ! Merci encore !

Dave

<<<

 
solamax:

Puis-je demander à quelqu'un de jeter un coup d'œil à mon code pour voir où il est erroné s'il vous plaît.... Je ne suis pas un grand programmeur et j'apprécierais un peu d'aide à ce sujet.

Merci beaucoup par avance

je viens aussi de réaliser quelque chose - il y a un gars appelé Ben Taylor qui vend un EA qui ressemble presque exactement à celui que le gourou du codeur a programmé - peut-être que c'est un de ses clients - lol

Si ce n'est pas le cas, nous devrions informer le gourou des codeurs à ce sujet.
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

Si je devais trouver une zone problématique, ce serait le code ci-dessus. Il doit y avoir un croisement pour un achat et une vente.

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1) ; //1-Back

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1) ; //1-Back

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1) ; //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1) ; //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy ; // Un croisement correct 'UP' a eu lieu !

if(Sell1_1Buy2_2) Then Sell ; // Un crossover 'DOWN' approprié s'est produit !

Dave

 

Ce n'est pas tout à fait ce que vous recherchez, mais regardez quand même. Attachez-la à un autre graphique et elle surveille tous les profits et pertes des graphiques sur lesquels se trouvent des ea qui fonctionnent.

 

Dave - vous êtes une bénédiction :)

Dave137:
double Buy2_1 = iOpen(NULL, 0, Current + 0); //Statement in question for crossover! double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0);

Si je devais trouver une zone problématique, ce serait le code ci-dessus. Il faut qu'il y ait un croisement pour un achat et une vente.

double Buy1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Buy1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1) ; //1-Back

double Buy2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Buy2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1) ; //1-Back

double Sell1_1 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Sell1_2 = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, Current + 1) ; //1-Back

double Sell2_1 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 0) ;

double Sell2_2 = iMA(NULL, 0, 50, 0, MODE_EMA, PRICE_CLOSE, Current + 1) ; //1-Back

if(Buy1_1>Sell2_1 && Buy1_2<Sell2_2) Then Buy ; // Un crossover 'UP' correct a eu lieu !

if(Sell1_1Buy2_2) Then Sell ; // Un crossover 'DOWN' approprié s'est produit !

Dave

Merci beaucoup, je vais essayer.

 

Aide au codage

Toute aide est appréciée...

Ceci serait intégré dans un EA en tant que composant de la routine de clôture des transactions.

Je dois créer une variable qui renvoie toujours le solde historique le plus élevé du compte. Je pense que cela nécessite un tableau ?

En termes pratiques, le langage dirait. "si mon profit ouvert est supérieur de X pips au solde historique le plus élevé du compte, fermez tous les trades".

Si quelqu'un peut aider avec la variable, je pense que je peux coder le reste.

Merci d'avance.

 

Merci pour votre réponse, mais vous avez raison, ce n'est pas exactement ce que je recherche.

Je n'ai pas encore le code savant pour résoudre le problème.

J'ai besoin d'un code qui renvoie le "filigrane supérieur" du solde du compte.

Merci encore, toute aide est appréciée.

Dave137:
Ce n'est pas tout à fait ce que vous recherchez, mais regardez quand même. Attachez-le à un autre graphique et il surveille tous les profits et pertes des graphiques qui ont des ea qui fonctionnent.