¿Cómo codificar? - página 245

 

¿No es un poco ineficiente publicar todas las preguntas de programación en el mismo enlace?

 

¿Ordenar un pedido duplicado?

int start()

{

int ticket,expiración,rp;

double punto,bd;

point=MarketInfo(Symbol(),MODE_POINT);

expiración=CurTime()+PERIOD_D1*60;

rp=100;

bd=Bid;

ticket=OrderSend(Symbol(),OP_SELLSTOP,1.0,bd-rp*1*point,0,0,0, "algún comentario1",1,expiración,Verde);

ticket=OrderSend(Symbol(),OP_SELLSTOP,1.0,bd-rp*2*point,0,0,0, "algún comentario2",1,expiración,Verde);

ticket=OrderSend(Symbol(),OP_SELLSTOP,1.0,bd-rp*3*point,0,0,0, "algún comentario3",1,expiración,Verde);

ticket=OrderSend(Symbol(),OP_SELLSTOP,1.0,bd-rp*4*point,0,0,0, "algún comentario4",1,expiración,Verde);

ticket=OrderSend(Symbol(),OP_SELLSTOP,1.0,bd-rp*5*point,0,0,0, "algún comentario5",1,expiración,Verde);

ticket=OrderSend(Symbol(),OP_SELLSTOP,1.0,bd-rp*6*point,0,0,0, "algún comentario6",1,expiración,Verde);

}

Quiero abrir sólo seis órdenes pendientes. Me pueden ayudar pls. ¡¡¡Muchas gracias!!!

 
YenTrader2:
¿No es un poco ineficiente publicar todas las preguntas de programación en el mismo enlace?

¡Tan ineficiente como puede ser!

 

Sr. Gurú de los Coders, ¿puede ayudarme a crear un ea?

codersguru:
jdun,

La forma más fácil de invertir el código (vender a comprar y comprar a vender) es cambiando:

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

La función de este ea es cerrar todas mis posiciones abiertas y órdenes pendientes que no se ejecutan a una hora fija de tiempo. El ea debe funcionar en una plataforma de comercio metatrader4. Las especificaciones son las siguientes

1) al inicio de la hora 16:00 (hora de la plataforma de comercio interbankfx)

2) cerrar la primera posición abierta

3) cerrar la siguiente posición abierta

4) hasta que todas las posiciones abiertas estén cerradas, pasar a

5) cerrar la primera orden pendiente

6) cerrar la siguiente orden pendiente

7) hasta que se cierren todas las órdenes pendientes

8) terminar

Gracias

 

Añadir ATR a un código existente

Necesito saber cómo añadir ATR SL, TP, TS a un código existente. Cualquier ayuda será apreciada.

 
EddieRoyals:
Sólo necesito saber cómo añadir ATR SL, TP, TS a un código existente. Cualquier ayuda será apreciada.

¿dónde está el código existente?.

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

para añadir un valor atr primero se toma un

digamos doble b = iATR(Symbol(),0,5,1) asegurándose de que el valor que devuelve se multiplica por el Punto del corredor así que avanzando en nuestro escenario hipotético sería

b = punto * iATR(Symbol(),0,3,1);

hasta aquí todo bien desde aquí puedes hacer lo que quieras una forma sería multiplicarlo por otro umbral digamos por ejemplo 5

así que el resultado final

b = 5 * punto * iATR(Symbol(),0,3,1);

ahora juegas con eso

-guyver

 

Modificación del indicador

HI,

podría alguien por favor ayudarme y modificar este indicador para comprobar también el alto y el bajo de acuerdo con la barra anterior. Si la vela actual tiene HH y HL y el valor del histograma es < 50 entonces la barra del histograma es verde, si la vela actual tiene LH y LL y el valor del histograma es también < 50 entonces la barra del histograma es roja. Cualquier otro resultado debe trazar una barra de histograma gris.

Gracias de antemano por cualquier ayuda.

Archivos adjuntos:
 

Muchas gracias Guyver. Lo intentaré en algún momento de hoy. Se agradece mucho.

 
kolesar:
HI,

podría alguien por favor ayudarme y modificar este indicador para comprobar también alta y baja de acuerdo con la barra anterior. Si la vela actual tiene HH y HL y el valor del histograma es < 50 entonces la barra del histograma es verde, si la vela actual tiene LH y LL y el valor del histograma es también < 50 entonces la barra del histograma es roja. Cualquier otro resultado debe trazar una barra de histograma gris.

¡Gracias de antemano por cualquier ayuda!

nada. no hay respuesta, no hay nada.

¿tal vez esto ayude?

 

Añadir stoploss

Podría alguien decirme cómo añadir stoploss para el siguiente código.

Gracias.

#define MAGIC 20090101

extern double Lotes = 0.2;

extern double OpenPrice = 92.50;

extern double ClosePrice = 92.55;

extern bool gaku = 0;

int CalcularOrden Actual()

{ int pos=0;

for(int i=0; i < OrdersTotal(); i++)

{ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;

if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC)

{

if(OrderType() == OP_BUY || OrderType() == OP_BUYLIMIT || OrderType() == OP_BUYSTOP) pos++;

if(OrderType() == OP_SELL || OrderType() == OP_SELLLIMIT | OrderType() == OP_SELLSTOP) pos--;

}

}

return(pos);}

int inicio()

{

if(IsTradeAllowed() == false | CalculateCurrentOrders() != 0) return(0);

if(OpenPrice < ClosePrice && gaku == 0) OrderSend(Symbol(),OP_BUYLIMIT,Lots,OpenPrice,0,0,ClosePrice,"",MAGIC,0,Blue);

else if(OpenPrice > ClosePrice && gaku == 0) OrderSend(Symbol(),OP_SELLLIMIT,Lots,OpenPrice,0,0,ClosePrice,"",MAGIC,0,Red);

else if(OpenPrice < ClosePrice && gaku != 0) {OrderSend(Symbol(),OP_BUYSTOP,Lots,OpenPrice,0,0,ClosePrice,"",MAGIC,0,Blue);

}

else if(OpenPrice > ClosePrice && gaku != 0) {OrderSend(Symbol(),OP_SELLSTOP,Lots,OpenPrice,0,0,ClosePrice,"",MAGIC,0,Red);

}

return(0);

}

Razón de la queja: