Aiuto per la codifica - pagina 326

 

Allarme sul cambio di direzione

Salve,

In un EA che compra, per esempio se MA10>MA20 (e vende di fronte), come posso scrivere un avviso se acquisto e MA10<MA20 (e di fronte)?

Grazie.

Jo

 
Jovager:
Ciao,

In un EA che compra, per esempio se MA10>MA20 (e vende al contrario), come posso scrivere un avviso se acquisto e MA10<MA20 (e al contrario)?

Grazie.

Jo

Prova così :

se (MA10precedenteMA20) per la prima condizione

if (MA10previous>MA20previous && MA10<MA20) per la seconda condizione

 
mladen:
Stai provando gli avvisi in un back test? Se sì, allora questa è la causa: gli avvisi non funzionano nel back test

Grazie. Lo facevano, come nella Build 509.

 
Big Be:
Grazie. Funzionavano, come nella Build 509.

:):)

Molte cose funzionavano che ora non funzionano più in questa "nuova metatrader". Prova il multi time frame in visual back test e avrai un "divertimento" per il fine settimana

 
mladen:
Sembra familiare Verificherà se esiste già

Nessuna fortuna su questo signor Mladen ...

Sei stato in grado di trovarlo?

Grazie

 
mladen:
:):):) Molte cose funzionavano che ora non funzionano più in questa "nuova metatrader". Provate il multi time frame in visual back test e avrete un "divertimento" per il weekend

Ciao Mladen

Vedo che sei uno di quei programmatori disponibili, quindi potrei chiederti se potresti fare un EA con l'indicatore aggiunto. Questo non si ridipinge e fornisce dei segnali incredibilmente buoni!

File:
 

Ciao ragazzi, pls aiutare a guardare questo codice, che cosa può essere fatto per renderlo avviso e mostrare le frecce sulla candela corrente.

Grazie in anticipo

// B83A886A5C437CCD9AC15473FD6F1788

void f0_2(string As_0) {

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) SendMail(WindowExpertName(), As_0);

}

// A8CFDE6331BD59EB2AC96F8911C4B666

void f0_1(string A_name_0, string A_text_8, string A_fontname_16, int A_fontsize_24, color A_color_28, int A_y_32, int A_x_36, int A_corner_40, int A_bool_44) {

ObjectCreate(A_name_0, OBJ_LABEL, 0, 0, 0);

ObjectSetText(A_name_0, A_text_8, A_fontsize_24, A_fontname_16, A_color_28);

ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_40);

ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_36);

ObjectSet(A_name_0, OBJPROP_YDISTANCE, A_y_32);

ObjectSet(A_name_0, OBJPROP_BACK, A_bool_44);

}

// 085FEA7ABDC5D904FE69A3081EFD7398

void f0_0(string As_0, int GetBar) {

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) {

if (sound) PlaySound("News.wav");

if (alert) Alert("Nuovo segnale " + As_0+ " @ Symbol: " +Simbolo()+" & Periodo: M "+Periodo()+" & Tempo: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));

if (email) f0_2("Nuovo segnale " + As_0+ " @ Symbol: "+Simbolo()+" & Periodo: M "+Periodo()+" & Tempo: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));

}

}

// BE8F80182E0C983916DA7338C2C1C040

int f0_3(stringa A_name_0, stringa A_name_8) {

if (ObjectFind(A_name_0) == -1) return (0);

if (ObjectFind(A_nome_8) == -1) return (0);

se (ObjectGet(A_name_0, OBJPROP_XDISTANCE) > ObjectGet(A_name_8, OBJPROP_XDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_XDISTANCE) < ObjectGet(A_name_8, OBJPROP_XDISTANCE) +

10.0) {

se (ObjectGet(A_name_0, OBJPROP_YDISTANCE) > ObjectGet(A_name_8, OBJPROP_YDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_YDISTANCE) < ObjectGet(A_name_8, OBJPROP_YDISTANCE) +

10.0) ritorna (1);

}

return (0);

}

// E4DB2306E8CC4DEB5830201DE61935CA

doppio f0_4() {

double Ld_ret_0 = 0;

for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {

if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES) == TRUE)

if (OrderSymbol() == Symbol()) Ld_ret_0 += OrderProfit();

}

return (Ld_ret_0);

}

// EA2B2676C28C0DB26D39331A336C6B92

int start() {

stringa Ls_0;

doppio iatr_20;

doppio Ld_28;

doppio Ld_36;

int TimeBar=0;

if (f0_3("x", "r4") == 1) {

alert = FALSE;

ObjectDelete("r2");

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "t4") == 1) {

suono = FALSE;

ObjectDelete("t2");

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "u4") == 1) {

email = FALSE;

ObjectDelete("u2");

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "r3") == 1) {

alert = TRUE;

f0_1("r2", "þ", "Wingdings", 14, Red, 55, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "t3") == 1) {

suono = TRUE;

f0_1("t2", "þ", "Wingdings", 14, Red, 80, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "u3") == 1) {

email = TRUE;

f0_1("u2", "þ", "Wingdings", 14, Red, 105, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

for (int index_8 = 0; index_8 < 100; index_8++) {

if (G_ibuf_108 < 1000.0) {

TimeBar=Time;

Ls_0 = "BUY";

break;

}

se (G_ibuf_112 < 1000.0) {

TimeBar=Time;

Ls_0 = "VENDERE";

break;

}

}

if (Ls_0 == "BUY" && ObjectDescription("Signal1") != "BUY") {

f0_0("BUY",TimeBar);

f0_1("Signal1", "BUY", "Wingdings 3", 30, White, 80, 32, 1, FALSE);

}

if (Ls_0 == "SELL" && ObjectDescription("Signal1") != "SELL") {

f0_0("SELL",TimeBar);

f0_1("Signal1", "SELL", "Wingdings 3", 30, White, 80, 25, 1, FALSE);

}

f0_1("r1", "Profit", "Arial", 10, Lime, 50, 80, 1, FALSE);

f0_1("Pr", DoubleToStr(f0_4(), 0), "Arial", 13, Giallo, 50, 35, 1, FALSE);

if (Time[0] == G_time_192) return (0);

G_time_192 = Tempo[0];

int Li_12 = Bars - IndicatorCounted();

se (IndicatorCounted() > 0) Li_12++;

for (int bars_16 = Bars; bars_16 > 0; bars_16--) {

se (bars_16 <= HistoriBar) {

iatr_20 = iATR(NULL, 0, 100, 0);

Ld_28 = Close - iATR(NULL, 0, PeriodIndikator, bars_16) * Fattore;

Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Fattore;

se (Ld_28 > Gd_156 && Gi_180 == 1) Gd_156 = Ld_28;

se (Ld_36 < Gd_148 && Gi_180 == 2) Gd_148 = Ld_36;

se (Gd_156 != 0,0 && Gi_180 == 1) Gd_unused_124 = Gd_156;

if (Gd_148 != 1000.0 && Gi_180 == 2) Gd_unused_132 = Gd_148;

if (Close < Gd_156 && Gi_180 == 1) {

Gi_180 = 2;

se (bars_16 < HistoriBar / 2.0) G_ibuf_112 = High + iatr_20;

Gd_156 = 0;

}

if (Close > Gd_148 && Gi_180 == 2) {

Gi_180 = 1;

se (bars_16 < HistoriBar / 2.0) G_ibuf_108 = Basso - iatr_20;

Gd_148 = 1000;

}

}

}

return (0);

}

// 52D46093050F38C27267BCE42543EF60

int deinit() {

 
wolfsch:
Ciao Mladen vedo che sei uno di quei programmatori utili quindi potrei chiederti se potresti eventualmente fare un EA con l'indicatore aggiunto. Questo non è riverniciato e fornisce segnali incredibilmente buoni!

wolfsch

Devo deluderti ma quell'indicatore sta usando T3 clean and snake indicator. Ora, T3 non ridipinge. Ma "snake" è tma centrato e ricalcola, il che rende quell'indicatore un tipo che ricalcola (ridipinge)

PS: questo è in realtà un indicatore rinominato "T3 TMA combination" che è stato poi rinominato in indicatore "uni cross". Maggiori informazioni su di esso si possono trovare qui: https: //www.mql5.com/en/forum/general

 
emmany4:
Ciao ragazzi, pls aiutare a guardare questo codice, che cosa può essere fatto per renderlo avviso e mostrare le frecce sulla candela corrente.

Grazie in anticipo

// B83A886A5C437CCD9AC15473FD6F1788

void f0_2(string As_0) {

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) SendMail(WindowExpertName(), As_0);

}

// A8CFDE6331BD59EB2AC96F8911C4B666

void f0_1(string A_name_0, string A_text_8, string A_fontname_16, int A_fontsize_24, color A_color_28, int A_y_32, int A_x_36, int A_corner_40, int A_bool_44) {

ObjectCreate(A_name_0, OBJ_LABEL, 0, 0, 0);

ObjectSetText(A_name_0, A_text_8, A_fontsize_24, A_fontname_16, A_color_28);

ObjectSet(A_name_0, OBJPROP_CORNER, A_corner_40);

ObjectSet(A_name_0, OBJPROP_XDISTANCE, A_x_36);

ObjectSet(A_name_0, OBJPROP_YDISTANCE, A_y_32);

ObjectSet(A_name_0, OBJPROP_BACK, A_bool_44);

}

// 085FEA7ABDC5D904FE69A3081EFD7398

void f0_0(string As_0, int GetBar) {

if (IsTesting() == FALSE && IsOptimization() == FALSE && IsVisualMode() == FALSE) {

if (sound) PlaySound("News.wav");

if (alert) Alert("Nuovo segnale " + As_0+ " @ Symbol: " +Simbolo()+" & Periodo: M "+Periodo()+" & Tempo: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));

if (email) f0_2("Nuovo segnale " + As_0+ " @ Symbol: "+Simbolo()+" & Periodo: M "+Periodo()+" & Tempo: "+TimeToString(GetBar,TIME_MINUTES|TIME_SECONDS));

}

}

// BE8F80182E0C983916DA7338C2C1C040

int f0_3(stringa A_name_0, stringa A_name_8) {

if (ObjectFind(A_name_0) == -1) return (0);

if (ObjectFind(A_nome_8) == -1) return (0);

se (ObjectGet(A_name_0, OBJPROP_XDISTANCE) > ObjectGet(A_name_8, OBJPROP_XDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_XDISTANCE) < ObjectGet(A_name_8, OBJPROP_XDISTANCE) +

10.0) {

se (ObjectGet(A_name_0, OBJPROP_YDISTANCE) > ObjectGet(A_name_8, OBJPROP_YDISTANCE) - 10.0 && ObjectGet(A_name_0, OBJPROP_YDISTANCE) < ObjectGet(A_name_8, OBJPROP_YDISTANCE) +

10.0) ritorna (1);

}

return (0);

}

// E4DB2306E8CC4DEB5830201DE61935CA

doppio f0_4() {

double Ld_ret_0 = 0;

for (int pos_8 = 0; pos_8 < OrdersTotal(); pos_8++) {

if (OrderSelect(pos_8, SELECT_BY_POS, MODE_TRADES) == TRUE)

if (OrderSymbol() == Symbol()) Ld_ret_0 += OrderProfit();

}

return (Ld_ret_0);

}

// EA2B2676C28C0DB26D39331A336C6B92

int start() {

stringa Ls_0;

doppio iatr_20;

doppio Ld_28;

doppio Ld_36;

int TimeBar=0;

if (f0_3("x", "r4") == 1) {

alert = FALSE;

ObjectDelete("r2");

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "t4") == 1) {

suono = FALSE;

ObjectDelete("t2");

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "u4") == 1) {

email = FALSE;

ObjectDelete("u2");

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "r3") == 1) {

alert = TRUE;

f0_1("r2", "þ", "Wingdings", 14, Red, 55, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "t3") == 1) {

suono = TRUE;

f0_1("t2", "þ", "Wingdings", 14, Red, 80, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

if (f0_3("x", "u3") == 1) {

email = TRUE;

f0_1("u2", "þ", "Wingdings", 14, Red, 105, 65, 1, FALSE);

f0_1("x", "G", "Wingdings", 25, Rosa, 160, 55, 1, FALSE);

PlaySound("Tick.wav");

G_time_192 = 0;

RefreshRates();

}

for (int index_8 = 0; index_8 < 100; index_8++) {

if (G_ibuf_108 < 1000.0) {

TimeBar=Time;

Ls_0 = "BUY";

break;

}

se (G_ibuf_112 < 1000.0) {

TimeBar=Time;

Ls_0 = "VENDERE";

break;

}

}

if (Ls_0 == "BUY" && ObjectDescription("Signal1") != "BUY") {

f0_0("BUY",TimeBar);

f0_1("Signal1", "BUY", "Wingdings 3", 30, White, 80, 32, 1, FALSE);

}

if (Ls_0 == "SELL" && ObjectDescription("Signal1") != "SELL") {

f0_0("SELL",TimeBar);

f0_1("Signal1", "SELL", "Wingdings 3", 30, White, 80, 25, 1, FALSE);

}

f0_1("r1", "Profit", "Arial", 10, Lime, 50, 80, 1, FALSE);

f0_1("Pr", DoubleToStr(f0_4(), 0), "Arial", 13, Giallo, 50, 35, 1, FALSE);

if (Time[0] == G_time_192) return (0);

G_time_192 = Tempo[0];

int Li_12 = Bars - IndicatorCounted();

se (IndicatorCounted() > 0) Li_12++;

for (int bars_16 = Bars; bars_16 > 0; bars_16--) {

se (bars_16 <= HistoriBar) {

iatr_20 = iATR(NULL, 0, 100, 0);

Ld_28 = Close - iATR(NULL, 0, PeriodIndikator, bars_16) * Fattore;

Ld_36 = Close + iATR(NULL, 0, PeriodIndikator, bars_16) * Fattore;

se (Ld_28 > Gd_156 && Gi_180 == 1) Gd_156 = Ld_28;

se (Ld_36 < Gd_148 && Gi_180 == 2) Gd_148 = Ld_36;

se (Gd_156 != 0,0 && Gi_180 == 1) Gd_unused_124 = Gd_156;

if (Gd_148 != 1000.0 && Gi_180 == 2) Gd_unused_132 = Gd_148;

if (Close < Gd_156 && Gi_180 == 1) {

Gi_180 = 2;

se (bars_16 < HistoriBar / 2.0) G_ibuf_112 = High + iatr_20;

Gd_156 = 0;

}

if (Close > Gd_148 && Gi_180 == 2) {

Gi_180 = 1;

se (bars_16 < HistoriBar / 2.0) G_ibuf_108 = Basso - iatr_20;

Gd_148 = 1000;

}

}

}

return (0);

}

// 52D46093050F38C27267BCE42543EF60

int deinit() {

Ciao Emmany4, se trovi il codice originale di quell'EA probabilmente saresti in grado di aggiungere o sistemare le frecce e gli avvisi di acquisto e vendita, ma quella versione è decompilata.

 
mrtools:
Ciao Emmany4, se trovi il codice originale di quell'EA probabilmente saresti in grado di aggiungere o sistemare le frecce e gli avvisi di acquisto e vendita, ma quella versione è decompilata.

Per quanto vedo è un codice decompilato incompleto di qualche variazione di supertendenza (quella che usa atr, non la versione cci). Nient'altro. Comunque, quel codice così com'è, non può funzionare (mancano grandi parti di esso)