¿Cómo codificar? - página 101

 

Tuve compras y ventas.

panteraschoice:
Este backtesting, ¿daba compras y ventas o sólo una de ellas? En mi caso solo he obtenido compras (o solo ventas cuando he cambiado el código). Realmente no he visto nada que muestre un error.
 

este RSIFilter_v1... No sé si eso...

el código que muestra aquí tiene que hacerlo...

Esto es lo que hice... ver archivos adjuntos.

panteraschoice:
¿Así que esto está bien?

double Sg=iCustom(NULL,0, "RSIFilter_v1",5,5,0,1);

if ( Sg>0) Order = SIGNAL_BUY;

if (Sg<0 ) Orden = SEÑAL_VENTA;
Archivos adjuntos:
 
IN10TION:
Tiene que ser un 90% de calidad de modelado, no sé por qué no se ve.

Creo que se debe a los errores de desajuste. Backtester desde hace algunas versiones tiene este problema. He oído que es debido a los malos datos.

FerruFx

 

error de coincidencia booleana

Hola a todos, tengo este error y no entiendo como resolverlo, creo que es un problema de coincidencia de diferentes tipos de variables

aquí está el fragmento de código

doble

BuyCondition,

SellCondition,

StopLong,

StopSell;

los indicadores son

doble indicador1,

indicador2

indicador 3; (pero es int)

así que quiero esas condiciones

StopLong = ((SellValueCurrent !=0 && SellValueCurrent2 !=0) || (TrendEnvDown != EMPTY_VALUE));

StopSell = ((BuyValueCurrent !=0 && BuyValueCurrent2 !=0) || (TrendEnvUp != EMPTY_VALUE));

¿por qué a veces no tengo 0 cuando necesito 1 y a veces tengo ambos1 cuando uno de ellos debería ser 1?

p.d. sellvalue y buyvalue son dobles

 

necesito más código para arreglar esto...

si quieres, publica tu mq4

payback:
Hola a todos, tengo este error y no entiendo como solucionarlo, creo que es un problema de emparejamiento de diferentes tipos de variables

aquí está el fragmento de código

doble

BuyCondition,

SellCondition,

StopLong,

StopSell;

los indicadores son

doble indicador1,

indicador2

indicador 3; (pero es int)

así que quiero esas condiciones

StopLong = ((SellValueCurrent !=0 && SellValueCurrent2 !=0) || (TrendEnvDown != EMPTY_VALUE));

StopSell = ((BuyValueCurrent !=0 && BuyValueCurrent2 !=0) || (TrendEnvUp != EMPTY_VALUE));

¡¡¡entonces por que a veces no tengo 0 cuando necesito 1 y a veces tengo ambos1 cuando o uno de ellos deberia ser el 1? esto ahora para mi no tiene ningun sentido por que esta mal? por favor ayudenme!!!

p.d. sellvalue y buyvalue son dobles
 
panteraschoice:
Algo va mal. La cuenta demo fue borrada por completo.

Aquí hay una pequeña parte del registro de expertos, con cientos de esos "precios no válidos para la función OrderClose" :

GBPJPY en 209.23 sl: 212.23 tp: 208.23 ok

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: precio no válido 2.02750000

para la función OrderClose

10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: precio no válido 1.55750000

para la función OrderClose

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: cerrar #11685361 vender

0,10 GBPCHF a 2,0270 sl: 2,0570 tp: 2,0170 al precio 2,0275

10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: precio inválido 1.03350000

para la función OrderClose

10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: precio no válido 1.55740000

para la función OrderClose

esta es la parte en el ea para el OrderClose,

No veo lo que está mal en él, tal vez alguien puede ayudar?

//---------------------

int l_ord_total_72 = OrdersTotal();

for (int l_pos_76 = 0; l_pos_76 < l_ord_total_72; l_pos_76++) {

if (OrderSelect(l_pos_76, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol() == Symbol()) {

l_cmd_80 = OrderType();

if (l_cmd_80 == OP_BUY) {

l_count_56++;

if (l_isar_48 > Close[0]) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);

}

if (l_cmd_80 == OP_SELL) {

l_count_60++;

if (l_isar_48 < Close[0]) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);

}

}

}

}

//--------------------

Tal vez tengas nuevos precios del broker, intenta usar la función RefreshRates antes de OrderClose si te da error.

 

Error de OrderClose

Algo va mal. La cuenta demo se ha borrado por completo.

Aquí hay una pequeña parte del registro de expertos, con cientos de esos "precios inválidos para la función OrderClose" :

GBPJPY a 209.23 sl: 212.23 tp: 208.23 ok

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: precio no válido 2.02750000

para la función OrderClose

10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: precio no válido 1.55750000

para la función OrderClose

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: cerrar #11685361 vender

0,10 GBPCHF a 2,0270 sl: 2,0570 tp: 2,0170 al precio 2,0275

10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: precio inválido 1.03350000

para la función OrderClose

10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: precio no válido 1.55740000

para la función OrderClose

esta es la parte en el ea para el OrderClose,

No veo lo que está mal en él, tal vez alguien puede ayudar?

//---------------------

int l_ord_total_72 = OrdersTotal();

for (int l_pos_76 = 0; l_pos_76 < l_ord_total_72; l_pos_76++) {

if (OrderSelect(l_pos_76, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol() == Symbol()) {

l_cmd_80 = OrderType();

if (l_cmd_80 == OP_BUY) {

l_count_56++;

if (l_isar_48 > Close[0]) OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);

}

if (l_cmd_80 == OP_SELL) {

l_count_60++;

if (l_isar_48 < Close[0]) OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);

}

}

}

}

//--------------------

La compilación no da error.

 
IN10TION:
necesito más código para arreglar esto... si quieres, publica tu mq4

no quiero publicar todo pero creo que es un problema con la coincidencia de tipos de variables voy a tratar de explicar más

indicator1 e 2 son dobles bien

así que tengo buyvaluecurrent = icustom(indicator1 etc etc);

buyvaluecurrent2 = icustom(indicator2 etc etc);

sellvaluecurrent = icustom(indicator1 etc etc); //doubles right?

trenendvup =icustom(indicador3 etc etc) ; //int

y así sucesivamente

entonces buycondition= ((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup != Empty_Value);

esta declaración funciona sólo a veces y también podría ser un problema, así que mi pregunta es ¿por qué? quiero que buycondition devuelva 1 o 0 no importa de qué tipo es bool o doble

 
Kalenzo:
Tal vez usted tiene nuevos precios del corredor, trate de usar la función RefreshRates antes de OrderClose si usted consigue el error.

Sí, gracias.

 

dependiendo de lo que envíen los indicadores iCustom...

double buyvaluecurrent = iCustom(indicador1);

double buyvaluecurrent2 = iCustom(indicador2);

double sellvaluecurrent = iCustom(indicador1);

int trenendvup = iCustom(indicador3);

entonces...

if((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trenendvup !=0)) {buycondition=0;}

if((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup !=1)) {buycondition=1;}

no puedes meter un bool en tu buycondition solo usando "&&" y algunas condiciones, usa la función if()...

espero que esto ayude, de lo contrario es un pequeño paso más cerca

payback:
no quiero publicar todo, pero creo que es un problema con la coincidencia de tipos de variables voy a tratar de explicar más

indicador1 e 2 son dobles derecho

así que tengo buyvaluecurrent = icustom(indicator1 etc etc);

buyvaluecurrent2 = icustom(indicator2 etc etc);

sellvaluecurrent = icustom(indicator1 etc etc); //doubles right?

trenendvup =icustom(indicador3 etc etc) ; //int

y así sucesivamente

entonces buycondition= ((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup != Empty_Value);

esta declaración funciona sólo a veces y también podría ser un problema, así que mi pregunta es ¿por qué? quiero que buycondition devuelve 1 o 0 no importa de qué tipo es bool o doble