Aide au codage - page 406

 
elfural:
Chers mrtools et mladen

Quelqu'un peut-il m'aider ? La moyenne mobile Tom Demark est un indicateur clé dans ma stratégie, cependant, une alarme serait très utile lorsqu'un nouveau palier est indiqué ; je serais très reconnaissant si une alarme pouvait être codée dans l'indicateur. Dans l'attente de votre aimable assistance.

Merci beaucoup

Elfural, j'ai ajouté une alerte à la version que tu as postée, et je veux te montrer une version corrigée par Mladen qui pourrait t'intéresser ici : https://www.mql5.com/en/forum/178551/page2 juste au cas où j'ai ajouté des alertes à cette version aussi.

 

Bonjour à tous,

J'ai besoin d'aide pour coder cet indicateur. C'est un excellent indicateur bien qu'il retarde de 4-5 bougies. Merci de m'aider.

grail_indic.ex4

Dossiers :
 
mrtools:
Elfural, j'ai ajouté une alerte à la version que tu as postée, et je veux te montrer une version corrigée par Mladen qui pourrait t'intéresser ici : https://www.mql5.com/en/forum/178551/page2 juste au cas où j'ai ajouté des alertes à cette version aussi.

Il fait maintenant exactement ce dont j'avais besoin.

Merci beaucoup pour votre grande aide.

 

1 transaction par signal.Salut les pro-codeurs MQL,

Je me demande si quelqu'un pourrait m'aider. Je voudrais implémenter "un trade par signal" dans mon EA.

dans mon EA. Si l'EA atteint son objectif de profit, il se peut que l'EA ouvre une autre transaction dans la même direction.

un autre trade dans le même sens de la tendance. Cela peut conduire à un trade perdant car

le signal est sur le point de changer (voir les captures d'écran ci-jointes).

Quelle serait la meilleure façon pour moi de mettre en œuvre la fonctionnalité"une transaction par signal" ?

Je pourrais bien sûr augmenter l'objectif de profit pour empêcher l'EA d'ouvrir une autre transaction,

mais ce n'est probablement pas la meilleure solution.

J'ai essayé d'implémenter cette fonctionnalité mais, le code se compile et il donne un avertissement :

" Vérifiez la précédence de l'opérateur pour une erreur éventuelle ; utilisez les parenthèses pour clarifier la précédence".

Quelle serait la meilleure façon d'implémenter cette fonctionnalité ?Merci d'avance !

extern int maxshorttrades = 1;

extern int maxlongtrades = 1 ;

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

//| ORDRE Logique / Indicateurs |

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

if(openedOrders<=0)

{

double CCIFilter = iCCI(NULL,0,CCIPeriod,CCIMethod,0) ;

double trendc = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1) ;

double trendp = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2) ;

//+-----+

//| BUY |

//+-----+

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

if(OrderType()==OP_BUY<maxlongtrades) break ; // Vérifier la position et les longtrades.

{

if(trendc!=trendp)

{

if(trendc==1 && CCIFilter<-80) // code pour acheter

OpenBuy() ;

retour(0) ;

}

openedOrders++ ;

}

//+------+

//| SELL |

//+------+

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

if(OrderType()==OP_SELL<maxshorttrades) break ; // Vérifier la position et les shorttrades.

{

if(trendc==-1 && CCIFilter>80) // code pour vendre

{

OpenSell() ;

retour(0) ;

}

openedOrders++ ;

}

}

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

//| Close Positions |

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

void CheckForClose()

{

RefreshRates() ;

double CCIFilter_c = iCCI(NULL,0,CCIPeriod,CCIMethod,0) ;

double trendc_c = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,1) ;

double trendp_c = iCustom(Symbol(),0, "Hull moving average 2 strict nmc", "", HMA_Period, HMA_Price, HMA_Speed,0,3,2) ;

for(int i=0;i<OrdersTotal() ; i++)

{

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

if(OrderMagicNumber()!= MAGIC) continue ;

if(OrderSymbol() != s_symbol) continue ;

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

//| Close BUY |

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

if(trendc_c!=trendp_c) // Vérifier la tendance

{

if(OrderType()==OP_BUY)

{

if(trendc_c==-1 && CCIFilter_c>80) // VENTE et filtre CCI ?

{

bool buyClose=OrderClose(OrderTicket(),OrderLots(),MarketInfo(s_symbol,MODE_BID),Slippage*pipMultiplier,clCloseBuy) ;

si(buyClose==false)

{

int ErrorCode = GetLastError() ;

string ErrDesc = ErrorDescription(ErrorCode) ;

string ErrAlert= StringConcatenate("Close Buy Order - Error ",ErrorCode," : ",ErrDesc) ;

if(ShowAlerts == true) Alert(ErrAlert) ;

string ErrLog=StringConcatenate("Bid : ",MarketInfo(s_symbol,MODE_BID)," Lots : ",OrderLots()," Ticket : ",OrderTicket()) ;

Print(ErrLog) ;

}

break ; }

}

}

Dossiers :
signal1.jpg  19 kb
 

Bonjour !

Quelqu'un pourrait-il m'aider avec l'indicateur Linear Price Line ? J'essaie d'en faire une version modifiée qui soustrait le haut du bas. Si le bas est plus grand que le haut ou si le haut est le même que le prix d'ouverture et donc zéro (parce qu'il n'y a pas de haut) alors la sortie devrait être une valeur négative (la ligne dans l'indicateur devrait descendre sous le niveau 0.00). Actuellement, elle reste un nombre positif peu importe si la partie haute du chandelier est plus grande que la partie basse du chandelier ou pas.

Voici la version normale et l'indicateur de différence défectueux.linear_price_bar.zip

linear_price_bartestdiff.mq4

Merci d'avance

 
tfi_markets:

1 transaction par signal.Salut les pro-codeurs MQL,

je me demande si quelqu'un pourrait m'aider.

Je voudrais implémenter "une transaction par signal"

dans mon EA.

Si l'EA atteint son objectif de profit, il se peut que l'EA ouvre une

autre transaction dans la même direction.

Cela peut conduire à une transaction perdante parce que

le signal est sur le point de changer (voir les captures d'écran ci-jointes).

Quelle serait la meilleure façon pour moi d'implémenter la fonctionnalité "une transaction par signal" ?

Je pourrais bien sûr augmenter l'objectif de profit pour empêcher l'EA d'ouvrir une autre transaction,

mais ce n'est probablement pas la meilleure façon.

J'ai essayé d'implémenter cette fonctionnalité mais

le code se compile et donne un avertissement :

" Vérifier la précédence de l'opérateur pour une erreur possible ; utiliser les parenthèses pour clarifier la précédence"

Quelle serait la meilleure façon d'implémenter cette fonctionnalité ?Merci d'avance !

Essayez ceci :

bool Result;

int openedOrders = 0;

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

{

Result = OrderSelect(i, SELECT_BY_POS,MODE_TRADES);

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

if (OrderMagicNumber() != MagicNumber) continue;

openedOrders++;

}

if (openedOrders <= 0)

{ .....

 
mrcodix:
Bonjour !

Quelqu'un pourrait-il m'aider avec l'indicateur Linear Price Line ? J'essaie d'en faire une version modifiée qui soustrait le haut du bas. Si le bas est plus grand que le haut ou si le haut est le même que le prix d'ouverture et donc zéro (parce qu'il n'y a pas de haut) alors la sortie devrait être une valeur négative (la ligne dans l'indicateur devrait descendre sous le niveau 0.00). Actuellement, elle reste un nombre positif peu importe si la partie haute du chandelier est plus grande que la partie basse du chandelier ou pas.

Voici la version normale et l'indicateur de différence défectueux.linear_price_bar.zip

linear_price_bartestdiff.mq4

Merci d'avance

mrcodix

Le bas ne peut jamais être plus grand que le haut de la même mesure

 

Oui, je comprends, mais ce que je voudrais tracer dans mon indicateur est la différence entre HIGH to OPEN et LOW to OPEN. Si le nombre absolu de bas à l'ouverture est plus grand que le nombre absolu de haut à l'ouverture alors je voudrais que la différence entre ces 2 soit négative afin qu'elle soit tracée sous la ligne zéro. Donc, comment faire pour que la sortie de (High - open)-(Low-open) soit négative lorsque le dernier est plus grand que le premier.

Bien à vous

 

J'ai maintenant essayé ceci

for(i=0 ; i<Bars ; i++)

{

BarH = High-Open ;

BarL = Ouverture basse ;

BarC = Close-Open ;

si(BarC>0) UpDays += 1 ;

sinon si(BarC<0) DownDays +=1 ;

sinon si(BarC==0) NeutralDays +=1 ;

si (BarL > BarH) ExtMapBuffer7 = 0-(BarH-BarL) ;

sinon si (BarL < BarH) ExtMapBuffer7 =(BarH-BarL) ;

La sortie est néanmoins toujours un nombre positif ! aidez-nous s'il vous plaît.

 
mrcodix:
Oui, je comprends, mais ce que je voudrais tracer dans mon indicateur est la différence entre HIGH to OPEN et LOW to OPEN. Si le nombre absolu de bas à l'ouverture est plus grand que le nombre absolu de haut à l'ouverture alors je voudrais que la différence entre ces 2 soit négative pour qu'elle soit tracée sous la ligne zéro. Donc, comment puis-je faire en sorte que la sortie de (High - open)-(Low-open) soit négative lorsque le dernier est plus grand que le premier. Cordialement.

Je ne suis pas sûr de ce que tu essaies de faire. Peut-être ceci ?

Dossiers :
Raison: