Ayuda a la codificación - página 546

 

Podría alguien cambiar el ea adjunto en un script. Me gustaría utilizarlo en los gráficos fuera de línea. Muchas gracias.

 
Jeeves:
Podría alguien cambiar el ea adjunto en un script. Me gustaría usarlo en gráficos offline. Muchas gracias.

Jeeves

Eso significa que se ejecutará sólo en un tick (en el nuevo metatrader 4 los scripts se ejecutan sólo una vez - cuando los sueltas en el gráfico, y luego se descargan de la memoria)

_____________

PD: si no funciona como EA, las posibilidades de que funcione como script en un gráfico offline son escasas

 

Hola chico. Funciona muy bien como EA, pero me gustaría que funcionara en el gráfico fuera de línea. Abrir sólo una vez no es un problema, yo comercio durante períodos razonables y las nuevas operaciones no son tan frecuentes. Si pudieras hacer el script (Mejor aún que funcione como un ea) te lo agradecería.

Cuídate.

 
Jeeves:
Hola chico. Funciona muy bien como EA, pero me gustaría que funcionara en el gráfico fuera de línea. Abrir sólo una vez no es un problema, yo comercio durante períodos razonables y las nuevas operaciones no son tan frecuentes. Si pudieras hacer el script (mejor aún que funcione como un ea) te lo agradecería. Cuídate.

Jeeves

¿Estoy entendiendo correctamente que por alguna razón el EA no funciona en el gráfico fuera de línea?

 

Afirmativo

 

Por favor, arreglen eso porque repintan:

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 MediumBlue

#property indicator_color2 Red

#property indicator_width1 1

#property indicator_width2 1

string Gs_dummy_76;

double Gd_unused_84;

bool Gi_92 = false;

string Gs_dummy_96;

string Gs_dummy_104;

string Gs_112;

int G_bars_120 = 0;

double G_ibuf_124[];

double G_ibuf_128[];

double Gd_132;

double Gd_140;

double Gd_148;

double G_ima_156;

double G_ima_164;

double G_ima_172;

double G_ima_180;

double G_ima_188;

double G_ima_196;

double G_ima_204;

double G_ima_212;

double G_ima_220;

double Gda_unused_228[];

double Gda_unused_232[];

double Gda_unused_236[];

extern int MAPeriod1 = 1;

int Gi_244 = -10;

int G_ma_method_248 = MODE_SMMA;

extern int MAPeriod2 = 1;

int Gi_256 = -2;

int G_ma_method_260 = MODE_SMMA;

extern int MAPeriod3 = 1;

int Gi_268 = 1;

int G_ma_method_272 = MODE_SMMA;

extern int SoundAlert = 1;

int init() {

SetIndexStyle(0, DRAW_ARROW, EMPTY);

SetIndexArrow(0, 233);

SetIndexBuffer(0, G_ibuf_124);

SetIndexStyle(1, DRAW_ARROW, EMPTY);

SetIndexArrow(1, 234);

SetIndexBuffer(1, G_ibuf_128);

return (0);

}

void deinit() {

ObjectsDeleteAll();

}

void f0_0() {

int Lia_unused_184[12][1000];

double Lda_unused_188[12][1000];

int Lia_unused_192[1000];

double Lda_unused_196[1000];

bool Lba_unused_204[12];

HideTestIndicators(TRUE);

double icci_0 = iCCI(Symbol(), PERIOD_M1, 80, PRICE_OPEN, 0);

double iwpr_8 = iWPR(Symbol(), PERIOD_M1, 14, 0);

double iforce_16 = iForce(Symbol(), PERIOD_M5, 13, MODE_SMA, PRICE_OPEN, 0);

double ibands_24 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_OPEN, MODE_UPPER, 1);

double ibands_32 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_OPEN, MODE_BASE, 1);

double ima_40 = iMA(NULL, 0, 24, 0, MODE_SMMA, PRICE_OPEN, 0);

double ima_48 = iMA(NULL, 0, 100, 0, MODE_SMMA, PRICE_OPEN, 0);

double ima_56 = iMA(NULL, 0, 72, 0, MODE_SMMA, PRICE_OPEN, 0);

double ima_64 = iMA(NULL, 0, 365, 0, MODE_SMMA, PRICE_OPEN, 0);

double istochastic_72 = iStochastic(NULL, 0, 10, 5, 5, MODE_EMA, 0, MODE_MAIN, 0);

double imomentum_80 = iMomentum(NULL, 0, 100, PRICE_OPEN, 0);

double ibands_88 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_OPEN, MODE_LOWER, 1);

double ima_96 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_OPEN, 0);

double ima_104 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_OPEN, 0);

double iadx_112 = iADX(NULL, 0, 7, PRICE_OPEN, MODE_MAIN, 0);

double imomentum_120 = iMomentum(NULL, 0, 100, PRICE_OPEN, 0);

double ima_128 = iMA(Symbol(), PERIOD_H4, 1, 0, MODE_EMA, PRICE_OPEN, 0);

double ibands_136 = iBands(Symbol(), PERIOD_H4, 20, 2, 0, PRICE_OPEN, MODE_UPPER, 0);

HideTestIndicators(FALSE);

string Ls_unused_144 = "Signal Alert";

string Ls_unused_152 = "Short Alert";

string Ls_unused_160 = "Long Alert";

int Li_unused_172 = -1;

int Li_unused_176 = 1;

int Li_unused_180 = 0;

int Lia_unused_200[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

int Li_unused_220 = 50;

int Li_unused_224 = 50;

if (istochastic_72 >= 75.0) Gs_112 = "HIGH RISK";

else {

if (istochastic_72 <= 25.0) Gs_112 = "HIGH RISK";

else

if (istochastic_72 25.0) Gs_112 = "LOW RISK";

}

string Ls_248 = "";

int Li_unused_256 = 1;

if (Digits < 4) Gd_unused_84 = 0.01;

else Gd_unused_84 = 0.0001;

if (G_bars_120 != Bars) G_bars_120 = Bars;

double iatr_260 = iATR(Symbol(), Period(), 5, 1);

double Ld_268 = 1.45 / Period() * MathRound(iatr_260 * MathPow(7, Digits));

double Ld_276 = 2.0 * Ld_268;

Ls_248 = Ls_248

+ "\n"

+ "\n"

+ "";

}

int start() {

int Li_8;

if (Gi_92) f0_0();

int Li_12 = IndicatorCounted();

if (Li_12 < 0) return (-1);

if (Li_12 > 0) Li_12--;

int Li_0 = Bars - Li_12;

for (int index_4 = 0; index_4 <= Li_0; index_4++) {

Li_8 = index_4;

Gd_140 = 0;

Gd_148 = 0;

for (Li_8 = index_4; Li_8 <= index_4 + 9; Li_8++) Gd_148 += MathAbs(High[Li_8] - Low[Li_8]);

Gd_140 = Gd_148 / 10.0;

G_ima_156 = iMA(NULL, 0, MAPeriod1, Gi_244, G_ma_method_248, PRICE_OPEN, index_4 + 1);

G_ima_164 = iMA(NULL, 0, MAPeriod1, Gi_244, G_ma_method_248, PRICE_OPEN, index_4 + 2);

G_ima_172 = iMA(NULL, 0, MAPeriod1, Gi_244, G_ma_method_248, PRICE_OPEN, index_4 - 1);

G_ima_180 = iMA(NULL, 0, MAPeriod2, Gi_256, G_ma_method_260, PRICE_OPEN, index_4 + 1);

G_ima_188 = iMA(NULL, 0, MAPeriod2, Gi_256, G_ma_method_260, PRICE_OPEN, index_4 + 2);

G_ima_196 = iMA(NULL, 0, MAPeriod2, Gi_256, G_ma_method_260, PRICE_OPEN, index_4 - 1);

G_ima_204 = iMA(NULL, 0, MAPeriod3, Gi_268, G_ma_method_272, PRICE_OPEN, index_4 + 1);

G_ima_212 = iMA(NULL, 0, MAPeriod3, Gi_268, G_ma_method_272, PRICE_OPEN, index_4 + 2);

G_ima_220 = iMA(NULL, 0, MAPeriod3, Gi_268, G_ma_method_272, PRICE_OPEN, index_4 - 1);

if ((G_ima_156 > G_ima_204 && G_ima_164 G_ima_220 && G_ima_180 > G_ima_204) || (G_ima_156 > G_ima_204 && G_ima_180 > G_ima_204 && G_ima_188 <= G_ima_212 &&

G_ima_196 > G_ima_220)) G_ibuf_124 = Low - Gd_140 / 2.0;

if ((G_ima_156 = G_ima_212 && G_ima_172 < G_ima_220 && G_ima_180 < G_ima_204) || (G_ima_156 < G_ima_204 && G_ima_180 = G_ima_212 &&

G_ima_196 < G_ima_220)) G_ibuf_128 = High + Gd_140 / 2.0;

}

if (G_ibuf_124[0] > 2000.0 && G_ibuf_128[0] > 2000.0) Gd_132 = 0;

if (G_ibuf_124[0] == Low[0] - Gd_140 / 2.0 && Gd_132 != Time[0] && SoundAlert != 0) {

Gd_132 = Time[0];

Alert(Symbol(), " Price Cross Up @ Hour ", Hour(), " Minute ", Minute());

}

if (G_ibuf_128[0] == High[0] + Gd_140 / 2.0 && Gd_132 != Time[0] && SoundAlert != 0) {

Gd_132 = Time[0];

Alert(Symbol(), " Price Cross Down @ Hour ", Hour(), " Minute ", Minute());

}

return (0);

}

 
popej30:
Por favor, arregla eso porque repinta:

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 MediumBlue

#property indicator_color2 Red

#property indicator_width1 1

#property indicator_width2 1

string Gs_dummy_76;

double Gd_unused_84;

bool Gi_92 = false;

string Gs_dummy_96;

string Gs_dummy_104;

string Gs_112;

int G_bars_120 = 0;

double G_ibuf_124[];

double G_ibuf_128[];

double Gd_132;

double Gd_140;

double Gd_148;

double G_ima_156;

double G_ima_164;

double G_ima_172;

double G_ima_180;

double G_ima_188;

double G_ima_196;

double G_ima_204;

double G_ima_212;

double G_ima_220;

double Gda_unused_228[];

double Gda_unused_232[];

double Gda_unused_236[];

extern int MAPeriod1 = 1;

int Gi_244 = -10;

int G_ma_method_248 = MODE_SMMA;

extern int MAPeriod2 = 1;

int Gi_256 = -2;

int G_ma_method_260 = MODE_SMMA;

extern int MAPeriod3 = 1;

int Gi_268 = 1;

int G_ma_method_272 = MODE_SMMA;

extern int SoundAlert = 1;

int init() {

SetIndexStyle(0, DRAW_ARROW, EMPTY);

SetIndexArrow(0, 233);

SetIndexBuffer(0, G_ibuf_124);

SetIndexStyle(1, DRAW_ARROW, EMPTY);

SetIndexArrow(1, 234);

SetIndexBuffer(1, G_ibuf_128);

return (0);

}

void deinit() {

ObjectsDeleteAll();

}

void f0_0() {

int Lia_unused_184[12][1000];

double Lda_unused_188[12][1000];

int Lia_unused_192[1000];

double Lda_unused_196[1000];

bool Lba_unused_204[12];

HideTestIndicators(TRUE);

double icci_0 = iCCI(Symbol(), PERIOD_M1, 80, PRICE_OPEN, 0);

double iwpr_8 = iWPR(Symbol(), PERIOD_M1, 14, 0);

double iforce_16 = iForce(Symbol(), PERIOD_M5, 13, MODE_SMA, PRICE_OPEN, 0);

double ibands_24 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_OPEN, MODE_UPPER, 1);

double ibands_32 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_OPEN, MODE_BASE, 1);

double ima_40 = iMA(NULL, 0, 24, 0, MODE_SMMA, PRICE_OPEN, 0);

double ima_48 = iMA(NULL, 0, 100, 0, MODE_SMMA, PRICE_OPEN, 0);

double ima_56 = iMA(NULL, 0, 72, 0, MODE_SMMA, PRICE_OPEN, 0);

double ima_64 = iMA(NULL, 0, 365, 0, MODE_SMMA, PRICE_OPEN, 0);

double istochastic_72 = iStochastic(NULL, 0, 10, 5, 5, MODE_EMA, 0, MODE_MAIN, 0);

double imomentum_80 = iMomentum(NULL, 0, 100, PRICE_OPEN, 0);

double ibands_88 = iBands(Symbol(), PERIOD_M5, 20, 2, 0, PRICE_OPEN, MODE_LOWER, 1);

double ima_96 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_OPEN, 0);

double ima_104 = iMA(Symbol(), PERIOD_M5, 1, 0, MODE_EMA, PRICE_OPEN, 0);

double iadx_112 = iADX(NULL, 0, 7, PRICE_OPEN, MODE_MAIN, 0);

double imomentum_120 = iMomentum(NULL, 0, 100, PRICE_OPEN, 0);

double ima_128 = iMA(Symbol(), PERIOD_H4, 1, 0, MODE_EMA, PRICE_OPEN, 0);

double ibands_136 = iBands(Symbol(), PERIOD_H4, 20, 2, 0, PRICE_OPEN, MODE_UPPER, 0);

HideTestIndicators(FALSE);

string Ls_unused_144 = "Signal Alert";

string Ls_unused_152 = "Short Alert";

string Ls_unused_160 = "Long Alert";

int Li_unused_172 = -1;

int Li_unused_176 = 1;

int Li_unused_180 = 0;

int Lia_unused_200[12] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};

int Li_unused_220 = 50;

int Li_unused_224 = 50;

if (istochastic_72 >= 75.0) Gs_112 = "HIGH RISK";

else {

if (istochastic_72 <= 25.0) Gs_112 = "HIGH RISK";

else

if (istochastic_72 25.0) Gs_112 = "LOW RISK";

}

string Ls_248 = "";

int Li_unused_256 = 1;

if (Digits < 4) Gd_unused_84 = 0.01;

else Gd_unused_84 = 0.0001;

if (G_bars_120 != Bars) G_bars_120 = Bars;

double iatr_260 = iATR(Symbol(), Period(), 5, 1);

double Ld_268 = 1.45 / Period() * MathRound(iatr_260 * MathPow(7, Digits));

double Ld_276 = 2.0 * Ld_268;

Ls_248 = Ls_248

+ "\n"

+ "\n"

+ "";

}

int start() {

int Li_8;

if (Gi_92) f0_0();

int Li_12 = IndicatorCounted();

if (Li_12 < 0) return (-1);

if (Li_12 > 0) Li_12--;

int Li_0 = Bars - Li_12;

for (int index_4 = 0; index_4 <= Li_0; index_4++) {

Li_8 = index_4;

Gd_140 = 0;

Gd_148 = 0;

for (Li_8 = index_4; Li_8 <= index_4 + 9; Li_8++) Gd_148 += MathAbs(High[Li_8] - Low[Li_8]);

Gd_140 = Gd_148 / 10.0;

G_ima_156 = iMA(NULL, 0, MAPeriod1, Gi_244, G_ma_method_248, PRICE_OPEN, index_4 + 1);

G_ima_164 = iMA(NULL, 0, MAPeriod1, Gi_244, G_ma_method_248, PRICE_OPEN, index_4 + 2);

G_ima_172 = iMA(NULL, 0, MAPeriod1, Gi_244, G_ma_method_248, PRICE_OPEN, index_4 - 1);

G_ima_180 = iMA(NULL, 0, MAPeriod2, Gi_256, G_ma_method_260, PRICE_OPEN, index_4 + 1);

G_ima_188 = iMA(NULL, 0, MAPeriod2, Gi_256, G_ma_method_260, PRICE_OPEN, index_4 + 2);

G_ima_196 = iMA(NULL, 0, MAPeriod2, Gi_256, G_ma_method_260, PRICE_OPEN, index_4 - 1);

G_ima_204 = iMA(NULL, 0, MAPeriod3, Gi_268, G_ma_method_272, PRICE_OPEN, index_4 + 1);

G_ima_212 = iMA(NULL, 0, MAPeriod3, Gi_268, G_ma_method_272, PRICE_OPEN, index_4 + 2);

G_ima_220 = iMA(NULL, 0, MAPeriod3, Gi_268, G_ma_method_272, PRICE_OPEN, index_4 - 1);

if ((G_ima_156 > G_ima_204 && G_ima_164 G_ima_220 && G_ima_180 > G_ima_204) || (G_ima_156 > G_ima_204 && G_ima_180 > G_ima_204 && G_ima_188 <= G_ima_212 &&

G_ima_196 > G_ima_220)) G_ibuf_124 = Low - Gd_140 / 2.0;

if ((G_ima_156 = G_ima_212 && G_ima_172 < G_ima_220 && G_ima_180 < G_ima_204) || (G_ima_156 < G_ima_204 && G_ima_180 = G_ima_212 &&

G_ima_196 < G_ima_220)) G_ibuf_128 = High + Gd_140 / 2.0;

}

if (G_ibuf_124[0] > 2000.0 && G_ibuf_128[0] > 2000.0) Gd_132 = 0;

if (G_ibuf_124[0] == Low[0] - Gd_140 / 2.0 && Gd_132 != Time[0] && SoundAlert != 0) {

Gd_132 = Time[0];

Alert(Symbol(), " Price Cross Up @ Hour ", Hour(), " Minute ", Minute());

}

if (G_ibuf_128[0] == High[0] + Gd_140 / 2.0 && Gd_132 != Time[0] && SoundAlert != 0) {

Gd_132 = Time[0];

Alert(Symbol(), " Price Cross Down @ Hour ", Hour(), " Minute ", Minute());

}

return (0);

}

popey30

¿podría publicar el código no descompuesto?

 

Bien, aquí tienes...

Archivos adjuntos:
menecraft.mq4  7 kb
 
popej30:
ok, aquí está ...

popej30

Eso también es código descompilado. Lo siento

 

Muéstrame Mladen dos archivos - primero no descompilar - segundo compilar. En mi opinión no descompilar es ex4, compilar - mq4