Comment coder ? - page 268

 

un autre problème

J'ai donc révisé la fonction Crossed avec un MA_04_1H > MA_14_1H au lieu du cross == 1 , et ainsi de suite... et cela a réglé le problème... Mais je me demandais comment je peux filtrer les transactions telles que buy,close,buy,close,buy,close,sell,close,... Cela mange l'équilibre centime par centime comme -0.17,-0.18,-0.21,-0.15, et ainsi de suite....

maintenant j'essaie d'implémenter quelque chose qui fait que si j'achète un petit lot et qu'il fait des profits, je ferme cet ordre et j'en ouvre un nouveau plus grand jusqu'à ce que le croisement se produise... mais je n'arrive pas à résoudre le problème ci-dessus...

Quelqu'un sait comment filtrer ces petites transactions inutiles ?

 

J'ai besoin de l'afl pour ce code

Bonjour ,

J'ai besoin de l'afl pour ce code

#property indicateur_separate_window

#property indicator_buffers 8

#property indicator_color1 C'est 0x66,0xB3,0xFF'.

#property indicator_color2 DodgerBlue

#property indicator_color3 C'0x00,0x67,0xCE'

#property indicator_color4 White

#property indicator_color5 C'0xFF,0x33,0x33'

#property indicateur_color6 C'0xC4,0x00,0x00'

#property indicator_color7 C'0x8C,0x00,0x00'

#propriété indicator_color8 C'est 0x82,0x24,0x00

extern int Periode = 30 ;

extern bool invert_strength = FALSE ;

extern string CurrencyPair = "" ;

extern string NOTE0 = "entrez la paire de devises en majuscules" ;

extern string NOTE1 = "comme EURUSD" ;

extern string NOTE2 = "laisser vide pour le symbole actuel" ;

extern string NOTE3 = "si vous avez un mini compte" ;

extern string NOTE4 = "ajoutez un \"m\" par exemple EURUSDm " ;

double g_ibuf_132[] ;

double g_ibuf_136[] ;

double g_ibuf_140[] ;

double g_ibuf_144[] ;

double g_ibuf_148[] ;

double g_ibuf_152[] ;

double g_ibuf_156[] ;

double g_ibuf_160[] ;

double gda_unused_164[] ;

int init() {

SetIndexBuffer(0, g_ibuf_132) ;

SetIndexBuffer(1, g_ibuf_136) ;

SetIndexBuffer(2, g_ibuf_140) ;

SetIndexBuffer(3, g_ibuf_144) ;

SetIndexBuffer(4, g_ibuf_148) ;

SetIndexBuffer(5, g_ibuf_152) ;

SetIndexBuffer(6, g_ibuf_156) ;

SetIndexBuffer(7, g_ibuf_160) ;

SetIndexStyle(0, DRAW_HISTOGRAM, EMPTY, 5, C'0x66,0xB3,0xFF') ;

SetIndexStyle(1, DRAW_HISTOGRAM, EMPTY, 5, DodgerBlue) ;

SetIndexStyle(2, DRAW_HISTOGRAM, EMPTY, 5, C'0x00,0x67,0xCE') ;

SetIndexStyle(3, DRAW_HISTOGRAM, EMPTY, 5, White) ;

SetIndexStyle(4, DRAW_HISTOGRAM, EMPTY, 5, C'0xFF,0x33,0x33') ;

SetIndexStyle(5, DRAW_HISTOGRAM, EMPTY, 5, C'0xC4,0x00,0x00') ;

SetIndexStyle(6, DRAW_HISTOGRAM, EMPTY, 5, C'0x8C,0x00,0x00') ;

SetIndexStyle(7, DRAW_HISTOGRAM, EMPTY, 5, C'0x82,0x24,0x00') ;

for (int li_0 = 0 ; li_0 < 8 ; li_0++) SetIndexLabel(li_0, NULL) ;

if (CurrencyPair == "") CurrencyPair = Symbol() ;

si(iClose(CurrencyPair, 0, 0) == 0.0) CurrencyPair = Symbol() ;

IndicatorShortName(CurrencyPair + "(" + Periode + ")") ;

retour (1) ;

}

int deinit() {

return (0) ;

}

int start() {

double ld_8 ;

int li_0 = IndicatorCounted() ;

si (li_0 < 0) retour (-1) ;

si (li_0 > 0) li_0-- ;

for (int li_4 = Bars - li_0 ; li_4 >= 0 ; li_4--) {

ld_8 = iRSI(CurrencyPair, 0, Periode, PRICE_CLOSE, li_4) ;

si (invert_strength == TRUE) ld_8 -= 2.0 * (ld_8 - 50.0) ;

si (ld_8 <= 45.0) {

si (ld_8 42.0) drawblock(0, 0, 0, 0, 5, 0, 0, 0, 0, li_4) ;

else {

if (ld_8 38.0) drawblock(0, 0, 0, 0, 0, 5, 0, 0, li_4) ;

autre {

if (ld_8 35.0) drawblock(0, 0, 0, 0, 0, 0, 5, 0, li_4) ;

else drawblock(0, 0, 0, 0, 0, 0, 0, 0, 5, li_4) ;

}

}

} else {

if (ld_8 >= 55.0) {

if (ld_8 > 55.0 && ld_8 < 57.0) drawblock(5, 0, 0, 0, 0, 0, 0, 0, 0, li_4) ;

else {

si (ld_8 >= 58.0 && ld_8 < 60.0) drawblock(0, 5, 0, 0, 0, 0, 0, 0, 0, li_4) ;

sinon drawblock(0, 0, 5, 0, 0, 0, 0, 0, 0, li_4) ;

}

} else drawblock(0, 0, 0, 5, 0, 0, 0, 0, 0, li_4) ;

}

}

return (0) ;

}

void drawblock(int ai_0, int ai_4, int ai_8, int ai_12, int ai_16, int ai_20, int ai_24, int ai_28, int ai_32) {

g_ibuf_132[ai_32] = ai_0 ;

g_ibuf_136[ai_32] = ai_4 ;

g_ibuf_140[ai_32] = ai_8 ;

g_ibuf_144[ai_32] = ai_12 ;

g_ibuf_148[ai_32] = ai_16 ;

g_ibuf_152[ai_32] = ai_20 ;

g_ibuf_156[ai_32] = ai_24 ;

g_ibuf_160[ai_32] = ai_28 ;

}

ou s'il vous plaît expliquez-moi la logique derrière cela

merci

kr

 

comment NE PAS acheter, fermer, acheter, fermer ou vendre, fermer, vendre, fermer...

s'il vous plaît... je dois vraiment savoir comment éviter ces transactions non rentables...

 

Aide urgente. Convertir un indicateur en EA (Auto Trader)

Je suis un programmeur mais débutant en programmation mql4.

J'essaie de créer un EA (auto trader) à partir d'un indicateur.

J'ai joint l'indicateur. Cet indicateur donne de bons signaux de tendance.

Je veux maintenant créer un auto trader en fonction de ces signaux de tendance.

Algorithme :

==================================================

Si le signal est à la baisse, ouvrez un ordre de vente et fermez l'ordre d'achat précédent.

Si le signal est à la hausse, ouvrez un ordre d'achat et fermez l'ordre de vente précédent.

continuer ....

==================================================

Je veux passer du trading manuel au trading automatique avec cet indicateur.

Quelqu'un peut-il m'aider ? J'ai essayé mais je n'ai pas obtenu de résultat.

Je pense que ce serait un bon auto-trading. Merci de m'aider.

Dossiers :
 

Question simple, je ne trouve pas la réponse...

Quelqu'un peut-il me dire pourquoi cela fonctionne ?

price = MarketInfo("GBPJPY",MODE_ASK) ;

et ceci ne fonctionne pas (lorsque symbol est un tableau de chaînes de caractères et que la 9ème entrée est "GBPJPY") :

price = MarketInfo(symbol[9],MODE_ASK) ;

? ?

 
TomthebombNL:
Quelqu'un peut-il me dire pourquoi cela fonctionne ?

price = MarketInfo("GBPJPY",MODE_ASK) ;

et ceci ne fonctionne pas (lorsque symbol est un tableau de chaînes de caractères et que la 9ème entrée est "GBPJPY") :

price = MarketInfo(symbol[9],MODE_ASK) ;

? ?

D'après les informations que vous avez présentées, je suis sûr à 100% que cela devrait fonctionner, en fait, je viens de faire un test rapide pour le prouver. Il doit y avoir quelque chose d'autre qui ne va pas dans votre code.

 
codersguru:
jdun,

La façon la plus simple d'inverser le code (vendre pour acheter et acheter pour vendre) est de changer :

if(signal0 < signal1 ) GlobalVariableSet("TM0",1);

if(signal0 > signal1) GlobalVariableSet("TM0",0);[/CODE]

To:

[CODE]if(signal0 > signal1 ) GlobalVariableSet("TM0",1);

if(signal0 < signal1) GlobalVariableSet("TM0",0);

sympa ! Merci pour cette info.

 

Je pense que vous n'avez probablement pas défini votre tableau comme une chaîne.

 

Si "GBPJPY" est le 9ème élément d'un tableau, son index en notation mql est 8 et non 9 (en notation mql, le 1er élément d'un tableau a l'index 0), donc dans ce cas vous devez utiliser cette forme :

price = MarketInfo(symbol[8],MODE_ASK);

Peut-être est-ce là le problème ?

TomthebombNL:
Quelqu'un peut-il me dire pourquoi cela fonctionne ?

price = MarketInfo("GBPJPY",MODE_ASK) ;

et ceci ne fonctionne pas (lorsque symbol est un tableau de chaînes de caractères et que la 9ème entrée est "GBPJPY") :

price = MarketInfo(symbol[9],MODE_ASK) ;

? ?
 

J'ai le bon numéro, mais je me suis peut-être trompé en l'expliquant, c'est la 10ème entrée et pour l'obtenir j'ai utilisé le symbole[9]. Bizarrement cela fonctionne :

high = iHigh(symbol[9], ...)

qui me donne le haut. Ma déclaration est :

string symbol[] ou devrait-elle être comme string[] symbol[] ?

Si j'essaie de l'imprimer avec Alert(symbol[9]) cela donne aussi un espace vide, un problème assez étrange... mais en tout cas merci pour vos suggestions.

Voici mon code, j'utilise le courtier alpari à 5 chiffres (l'alerte me donne zéro pour une raison quelconque) :

double high,low,price,distance, plaats ;

int i,j,ticket, waarde ;

string symbole[] ;

string zoekplaatssymbol ;

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

//| fonction d'initialisation de l'expert

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

int init()

{

//----

//----

return(0) ;

}

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

//| fonction de désinitialisation experte |

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

int deinit()

{

//----

//----

return(0) ;

}

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

//| fonction de démarrage expert |

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

int start()

{

//----

double usd=0.0 ;

double chf=0.0 ;

double eur=0.0 ;

double gbp=0.0 ;

double aud=0.0 ;

double cad=0.0 ;

double jpy=0.0 ;

double nzd=0.0 ;

symbol[21] = {"USDCHF" , "EURUSD" , "GBPUSD" , "USDJPY" , "AUDUSD" , "USDCAD" , "EURGBP" , "EURCHF" , "EURJPY" , "GBPJPY" , "GBPCHF" , "EURAUD" , "NZDUSD" , "CHFJPY" ,

"EURCAD" , "AUDCAD" , "AUDJPY" , "CADJPY" , "EURNZD" , "AUDNZD" , "NZDJPY"} ;

int total=OrdersTotal() ;

//zoekplaatssymbol = symbol[9] ;

// waarde = zoekplaats(zoekplaatssymbol) ;

price = MarketInfo(symbol[9],MODE_ASK) ;

Alerte(prix) ;

}

Raison: