¿Cómo codificar? - página 275

 
alvintran:
No, no, no es un problema de SL/TP, sé que el problema, me dijo que no hacer nada, es decir, en la cuenta de demostración (ejecución instantánea o algo que no sé) que funciona bien, pero en la cuenta real no funciona, no tienen ningún problema, simplemente no hacer nada.

Este EA por mí escrito, no comprar, no versión de prueba, no cualquier limitada.

Por favor, ayuda

Publique las citas aquí, y estoy seguro de que alguien le infierno.

 
alvintran:
No, no, no es un problema de SL/TP, sé que el problema, me dijo que no hacer nada, es decir, en la cuenta de demostración (ejecución instantánea o algo que no sé) que funciona bien, pero en la cuenta real no funciona, no tienen ningún problema, simplemente no hacer nada.

Este EA por mí escrito, no comprar, no la versión de prueba, no cualquier limitada.

Por favor, ayuda

Ok, pero publica este EA, puedo ayudarte pero necesito el código.

Saludos,

Grzesiek

 

Cómo llevar un array de 2 dimensiones a un archivo y luego devolverlo a otro array en el siguiente EA

¡Hola!

¿podría alguien ayudarme y explicarme cómo puedo obtener un array de 2 dimensiones (es decir, un array doble[x][y] donde x=100, y=30) dentro de un archivo y luego cómo puedo recuperar los números de este archivo en un array en otro EA? ¡1-dimensión es mucho más fácil!

He encontrado este artículo: Three-Dimensional Graphs - a Professional Tool of Market Analyzing - MQL4 Articles pero no sé cómo puedo leer el archivo con los números de este archivo en mi segundo EA...

Además, me gustaría guardar una gran precisión de mis números y estaba pensando en utilizar la función FileWriteDouble() (en binario).

Si alguien me puede ayudar, se lo agradezco mucho.

¡Gracias!

 
g.pociejewski:
Ok, pero publica este EA, puedo ayudarte pero necesito el código.

Salud,

Grzesiek

Muchas gracias a todos.

Como he dicho, mi EA no tiene ningún problema, sé que el problema que usted dijo, en la ejecución del mercado debe abrir el puño después de que modificar la posición (si no se mostrará la orden (130) de error). Pero mi EA no tiene ningún problema, simplemente no hace nada.

Te doy la condición antes de abrir una posición:

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

//Abrir orden de compra

}

Gracias Grzesiek ! no puedo compartir este EA, por favor ! contáctame en skype (duong_4sao) o yahoo (tieuthienma88), tendremos una discusión .

Espero que me puedas ayudar. Gracias.

 
alvintran:
Muchas gracias a todos.

Como dije, mi EA no tiene ningún problema, sé que el problema que usted dijo, en la ejecución del mercado debe abrir el puño después de que modificar la posición (si no se mostrará la orden (130) de error). Pero mi EA no tiene ningún problema, simplemente no hace nada.

Te doy la condición antes de abrir una posición:

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

//Abrir orden de compra

}

Gracias Grzesiek ! no puedo compartir este EA, por favor ! contáctame en skype (duong_4sao) o yahoo (tieuthienma88), tendremos una discusión .

Espero que me puedan ayudar. Gracias.

Por qué usted está pidiendo ayuda????

 

Brokers ECN y Stop Loss

Soy nuevo en la programación de MQL. Por favor, ayúdenme.

Estoy tratando de tener un stop loss con una orden de mercado. ¿Cuál es la mejor manera de lograr esto? He intentado con ordersend pero resulta que

pero resulta que los brokers ECN no soportan el stop loss con órdenes de mercado.

He buscado y la única información que he encontrado es que tenemos que tener primero una orden pendiente y luego modificar esa orden.

He probado esto y el problema es que en muchos casos la orden pendiente ya se ha ejecutado antes de la orden de modificación, por lo que la orden de modificación falla

Esta es la orden de venta para la orden de mercado:

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

Aquí se modifica la orden :

OrderSelect(SlTicket, SELECT_BY_TICKET);

OpenPrice = OrderOpenPrice();

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

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

}

Este método de stop funciona a veces y a veces la orden de marcador ya está ejecutada por lo que ordermodify falla.

¡¡¡¡Por favor, ayúdenme a conseguir una orden stoploss para corredores ECN !!!!

 
winston99:
Soy nuevo en la programación MQL. Por favor, ayúdenme.

Estoy tratando de tener un stop loss con una orden de mercado. Cuál es la mejor manera de conseguirlo. He intentado con ordersend pero resulta que

pero resulta que los brokers ECN no soportan el stop loss con órdenes de mercado.

He buscado y la única información que he encontrado es que tenemos que tener primero una orden pendiente y luego modificar esa orden.

He probado esto y el problema es que en muchos casos la orden pendiente ya se ha ejecutado antes de la orden de modificación, por lo que la orden de modificación falla

Esta es la orden de venta para la orden de mercado:

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

Aquí se modifica la orden :

OrderSelect(SlTicket, SELECT_BY_TICKET);

OpenPrice = OrderOpenPrice();

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

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

}

Este método de stop funciona a veces y a veces la orden de marcador ya está ejecutada por lo que ordermodify falla.

¡¡¡¡Por favor, ayúdenme a conseguir una orden stoploss para corredores ECN !!!!

La única forma de conseguir el stoploss en los brokers ECN es enviar la orden sin stops y modificarla.

Yo uso

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);

y no tengo ningún problema( sltp nos da el valor Sl/TP).

 
g.pociejewski:
La única forma de conseguir el stoploss en los brokers ECN es enviar la orden sin stops y modificarla.

Yo uso

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);

y no tener ningún problema( sltp nos da el valor Sl/TP).

¿Cómo se calcula el deslizamiento?

Estoy pasando 0 para que puede ser por eso que es un problema.

 

ayuda para el zig zag

Hola,

Estoy tratando de escribir un ea basado en zigzag y pitchfork.

para dibujar el pitchfork necesito el precio y el tiempo de los últimos 4 zigzag

obtengo el precio con ICustom()

pero no se como obtener el tiempo

Por favor, ayúdenme

gracias de antemano

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

esto es para el precio...

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);

if(zig3>0) n3+=1;

i3++;

}

while(n2<3)

{

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

if(zig2>0) n2+=1;

i2++;

}

while(n1<2)

{

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

if(zig1>0) n1+=1;

i1++;

}

while(n0<1)

{

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

if(zig0>0) n0+=1;

i0++;

}

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

 

necesito un pequeño cambio para indi

Este es el código para las cajas diarias, pero necesito algunos cambios, quiero tener una brecha donde el mercado de Tokio se cierra y Londres se abre, así que digamos que la caja es azul (para todo el día) y la brecha debe ser blanca

#property indicator_chart_window

int gi_76 = 50;

string gs_80 = "00:00";

string gs_88 = "23:59";

extern color Color_Up = Lavanda;

extern color Color_Down = Trigo;

extern color Color_Neutral = LightGray;

bool gi_108 = TRUE;

double gd_112;

int g_color_120 = Rojo;

void init() {

EliminarObjetos();

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

Comentario("");

}

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, cadena a_nombre_4, cadena as_12, cadena 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);

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

if (gd_112 < iATR(NULL, PERIOD_D1, 7, l_shift_60) / 100.0) g_color_120 = Color_Neutral;

si no {

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

si no

if (iClose(NULL, PERIOD_D1, l_shift_60) > iOpen(NULL, PERIOD_D1, l_shift_60)) g_color_120 = Color_Up;

}

double l_high_36 = Alto;

double ld_44 = Bajo;

if (!gi_108) {

l_alta_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 = TiempoAño(ai_0);

int li_8 = TiempoMes(ai_0);

int li_12 = TiempoDía(ai_0);

int l_hora_16 = TiempoHora(ai_0);

int l_minuto_20 = TiempoMinuto(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 |8 == 12) li_12 = 31

si (li_8 == 2) {

si (MathMod(li_4, 4) == 0,0) li_12 = 29

si no, 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 CrearObjetos(cadena a_nombre_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() {

BorrarObjetos();

Comment(");

}

Razón de la queja: