Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1601 1...159415951596159715981599160016011602160316041605160616071608...1954 Nuevo comentario Tretyakov Rostyslav 2021.08.25 12:40 #16001 PapaYozh:Este va desde el índice cero, es decir, desde el principio. Estoy confundido... ¡tienes toda la razón! законопослушный гражданин 2021.08.25 17:15 #16002 PapaYozh:Este busca desde el índice cero, es decir, desde el principio. PapaYozh: Este va desde el índice cero, es decir, desde el principio. Ahh... Ahora todo tiene sentido, gracias. законопослушный гражданин 2021.08.26 12:41 #16003 Maxim Kuznetsov: for(int i=OrdersTotal()-1;i>=0;i--) { if (! OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue; double prosad=DBL_MIN; if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue; for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) { double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() ); delta /= MarketInfo(OrderSymbol(),MODE_POINT); if (delta>prosad) prosad=delta; } PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE); } escrito "a mano", sin probar, lleno de errores :-) ajústelo a sus necesidades y utilícelo por favor, dígame qué significa -"!" en su código? todavía no lo entiendo muy bien ¿o tal vez alguien más pueda explicármelo, además del autor? Maxim Kuznetsov 2021.08.26 12:49 #16004 законопослушный гражданин:por favor, dígame, ¿qué significa -"!" en su código? Todavía no lo entiendo bien. ¿o puede explicármelo alguien más que el autor? ¡! - se trata de una negación booleana, NOT if { !OrderSelect() } se traduce en "si OrderSelect NO tiene éxito" != respectivamente "NO igual" законопослушный гражданин 2021.08.26 13:11 #16005 Maxim Kuznetsov:¡! - es una negación booleana, NOT if { !OrderSelect() } se traduce como "si NO tiene éxito OrderSelect" ¡! gracias законопослушный гражданин 2021.08.26 13:31 #16006 Maxim Kuznetsov: for(int i=OrdersTotal()-1;i>=0;i--) { if (!OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue; double prosad=DBL_MIN; if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue; for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) { double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() ); delta /= MarketInfo(OrderSymbol(),MODE_POINT); if (delta>prosad) prosad=delta; } PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE); } escrito "a mano", no revisado, tiene muchos errores :-) ajústelo a sus necesidades y utilícelo Puede que haya "limpiado" el código, pero esta línea muestra una advertencia for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) posible pérdida de datos debido a la conversión de tipos ¿No puede averiguar qué es lo que está mal? Errores, fallos, preguntas Preguntas de un "tonto" Preguntas de los principiantes Maxim Kuznetsov 2021.08.26 13:37 #16007 законопослушный гражданин:Parece que he limpiado el código, pero en esta línea for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) aparece el aviso: posible pérdida de datos debido a la conversión de tipos ¿No puedo entender qué es lo que está mal? Confundí los parámetros... es un lío común cuando se escribe "sobre la marcha" directamente en el foro obviando el terminal iBarShift(OrderSymbol(),PERIOD_M1,OrderOpenTime()) debe ser законопослушный гражданин 2021.08.26 13:47 #16008 Maxim Kuznetsov:Parámetros mezclados...confusión común cuando se escribe "sobre la marcha" directamente en el foro evitando el terminal iBarShift(OrderSymbol(),PERIOD_M1,OrderOpenTime()) debe ser gracias законопослушный гражданин 2021.08.26 14:08 #16009 законопослушный гражданин:Parece que he limpiado el código, pero en esta línea for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) aparece el aviso: posible pérdida de datos debido a la conversión de tipos ¿No puedo entender qué es lo que está mal? No puedo entender lo que está mal? ¿Puedo adjuntar toda esta "cosa" a mi Asesor Experto y ejecutarlo a través del probador de la estrategia con la salida de la información en el informe de prueba? ¿funcionará? Tretyakov Rostyslav 2021.08.26 14:12 #16010 ¿Algún consejo sobre cómo afrontarlo? En el probador del historial, la apertura de un simple pedido provoca a veces un error... OrderSend(_Symbol,OP_SELL,0.5,Bid,0,0,0,NULL,0) 2021.08.26 14:56:33.375 2017.08.07 08:00:00 Trader EURUSD,H1: OrderSend error 3 ERR_INVALID_TRADE_PARAMETERS - ¿Qué es esto y qué significa? 1...159415951596159715981599160016011602160316041605160616071608...1954 Nuevo comentario
Este va desde el índice cero, es decir, desde el principio.
Este busca desde el índice cero, es decir, desde el principio.
Este va desde el índice cero, es decir, desde el principio.
Ahh... Ahora todo tiene sentido, gracias.
for(int i=OrdersTotal()-1;i>=0;i--) {
if (! OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue;
double prosad=DBL_MIN;
if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue;
for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) {
double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() );
delta /= MarketInfo(OrderSymbol(),MODE_POINT);
if (delta>prosad) prosad=delta;
}
PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE);
}
escrito "a mano", sin probar, lleno de errores :-) ajústelo a sus necesidades y utilícelo
por favor, dígame qué significa -"!" en su código?
todavía no lo entiendo muy bien
¿o tal vez alguien más pueda explicármelo, además del autor?
por favor, dígame, ¿qué significa -"!" en su código?
Todavía no lo entiendo bien.
¿o puede explicármelo alguien más que el autor?
¡! - se trata de una negación booleana, NOT
if { !OrderSelect() } se traduce en "si OrderSelect NO tiene éxito"
!= respectivamente "NO igual"
¡! - es una negación booleana, NOT
if { !OrderSelect() } se traduce como "si NO tiene éxito OrderSelect"
¡!
gracias
for(int i=OrdersTotal()-1;i>=0;i--) {
if (!OrderSelect(i,SELECT_BY_POSITON,MODE_TRADES)) continue;
double prosad=DBL_MIN;
if (OrderType()!=OP_BUY && OrderType!=OP_SELL) continue;
for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) {
double delta=( OrderType()==OP_BUY? OrderOpenPrice()-iLow(OrderSymbol(),PERIOD_M1,j) : iHigh(OrderSymbol(),PERIOD_M1,j)-OrderOpenPrice() );
delta /= MarketInfo(OrderSymbol(),MODE_POINT);
if (delta>prosad) prosad=delta;
}
PrintFormat("Максимальная просадка по ордеру %d = %d пунктов , %f денег",OrderTicket(),(int)(prosad),prosad*OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE);
}
escrito "a mano", no revisado, tiene muchos errores :-) ajústelo a sus necesidades y utilícelo
Puede que haya "limpiado" el código, pero esta línea muestra una advertencia for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--)
posible pérdida de datos debido a la conversión de tipos
¿No puede averiguar qué es lo que está mal?
Parece que he limpiado el código, pero en esta línea for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) aparece el aviso:
posible pérdida de datos debido a la conversión de tipos
¿No puedo entender qué es lo que está mal?
Confundí los parámetros... es un lío común cuando se escribe "sobre la marcha" directamente en el foro obviando el terminal
iBarShift(OrderSymbol(),PERIOD_M1,OrderOpenTime()) debe ser
Parámetros mezclados...confusión común cuando se escribe "sobre la marcha" directamente en el foro evitando el terminal
iBarShift(OrderSymbol(),PERIOD_M1,OrderOpenTime()) debe ser
gracias
Parece que he limpiado el código, pero en esta línea for(int j=iBarShift(OrderSymbol(),OrderOpenTime(),PERIOD_M1); j>=0;j--) aparece el aviso:
posible pérdida de datos debido a la conversión de tipos
¿No puedo entender qué es lo que está mal?
No puedo entender lo que está mal? ¿Puedo adjuntar toda esta "cosa" a mi Asesor Experto y ejecutarlo a través del probador de la estrategia con la salida de la información en el informe de prueba?
¿funcionará?
¿Algún consejo sobre cómo afrontarlo?
En el probador del historial, la apertura de un simple pedido provoca a veces un error...
ERR_INVALID_TRADE_PARAMETERS - ¿Qué es esto y qué significa?