Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 429 1...422423424425426427428429430431432433434435436...1180 Nuevo comentario Всеволод 2014.01.13 17:44 #4281 Trader7777: Chicos, por favor revisen la función, tengo algunas dudas al respecto Bueno, si se está cerrando, es mejor hacer un bucle hacia atrás. [Deleted] 2014.01.13 18:40 #4282 splxgf: por lo que si hay un cierre, es mejor hacer un bucle hacia atrás. No, debería cerrarse del viejo al nuevo orden Vitalie Postolache 2014.01.13 18:47 #4283 Trader7777: no, debería cerrarse del viejo al nuevo orden Si cambias el orden, será del antiguo al nuevo. Mientras tanto, de lo nuevo a lo viejo, e incluso a través de uno a veces puede pasar. [Deleted] 2014.01.13 18:54 #4284 evillive: Si cambias el orden, será del antiguo al nuevo. Por ahora, de nuevo a viejo, e incluso a través de uno a veces puede pasar. Si hace for (int i = OrdersTotal()-1; i>0; i--) ¡se cerrará de nuevo a viejo! [Deleted] 2014.01.13 18:56 #4285 evillive: Si cambias el orden, será del antiguo al nuevo. Pero mientras tanto, de lo nuevo a lo viejo, y a veces uno tras otro, puede suceder. No entiendo, si te da pereza sugerir errores, ¿por qué imponerme una función que, según mi TS, no necesito? [Eliminado] 2014.01.13 19:23 #4286 Buenas noches... este indicador https://www.mql5.com/ru/code/9767 en el Asesor Experto será correcto? if(iCustom( NULL,0, "wave(MACD_FZR)",1,0)<Low[1] ) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "macd sample",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de compra abierta : ",OrderOpenPrice()); } else Print("Error al abrir la orden BUY : ",GetLastError()); return(0); } // comprobar la posición corta (SELL) if(iCustom( NULL, 0, "wave(MACD_FZR)",1,1)>High[1] ) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "macd sample",16384,0,Red); respuesta|borrar|editar Any rookie question, so [¡AVISO CERRADO!] Cualquier pregunta Getlasterror returns 0, why? Всеволод 2014.01.13 19:28 #4287 Trader7777: No entiendo, si te da pereza sugerir errores, ¿por qué me vas a imponer una función que no necesito según mi TS? Bueno, entonces mira tu función, por ejemplo se toma la primera orden y como se ajusta a la condición se borra... Su lugar lo ocupa el segundo orden. En el siguiente bucle se comprueba la tercera orden y se salta la segunda. Por eso señalamos que la enumeración es errónea... Si su propio orden es realmente importante, podemos decrementar la variable del bucle al borrarlo. Error al cerrar ordenes [¡AVISO CERRADO!] Cualquier pregunta [¡Archivo!] Cualquier pregunta de vlad_123 2014.01.13 19:28 #4288 Trader7777: No entiendo, si te da pereza sugerir errores, ¿por qué imponerme una función que, según mi TS, no necesito? Te dije que lo hicieras mientras. Como (actualización 3): void CloseHalfOrders(int otype) { int count = 0; double CTexisting = CountTrades(otype), nCloseOrdersCnt = NormalizeDouble(CTexisting/2,1), price; int i = 0; while (i < OrdersTotal()) { if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) { if (OrderSymbol()==Symbol() && OrderMagicNumber()==Magic && OrderType() == otype) { if (otype == OP_BUY) price = Bid; else if (otype == OP_SELL) price = Ask; else return;//работаем только с OP_BUY/OP_SELL if (count < nCloseOrdersCnt) { OrderClose(OrderTicket(),OrderLots(),price,0,Lime); count++; Sleep(1000); i = 0; continue; } else i = OrdersTotal(); } } i++; } } Всеволод 2014.01.13 19:34 #4289 O OrderClose(OrderTicket(),OrderLots(),Bid,0,Lime); i--; Всеволод 2014.01.13 19:48 #4290 if (count<n) ¿Por qué se comparan k y n con el número total de pedidos cerrados? 1...422423424425426427428429430431432433434435436...1180 Nuevo comentario
Chicos, por favor revisen la función, tengo algunas dudas al respecto
Bueno, si se está cerrando, es mejor hacer un bucle hacia atrás.
por lo que si hay un cierre, es mejor hacer un bucle hacia atrás.
No, debería cerrarse del viejo al nuevo orden
no, debería cerrarse del viejo al nuevo orden
Si cambias el orden, será del antiguo al nuevo. Mientras tanto, de lo nuevo a lo viejo, e incluso a través de uno a veces puede pasar.
Si cambias el orden, será del antiguo al nuevo. Por ahora, de nuevo a viejo, e incluso a través de uno a veces puede pasar.
Si hace for (int i = OrdersTotal()-1; i>0; i--) ¡se cerrará de nuevo a viejo!
Si cambias el orden, será del antiguo al nuevo. Pero mientras tanto, de lo nuevo a lo viejo, y a veces uno tras otro, puede suceder.
No entiendo, si te da pereza sugerir errores, ¿por qué imponerme una función que, según mi TS, no necesito?
Buenas noches...
este indicador https://www.mql5.com/ru/code/9767 en el Asesor Experto será correcto?
if(iCustom( NULL,0, "wave(MACD_FZR)",1,0)<Low[1] )
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "macd sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de compra abierta : ",OrderOpenPrice());
}
else Print("Error al abrir la orden BUY : ",GetLastError());
return(0);
}
// comprobar la posición corta (SELL)
if(iCustom( NULL, 0, "wave(MACD_FZR)",1,1)>High[1] )
{
ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "macd sample",16384,0,Red);
No entiendo, si te da pereza sugerir errores, ¿por qué me vas a imponer una función que no necesito según mi TS?
Bueno, entonces mira tu función, por ejemplo se toma la primera orden y como se ajusta a la condición se borra... Su lugar lo ocupa el segundo orden.
En el siguiente bucle se comprueba la tercera orden y se salta la segunda.
Por eso señalamos que la enumeración es errónea...
Si su propio orden es realmente importante, podemos decrementar la variable del bucle al borrarlo.
No entiendo, si te da pereza sugerir errores, ¿por qué imponerme una función que, según mi TS, no necesito?
Te dije que lo hicieras mientras. Como (actualización 3):
O
if (count<n)¿Por qué se comparan k y n con el número total de pedidos cerrados?