¿Cómo codificar? - página 93

 

thx pero puedes explicarme por qué

BuyCondition = BuyValueCurrent1 != EMPTY_VALUE

¿por qué empty_value?

 

de todas formas no funciona y no entiendo ni averiguo por qué..

aquí están mis variables

BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1); // braintrend1 [/PHP]
BuyValueCurrent2 = iCustom(NULL,TimeFrame,IndicatorName2,NumBars,0,1); // braintrend2

and here is the statement

[PHP] BuyCondition = (BuyValueCurrent != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE);

da resultados totalmente difusos incluso cuando el indicador (Braintrend2stop y BrainTrend1Stop) son SELL

 
clarc:
Tengo un EA que abre y gestiona la posición, pero a veces el indicador da la misma señal múltiple y el EA abre cada vez que esta señal sale una nueva posición - pero no quiero una segunda o tercera y así sucesivamente posición, sólo la primera - ¿es posible que el EA compruebe la posición abierta por la base del número mágico y el par para evitar tales entradas múltiples?

Esta es la idea:

int ContarLargos()

{

int count=0;

int oficios;

int operaciones=Total de pedidos();

for(trade=0;trade<trades;trade++) {

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol() || OrderMagicNumber() != MagicNumber) continue;

if(OrderType()==OP_BUY) count++;

} //---- para

return(count);

}

int CuentaCortos()

{

int cuenta=0;

int operaciones

int operaciones=Total de órdenes();

for(trade=0;trade<trades;trade++) {

OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

if(OrderSymbol()!=Symbol() || OrderMagicNumber() != MagicNumber) continue;

if(OrderType()==OP_SELL) count++;

} //---- para

return(count);

}

Y en la función start()

if(CountLongs() == 0 && CountShorts() == 0) {

Su condición de entrada aquí

}

Espero que eso ayude.

FerruFx

 
payback:
de todas formas no funciona y no entiendo ni averiguo por qué..

aquí están mis variables

BuyValueCurrent = iCustom(NULL,TimeFrame,IndicatorName1,NumBars,0,1); // braintrend1 [/PHP]
BuyValueCurrent2 = iCustom(NULL,TimeFrame,IndicatorName2,NumBars,0,1); // braintrend2

and here is the statement

[PHP] BuyCondition = (BuyValueCurrent != EMPTY_VALUE && BuyValueCurrent2 != EMPTY_VALUE);
da resultados totalmente difusos incluso cuando el indicador (Braintrend2stop y BrainTrend1Stop) son SELL

No conozco sus indic Braintrend1 y 2, simplemente he supuesto que cuando se cumple una condición de compra, dibujan una flecha en el gráfico. En MT4, el valor del buffer por defecto es una constante llamada "EMPTY-VALUE", por lo que si no hay flecha el valor devuelto por iCustom() es esta constante, y si hay flecha el valor devuelto es el precio donde se pone la flecha.

Según he entendido, quieres comprar cuando los dos indicadores muestren una flecha, ¿no es así?

 

sí es exactamente lo que quiero hacer

 
payback:
sí es exactamente lo que quiero hacer

Así que, por favor, revisa la sintaxis de tu iCustom().

 

¿qué tengo que comprobar? tal vez me pierda algo

double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)

Bueno, por lo que supongo que si hay una señal de compra que se almacena en el búfer 0 de lo contrario está vacío y el búfer 1 tiene la señal de venta

 
payback:
¿Qué tengo que comprobar? tal vez me pierda algo
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)
bien por lo que supongo que si hay una señal de compra se almacena en el búfer 0 de lo contrario está vacío y el búfer 1 tiene la señal de venta

Postee su indic aquí, voy a mirar.

 

¡ok thx!

y por favor explique

Archivos adjuntos:
 
payback:
ok thx! y por favor explique

Abre BrainTrend1Stop.mq4.

Al principio del archivo puedes encontrar :

extern int NumBars=500;

extern int EnableAlerts=0;

extern int SignalID=0;[/PHP]This means that you have to fill those three parameters as arguments in the iCustom() call, like this:

BuyValueCurrent = iCustom(NULL,0,"BrainTrend1Stop",NumBars,EnableAlerts,SignalID,0,1); // braintrend1

[/PHP]About the buffer's number, you can see this:

#property indicator_color1 Magenta

#property indicator_color2 Aqua[/PHP]So the buffer 0 is Magenta and the buffer 1 is Aqua.

Thus if the Buy arrow's color is Aqua, the buffer's number is 1 and the iCustom call is:[PHP]BuyValueCurrent = iCustom(NULL,0,"BrainTrend1Stop",NumBars,EnableAlerts,SignalID,1,1); // braintrend1
A little lower you have:[PHP] SetIndexEmptyValue(1,0.0);

This means that the default empty value for the buffer 1 is set to 0.0; so when there is no arrow, the value returned by the iCustom() call will be 0.0.

So you should know the presence of the arrow checking its value against 0, like this (if the second indic follows the same behavior):[PHP]BuyCondition = (BuyValueCurrent > 0 && BuyValueCurrent2 > 0);

Sobre la segunda indicación, creo que deberías ser capaz de hacer el mismo análisis por ti mismo.