Comment coder ? - page 117

 
mystified:
J'ai ajouté des niveaux à la HMA :

#property indicator_separate_window

#property indicator_buffers 2

#property indicator_color1 Black

#property indicator_color2 Red

#property indicator_width1 2

#property indicator_minimum 0

#property indicator_maximum 100

#property indicator_level1 80

#property indicator_level2 60

#property indicator_level3 40

#property indicator_level4 20

#property indicator_levelcolor DarkSlateGray

Mais l'indicateur n'apparaît pas correctement dans une fenêtre séparée. Toute aide est appréciée.

Parce que l'indicateur est forcé de se limiter :

Supprimez ces deux lignes :

#property indicator_minimum 0

#property indicator_maximum 100

Levels ne fonctionne bien que sur les indicateurs bornés mais pour faire un indicateur borné le calcul doit inclure les limites.

Exemple : RSI = 100-(100/(1+U/D))

Nous savons par cette formule que l'indicateur évoluera entre 0 et 100 et que nous pouvons donc inclure des niveaux 70-30 sans craindre qu'ils disparaissent.

Un autre exemple est MACD = EMA(CLOSE, 12)-EMA(CLOSE, 26)).

Nous avons défini un niveau sur M5 et lorsque nous passons à H1, il est fort probable que le niveau ait disparu.

Donc, nous prenons la même formule et nous faisons quelques changements MACD = (EMA(CLOSE, 12)-EMA(CLOSE, 26))/EMA(CLOSE, 26). Et maintenant nous avons un indicateur en pourcentage. Il n'est pas borné mais nous avons moins de probabilités de perdre nos niveaux.

 

Merci Linuxer.

 
J'ai créé un EA très simple et un système que j'utilise dans au moins 3 Timeframe. Le problème est qu'il n'arrête pas de s'ouvrir et je ne veux pas avoir 3 EA et 3 graphiques pour une paire.

i need a code that would only do one order for buy and for sell per bar per TF and still open if it is on a different bar. i can have buy and sell and the same bar.

Parfois j'ai 3 signaux dans 3 TF différents. Je veux prendre tous les ordres mais je ne veux qu'un seul ordre par TF et je peux toujours prendre un autre ordre dans un autre TF s'il est toujours ouvert mais dans une barre différente.

Exemple :

1 signal en 4h

1 signal en 1h mais il tombe dans la barre de 4h

1 signal en 30 min mais seulement une barre pour 1h et 4h.

3 signaux seront ouverts.

Je suis d'accord pour utiliser le nombre magique comme moyen de filtrage.

Quelqu'un peut-il m'aider ? Merci beaucoup.

Jusqu'à présent, voici ce que j'ai pensé :

pendant 30 minutes

if (magicnumber == 123)

{

if (iTime(OrderOpenTime()) != iTime(Symbol(),PERIOD_M30,0))

{//mon code d'ordre}

}

Je n'ai pas MT4 mais je sais que quelque chose ne va pas dans la logique ou le code. Alors les gars, aidez-moi s'il vous plaît.

je pense aussi que nous avons un problème similaire avec matrixebiz

Quelqu'un peut-il m'aider ?

 
mystified:
Merci Linuxer.

C'est juste l'exemple (parce que maintenant vous avez l'Oscillateur HMA ) du post précédent, c'est toujours MACD mais calculé d'une manière différente.

 
 

Comment commencer à trader sur la bougie d'ouverture en D1 ?

Est-ce que quelqu'un connaît le code pour demander à l'EA de commencer à ouvrir une transaction lorsque la nouvelle barre commence dans le cadre temporel D1 ?

Voici la logique :

En D1 TF, quand la nouvelle bougie (c'est à dire un nouveau jour) commence, EA va ouvrir 2 positions, BUY et SELL avec TP=10 pips pour chaque position.

Quand la bougie se ferme, EA ferme toutes les positions et recommence à ouvrir des positions pour la nouvelle bougie.

C'est une règle très simple, mais je ne trouve toujours pas le code pour cette règle simple.....

Je suis vraiment nouveau dans le codage MQL4 et j'ai déjà cherché et lu beaucoup de sources et de forums pour en savoir plus sur le codage MQL4, mais je ne trouve pas ce dont j'ai besoin.

Merci avant...

 

voici mon code.... s'il vous plaît aidez-moi à le réparer

J'ai essayé de coder ce que j'ai demandé auparavant, voici l'exemple de code EA :

int start()

{

LastPrice=0 ;

LastProfit=0 ;

LastTicket=0 ;

LastLots=Lots ;

Profit=0 ;

ProfitPip=0 ;

PairOrder=0 ;

OrdersOpened = 0 ;

PreviousOrders = OrdersOpened ;

double Spread = MarketInfo(Symbol(),MODE_SPREAD) ;

PipValue=MarketInfo(Symbol(),MODE_TICKVALUE) ;

ArrayCopyRates(rates, Symbol(), PERIOD_D1) ;

if(DayOfWeek()==0 || DayOfWeek()==6)

{

//pas de transaction pendant les vacances ;

return(0) ;

}

else

{

si (newbar()==Period())

{

for (int cnt = OrdersTotal() - 1 ; cnt >= 0 ; cnt --)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)

{

OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), Slippage, Color1) ;

}

}

OpenBuy() ;

OpenSell() ;

}

}

}

int newbar()

{

double g ;

int m,s,k ;

m=Time[0]+Period()*60-TimeCurrent() ;

g=m/60.0 ;

s=m%60 ;

m=(m-m%60)/60 ;

retour(m) ;

}

void OpenBuy()

{

double ldLot, ldStop, ldTake ;

chaîne de caractères lsComm ;

ldLot = GetSizeLot() ;

ldStop = Ask-Point*StopLoss ;

ldTake = NormalizeDouble(GetTakeProfitBuy(),Digits) ;

OrderSend(Symbol(),OP_BUY,ldLot,NormalizeDouble(Ask,Digits),Slippage,ldStop,ldTake, "BUY",Magic,0,Color1) ;

}

void OpenSell()

{

double ldLot, ldStop, ldTake ;

string lsComm ;

ldLot = GetSizeLot() ;

ldStop = Bid+Point*StopLoss ;

ldTake = NormalizeDouble(GetTakeProfitSell(),Digits) ;

OrderSend(Symbol(),OP_SELL,ldLot,NormalizeDouble(Bid,Digits),Slippage,ldStop,ldTake, "SELL",Magic,0,Color1) ;

}

double GetSizeLot()

{

return(Lots) ;

}

double GetTakeProfitBuy()

{

return(Ask+TakeProfit*Point) ;

}

double GetTakeProfitSell()

{

return(Bid-TakeProfit*Point) ;

}

La nuit dernière j'ai téléchargé sur mon serveur, mais ce matin je l'ai vérifié mais mon exemple d'EA n'a pas ouvert de transaction, quelqu'un peut-il m'aider à réparer mon exemple d'EA ?

En fait, je l'ai aussi joint ici

 

Des alertes qui durent plus longtemps

Bonjour, je suis un débutant qui essaie de comprendre les tenants et les aboutissants de ce système et toute aide sera appréciée !

Mon indicateur actuel a le code suivant pour générer des alertes, mais cette alerte ne dure qu'un seul bip, y a-t-il un moyen de la faire sonner pendant 30 ou 60 secondes ou au moins un peu plus longtemps qu'un bip ?

if (setalert == 1 && shift == 0) {

Alert(Symbol(), " ", period, " ", pattern) ;

setalert = 0 ;

}

Merci

 

Re-codage vers metatrader (Klinger Volume Oscillator)

L'oscillateur Klinger (KO) a été développé par Stephen J. Klinger. S'inspirant de recherches antérieures sur le volume menées par des techniciens de renom tels que Joseph Granville, Larry Williams et Marc Chaikin, M. Klinger a entrepris de développer un indicateur basé sur le volume pour faciliter l'analyse à court et à long terme.

Le KO a été développé avec deux objectifs apparemment opposés à l'esprit : être suffisamment sensible pour signaler les sommets et les creux à court terme, mais suffisamment précis pour refléter le flux d'argent à long terme entrant et sortant d'un titre.

Le KO est basé sur les principes suivants :

* La fourchette de prix (c'est-à-dire le haut et le bas) est une mesure du mouvement et le volume est la force derrière le mouvement. La somme de High + Low + Close définit une tendance. L'accumulation se produit lorsque la somme du jour est supérieure à celle du jour précédent. Inversement, il y a distribution lorsque la somme d'aujourd'hui est inférieure à celle du jour précédent. Lorsque les sommes sont égales, la tendance existante est maintenue.

* Le volume produit des changements continus intra-journaliers du prix reflétant la pression d'achat et de vente. Le KO quantifie la différence entre le nombre d'actions accumulées et distribuées chaque jour comme "force de volume". Une force de volume forte et croissante devrait accompagner une tendance à la hausse, puis se contracter progressivement au cours des dernières phases de la tendance à la hausse et des premières phases de la tendance à la baisse suivante. Cela devrait être suivi d'une force de volume croissante reflétant une certaine accumulation avant le développement d'un fond.

* En convertissant la force du volume en un oscillateur représentant la différence entre une moyenne mobile exponentielle de 34 et 55 périodes avec un déclencheur de 13 périodes, la force du volume entrant et sortant d'un titre peut facilement être suivie. La comparaison de cette force avec l'action du prix peut aider à identifier les divergences aux sommets et aux creux.

Interprétation

M. Klinger recommande les directives suivantes pour l'utilisation du KO :

1. Les signaux les plus fiables se produisent dans la direction de la tendance dominante. Des directives strictes en matière de stop (c'est-à-dire l'échec de la pénétration de la ligne zéro ou la violation de la ligne de déclenchement) doivent rester en vigueur.

2. Le signal le plus important se produit lorsque le KO diverge de l'action sous-jacente, en particulier lors de nouveaux sommets ou de nouveaux creux en territoire de surachat/survente. Par exemple, lorsqu'un titre atteint un nouveau sommet ou un nouveau plancher pour un cycle et que le KO ne parvient pas à le confirmer, la tendance peut être en train de perdre son élan et de s'achever.

3. Si le cours est dans une tendance haussière (c'est-à-dire au-dessus d'une moyenne mobile exponentielle de 89 jours), achetez lorsque le KO tombe à des niveaux inhabituellement bas sous zéro, se retourne vers le haut et franchit sa ligne de déclenchement. Si le prix est dans une tendance baissière (c'est-à-dire en dessous d'une moyenne mobile exponentielle de 89 jours), vendez lorsque le KO atteint des niveaux inhabituellement élevés au-dessus de zéro, se retourne vers le bas et franchit sa ligne de déclenchement.

Si le KO fonctionne bien pour synchroniser les transactions dans le sens de la tendance, il est moins efficace contre la tendance. Cela peut créer des problèmes pour le trader qui essaie de "scalper" une transaction contre la tendance dominante. Cependant, lorsque le KO est utilisé en conjonction avec d'autres indicateurs techniques, de meilleurs résultats peuvent être obtenus. Le %R de William est recommandé pour confirmer une condition de surachat/survente des prix et le MACD de Gerald Appel est recommandé pour confirmer la direction à court terme des prix.

Conseil

Stephen Klinger suggère la formule suivante pour visualiser le flux cumulatif d'argent entrant et sortant d'un titre :

cum(kvo())

Tracez la moyenne mobile à 13 périodes de la formule comme ligne de déclenchement des transactions d'achat et de vente.

source codenya untuk trade station

Type : Fonction, Nom : VForce

Vars : TSum(0), Trend(0), DM(0), CM(0) ;

TSum = High + Low + Close ;

IF TSum > TSum[1] Then

Trend = 1

Else

Trend = -1 ;

IF Trend = Trend[1] Then

CM = CM + Plage

Else

CM = Plage + Plage[1] ;

IF CM 0 Then

VForce = Volume * AbsValue(2 * (DM/CM) -1) * Trend * 100 ;

Type : Fonction, Nom : KVO

Entrées :

FastX(Numérique),

SlowX(Numérique) ; Vars :

FXAvg(0),

SXAvg(0) ;

FXAvg = XMoyenne(VForce, FastX) ;

SXAvg = XMoyenne(VForce, SlowX) ;

KVO = FXAvg - SXAvg ;

Type : Indicateur, Nom : Klinger Volume Oscillator

Entrées :

FastX(34),

SlowX(55),

TrigLen(13),

Smooth(1) ;

Vars :

Trigger(0);Trigger = XAverage(KVO(FastX, SlowX), TrigLen);IF Smooth <= 1 Then Begin

Plot1(KVO(FastX, SlowX), "KVO") ;

Plot2(Trigger, "KVO Trigger") ;

End Else BeginPlot1(Summation(KVO(FastX, SlowX), Smooth), "KVO") ;

Plot2(Summation(Trigger, Smooth), "KVO Trigger") ;

Fin ;

Plot3(0, "Zero") ;

IF Plot1 passe au-dessus de Plot2 OR Plot1 passe au-dessous de Plot2 OR

Le tracé 2 passe au-dessus du tracé 3 ou le tracé 2 passe en dessous du tracé 3, alors

Alerte = Vrai ;

quelqu'un voudrait-il m'aider à convertir ce codage en Mql4 ?

merci