¿Cómo codificar? - página 23

 
islandrock:
ese código no hace que cada operación que abre mi EA expire 12 horas desde el momento en que se abre...

El tiempo deexpiración de la orden funciona sólo en órdenes pendientes. Si OrderSend() es OP_BUY u OP_SELL, necesita cronometrar su orden dentro del código. Aquí hay un ejemplo simple.

int OrderTime;

OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,Ask+TakeProfit*Point,"timetest",16384,0,Green)

OrderTime=TimeCurrent();

int total = OrdersTotal();

for(int cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if((OrderType() <= OP_SELL) && (OrderSymbol() == Symbol()) )

{

if(OrderType()==OP_BUY && TimeCurrent()-OrderTime>(12*60)*60)

{

OrderClose(OrderTicket(),LotsOptimized(),Bid,3,Violet);

}

}

}

Wackena

 

el código no funciona bien

He utilizado esto para enviar por correo electrónico el estado de mi cuenta cada hora a mí. sin embargo, después de compilar y cargado. envió que el correo electrónico perfectamente la hora siguiente en el minuto # 59 como se supone que, a continuación, nunca envió otro de nuevo. lo que estoy haciendo mal? se ve perfecto?

¡¡no lo necesito al minuto #59 solo lo necesito cada hora!!

bool mail;

int inicio()

{

if (Minute()>=59 && !mail){

SendMail("Account Status","Account Balance is="+DoubleToStr(AccountBalance(),2)+"_Account Equity is="+DoubleToStr(AccountEquity(),2)+

"_El beneficio de la cuenta es="+DoubleToStr(AccountProfit(),2)+"_El margen de la cuenta es="+DoubleToStr(AccountMargin(),2)+

"_El margen libre de la cuenta es="+DoubleToStr(AccountFreeMargin(),2));

mail=true;

}

 

tal vez sólo hay que poner mail = false en algún momento o simplemente eliminar esta prueba en la variable mail porque por supuesto el código actual enviará sólo 1 correo.

 

¿que prueba en la variable mail?.. no lo entiendo por favor explique..

que tal si justo después de mail=true pongo

if (minute()<=58 && !mail)

mail= false;

¿crees que puede funcionar?

creo que esta mal codificado

 

Creo que puedes poner

if (minute()<=58 && mail) // cuidado no !mail sino mail

mail= false;

y eso debería ser pero fuera de tu primer if , así que no después de mail = true; sino después de }

Probablemente hay mejores formas de codificar eso pero eso debería funcionar

 

voy a probar

Gracias, lo intentaré... te lo diré en dos horas.

 

genial funciona.... o al menos lo parece

 

Necesito ayuda con esta parte del código

¿alguien puede decirme cómo escribir esto correctamente? estoy tratando de separar las operaciones de compra y venta abiertas individualmente...

es decir: si open bid > 2.

si ask abierto >2

Tengo el resto, pero no puedo codificar esa parte correctamente

Sé que es sencillo pero me estoy tirando de los pelos.

 

¿alguien?

¿alguien? wow tal vez esta fue una mala pregunta

 

if(Open[0] > 2){ //abre la oferta

//su código

}

if(Open[0]+(Ask-Bid) > 2){ //abrir ask

//su código

}

dependiendo de su broker, el backtesting de la oferta abierta puede no funcionar