Comment coder ? - page 275

 
alvintran:
Non non, ce n'est pas un problème de SL/TP, je connais ce problème, j'ai dit qu'il ne fait rien, c'est que sur le compte de démonstration (exécution instantanée ou quelque chose que je ne sais pas) il fonctionne bien, mais sur le compte réel il ne fonctionne pas, pas de problème, il ne fait rien.

Cette EA a été écrite par moi, pas achetée, pas en version d'essai, pas limitée.

S'il vous plaît !

Postez les citations ici, et je suis sûr que quelqu'un va vous aider.

 
alvintran:
Non non, ce n'est pas un problème de SL/TP, je connais ce problème, j'ai dit qu'il ne fait rien, c'est que sur le compte de démonstration (exécution instantanée ou quelque chose que je ne sais pas) il fonctionne bien, mais sur le compte réel il ne fonctionne pas, pas de problème, il ne fait rien.

Cet EA est écrit par moi, pas d'achat, pas de version d'essai, pas de limitation.

S'il vous plaît !

Ok, mais postez cette EA, je peux vous aider mais j'ai besoin du code.

Merci,

Grzesiek

 

Comment obtenir un tableau à 2 dimensions dans un fichier et le récupérer dans un autre tableau dans l'EA suivant ?

Bonjour !

Quelqu'un pourrait-il m'aider et m'expliquer comment obtenir un tableau à 2 dimensions (i.e. double array[x][y] où x=100, y=30) dans un fichier et ensuite comment récupérer les nombres de ce fichier dans un tableau dans un autre EA ? 1-dimension est beaucoup plus facile !!!

J'ai trouvé cet article : Three-Dimensional Graphs - a Professional Tool of Market Analyzing - MQL4 Articles mais je ne sais pas comment lire le fichier avec les chiffres de ce fichier dans mon second EA...

De plus, j'aimerais conserver une grande précision de mes chiffres et je pensais utiliser la fonction FileWriteDouble() (en binaire).

Quelqu'un pourrait-il m'aider - j'apprécierais beaucoup !

Merci !

 
g.pociejewski:
Ok, mais postez cette EA, je peux vous aider mais j'ai besoin du code.

Santé,

Grzesiek

Merci à tous !

Comme je l'ai dit, mon EA n'a aucun problème, je connais le problème que vous avez dit, dans l'exécution du marché doit ouvrir le poing après que modifier la position (sinon il montrera l'erreur d'ordre (130)). Mais mon EA n'a pas de problème, il ne fait rien.

Je vous donne une condition avant d'ouvrir une position :

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

//Ouvrir un ordre d'achat

}

Cheers Grzesiek ! je ne peux pas partager cet EA, s'il vous plaît ! contactez-moi sur skype (duong_4sao) ou yahoo (tieuthienma88), nous aurons un disscus .

J'espère que vous pourrez m'aider. Merci !

 
alvintran:
Un grand merci à tous !

Comme je l'ai dit, mon EA n'a aucun problème, je connais le problème que vous avez dit, dans l'exécution du marché doit ouvrir le poing après que modifier la position (sinon il montrera l'erreur d'ordre (130)). Mais mon EA n'a pas de problème, il ne fait rien.

Je vous donne une condition avant d'ouvrir une position :

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

//Ouvrir un ordre d'achat

}

Cheers Grzesiek ! je ne peux pas partager cet EA, s'il vous plaît ! contactez-moi sur skype (duong_4sao) ou yahoo (tieuthienma88), nous aurons un disscus .

J'espère que vous pourrez m'aider. Merci !

Pourquoi vous demandez de l'aide ????

 

Courtiers ECN et Stop Loss

Je suis nouveau dans la programmation MQL. Merci de m'aider.

J'essaie d'avoir un stop loss avec un ordre de marché. Quelle est la meilleure façon d'y parvenir ? J'ai essayé avec ordersend mais il s'est avéré

J'ai essayé avec ordersend mais il s'avère que les courtiers ECN ne supportent pas le stop loss avec les ordres de marché.

J'ai fait des recherches et la seule information que j'ai trouvée est que nous devons d'abord avoir un ordre en attente et ensuite modifier cet ordre.

J'ai essayé et le problème est que dans de nombreux cas, l'ordre en attente est déjà exécuté avant l'ordre modifié, ce qui fait que la modification de l'ordre échoue.

Voici l'ordre de vente pour l'ordre Market :

STicket = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,0,0,null,MagicNumber,0,red) ;

Voici l'ordre modifié :

OrderSelect(SlTicket, SELECT_BY_TICKET) ;

OpenPrice = OrderOpenPrice() ;

{ double SellStopLoss = OpenPrice - (StopLoss * UsePoint) ;

bool TicketMod1 = OrderModify(SellTicket ,OrderOpenPrice() , SellStopLoss , 0,0) ;

}

Cette méthode d'arrêt fonctionne parfois et parfois, l'ordre du marqueur est déjà exécuté et la modification de l'ordre échoue.

Veuillez m'aider à réaliser un ordre stoploss pour les courtiers ECN. ! !!!

 
winston99:
Je suis nouveau dans la programmation MQL. Merci de m'aider.

J'essaie d'avoir un stop loss avec un ordre de marché. Quelle est la meilleure façon d'y parvenir ? J'ai essayé avec ordersend mais il s'est avéré

mais il s'avère que les courtiers ECN ne supportent pas le stop loss avec les ordres de marché.

J'ai fait des recherches et la seule information que j'ai trouvée est que nous devons d'abord avoir un ordre en attente et ensuite modifier cet ordre.

J'ai essayé et le problème est que dans de nombreux cas, l'ordre en attente est déjà exécuté avant l'ordre modifié, ce qui fait que la modification de l'ordre échoue.

Voici l'ordre de vente pour l'ordre Market :

STicket = OrderSend(Symbol(),OP_SELL,LotSize,Bid,0,0,0,null,MagicNumber,0,red) ;

Voici l'ordre modifié :

OrderSelect(SlTicket, SELECT_BY_TICKET) ;

OpenPrice = OrderOpenPrice() ;

{ double SellStopLoss = OpenPrice - (StopLoss * UsePoint) ;

bool TicketMod1 = OrderModify(SellTicket ,OrderOpenPrice() , SellStopLoss , 0,0) ;

}

Cette méthode d'arrêt fonctionne parfois et parfois, l'ordre du marqueur est déjà exécuté et la modification de l'ordre échoue.

Veuillez m'aider à réaliser un ordre stoploss pour les courtiers ECN ! !!!.

La seule façon d'obtenir un stoploss chez les courtiers ECN est d'envoyer un ordre sans stop et de le modifier.

J'utilise :

ticket=OrderSend(Symbol(),OP_SELL,lots,Bid, slippage,0,0,comment,magic) ;

OrderSelect(ticket,SELECT_BY_TICKET) ;

OrderModify(ticket,OrderOpenPrice(),sltpValue(Ask +StopLoss*Point, StopLoss),sltpValue(Bid- TakeProfit*Point,TakeProfit),0) ;

et je n'ai aucun problème (sltp nous donne la valeur Sl/TP).

 
g.pociejewski:
La seule façon d'obtenir un stoploss chez les courtiers ECN est d'envoyer un ordre sans stop et de le modifier.

J'utilise :

ticket=OrderSend(Symbol(),OP_SELL,lots,Bid, slippage,0,0,comment,magic) ;

OrderSelect(ticket,SELECT_BY_TICKET) ;

OrderModify(ticket,OrderOpenPrice(),sltpValue(Ask +StopLoss*Point, StopLoss),sltpValue(Bid- TakeProfit*Point,TakeProfit),0) ;

et ne pas avoir de problèmes( sltp nous donner la valeur Sl/TP).

Comment calculez-vous le slippage ?

Je passe 0 pour cela, c'est peut-être la raison pour laquelle il y a un problème.

 

aide en zig zag

Bonjour,

J'essaie d'écrire un ea basé sur le zigzag et le pitchfork.

Pour dessiner le pitchfork, j'ai besoin du prix et du temps des 4 derniers zigzags.

J'ai obtenu le prix avec ICustom()

mais je ne sais pas comment obtenir le temps.

Merci de m'aider

Merci d'avance

----------------------------------------------------------------------

Ceci est pour le prix...

int n0, n1, n2, n3, i0, i1, i2, i3 = 0 ;

double zig0, zig1, zig2, zig3 ;

while(n3<4)

{

zig3=iCustom(NULL, 0, "ZigZag", 0, i3) ;

si(zig3>0) n3+=1 ;

i3++ ;

}

while(n2<3)

{

zig2=iCustom(NULL, 0, "ZigZag", 0, i2) ;

si(zig2>0) n2+=1 ;

i2++ ;

}

while(n1<2)

{

zig1=iCustom(NULL, 0, "ZigZag", 0, i1) ;

si(zig1>0) n1+=1 ;

i1++ ;

}

while(n0<1)

{

zig0=iCustom(NULL, 0, "ZigZag", 0, i0) ;

si(zig0>0) n0+=1 ;

i0++ ;

}

...........................................

 

petit changement nécessaire pour indi

Voici le code pour les cases quotidiennes mais j'ai besoin de quelques changements - je veux avoir un écart entre la fermeture du marché de Tokyo et l'ouverture de celui de Londres.

#property indicator_chart_window

int gi_76 = 50 ;

string gs_80 = "00:00" ;

string gs_88 = "23:59" ;

Couleur externe Color_Up = Lavande ;

extern color Color_Down = Blé ;

extern color Color_Neutral = LightGray ;

bool gi_108 = VRAI ;

double gd_112 ;

int g_color_120 = Rouge ;

void init() {

Supprimez les Objets() ;

for (int l_count_0 = 0 ; l_count_0 < gi_76 ; l_count_0++) CreateObjects("PWT1" + l_count_0, g_color_120) ;

Comment("") ;

}

void start() {

int l_datetime_0 = TimeCurrent() ;

for (int l_count_4 = 0 ; l_count_4 < gi_76 ; l_count_4++) {

DrawObjects(l_datetime_0, "PWT1" + l_count_4, gs_80, gs_88) ;

for (l_datetime_0 = decDateTradeDay(l_datetime_0) ; TimeDayOfWeek(l_datetime_0) > 5 ; l_datetime_0 = decDateTradeDay(l_datetime_0)) {

}

}

}

void DrawObjects(int ai_0, string a_name_4, string as_12, string as_20) {

int l_str2time_28 = StrToTime(TimeToStr(ai_0, TIME_DATE) + " " + as_12) ;

int l_str2time_32 = StrToTime(TimeToStr(ai_0, TIME_DATE) + " " + as_20) ;

int l_shift_52 = iBarShift(NULL, 0, l_str2time_28) ;

int l_shift_56 = iBarShift(NULL, 0, l_str2time_32) ;

int l_shift_60 = iBarShift(NULL, PERIOD_D1, l_str2time_28) ;

si (iClose(NULL, PERIOD_D1, l_shift_60) - iOpen(NULL, PERIOD_D1, l_shift_60) > 0.0) gd_112 = iClose(NULL, PERIOD_D1, l_shift_60) - iOpen(NULL, PERIOD_D1, l_shift_60) ;

sinon gd_112 = iOpen(NULL, PERIOD_D1, l_shift_60) - iClose(NULL, PERIOD_D1, l_shift_60) ;

si (gd_112 < iATR(NULL, PERIOD_D1, 7, l_shift_60) / 100.0) g_color_120 = Couleur_Neutre ;

autre {

si (iOpen(NULL, PERIOD_D1, l_shift_60) > iClose(NULL, PERIOD_D1, l_shift_60)) g_color_120 = Color_Down ;

sinon

si (iClose(NULL, PERIOD_D1, l_shift_60) > iOpen(NULL, PERIOD_D1, l_shift_60)) g_color_120 = Couleur_Haut ;

}

double l_high_36 = High ;

double ld_44 = Bas ;

if (!gi_108) {

l_high_36 = 0 ;

ld_44 = 2.0 * ld_44 ;

}

ObjectSet(a_name_4, OBJPROP_TIME1, l_str2time_28) ;

ObjectSet(a_name_4, OBJPROP_PRICE1, l_high_36) ;

ObjectSet(a_name_4, OBJPROP_TIME2, l_str2time_32) ;

ObjectSet(a_name_4, OBJPROP_PRICE2, ld_44) ;

ObjectSet(a_name_4, OBJPROP_COLOR, g_color_120) ;

}

int decDateTradeDay(int ai_0) {

int li_4 = TimeYear(ai_0) ;

int li_8 = TimeMonth(ai_0) ;

int li_12 = TimeDay(ai_0) ;

int l_hour_16 = TimeHour(ai_0) ;

int l_minute_20 = TimeMinute(ai_0) ;

li_12-- ;

si (li_12 == 0) {

li_8-- ;

si (li_8 == 0) {

li_4-- ;

li_8 = 12 ;

}

if (li_8 == 1 || li_8 == 3 || li_8 == 5 || li_8 == 7 || li_8 == 8 || li_8 == 10 || li_8 == 12) li_12 = 31 ;

if (li_8 == 2) {

if (MathMod(li_4, 4) == 0.0) li_12 = 29 ;

sinon li_12 = 28 ;

}

if (li_8 == 4 || li_8 == 6 || li_8 == 9 || li_8 == 11) li_12 = 30 ;

}

return (StrToTime(li_4 + "." + li_8 + "." + li_12 + " " + l_hour_16 + " :" + l_minute_20)) ;

}

void CreateObjects(string a_name_0, color a_color_8) {

ObjectCreate(a_name_0, OBJ_RECTANGLE, 0, 0, 0, 0, 0) ;

ObjectSet(a_name_0, OBJPROP_STYLE, STYLE_SOLID) ;

ObjectSet(a_name_0, OBJPROP_COLOR, a_color_8) ;

ObjectSet(a_name_0, OBJPROP_BACK, TRUE) ;

}

void DeleteObjects() {

for (int l_count_0 = 0 ; l_count_0 < gi_76 ; l_count_0++) ObjectDelete("PWT1" + l_count_0) ;

}

void deinit() {

DeleteObjects() ;

Commentaire("") ;

}

Raison: