How to code? - page 101

 

I had buys and sells.

panteraschoice:
This backtesting, did it gave buys and sells or only one of them? With me i got only buys (or only sells when I changed the code). I realy have seen nothing that shows an error.
 

this RSIFilter_v1... I don't know about that...

the code you show here has to do it...

Here is what I did... see attachments.

panteraschoice:
So this is ok?

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

if ( Sg>0) Order = SIGNAL_BUY;

if (Sg<0 ) Order = SIGNAL_SELL;
 
IN10TION:
Has to be 90% modelling quality, don't know why it doesn't show.

I think it's due to the mismatched errors. Backtester since few releases has this problem. Heard that it's because of bad datas.

FerruFx

 

boolean match error

Hi all, i have this error and i don't understand how to figure out, i think it's a problem of matching different types of variables

here is the snippet of the code

double

BuyCondition,

SellCondition,

StopLong,

StopSell;

the indicators are

double indicator1,

indicator2

indicator 3; (but is int)

so i want those conditions

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

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

so why sometimes i don't have 0 when i need 1 and sometimes i have both1 when or one of them should bhe 1? this now for me make no sense at all why is wrong? please help me!!!

p.s. sellvalue and buyvalue are double

 

need more code to fix this...

if you wish, publish your mq4

payback:
Hi all, i have this error and i don't understand how to figure out, i think it's a problem of matching different types of variables

here is the snippet of the code

double

BuyCondition,

SellCondition,

StopLong,

StopSell;

the indicators are

double indicator1,

indicator2

indicator 3; (but is int)

so i want those conditions

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

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

so why sometimes i don't have 0 when i need 1 and sometimes i have both1 when or one of them should bhe 1? this now for me make no sense at all why is wrong? please help me!!!

p.s. sellvalue and buyvalue are double
 
panteraschoice:
Something goes wrong. The demo account was wiped out completely.

Here is a small part from the expert log, with hundreds of those "invalid price for OrderClose function" :

GBPJPY at 209.23 sl: 212.23 tp: 208.23 ok

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: invalid price 2.02750000

for OrderClose function

10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: invalid price 1.55750000

for OrderClose function

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: close #11685361 sell

0.10 GBPCHF at 2.0270 sl: 2.0570 tp: 2.0170 at price 2.0275

10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: invalid price 1.03350000

for OrderClose function

10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: invalid price 1.55740000

for OrderClose function

this is the part in the ea for the OrderClose,

I do not see what is wrong in it, maybe someone can help?

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

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);

}

}

}

}

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

Maybe you got new prices from broker, try to use RefreshRates function before OrderClose if you will get error.

 

OrderClose error

Something goes wrong. The demo account was wiped out completely.

Here is a small part from the expert log, with hundreds of those "invalid price for OrderClose function" :

GBPJPY at 209.23 sl: 212.23 tp: 208.23 ok

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: invalid price 2.02750000

for OrderClose function

10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: invalid price 1.55750000

for OrderClose function

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: close #11685361 sell

0.10 GBPCHF at 2.0270 sl: 2.0570 tp: 2.0170 at price 2.0275

10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: invalid price 1.03350000

for OrderClose function

10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: invalid price 1.55740000

for OrderClose function

this is the part in the ea for the OrderClose,

I do not see what is wrong in it, maybe someone can help?

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

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);

}

}

}

}

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

Compiling does not give an error.

 
IN10TION:
need more code to fix this... if you wish, publish your mq4

no i don't want to publish all but i think is a problem with the types match of variables i'll try to explain more

indicator1 e 2 are double right

so i have buyvaluecurrent = icustom(indicator1 etc etc);

buyvaluecurrent2 = icustom(indicator2 etc etc);

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

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

and so on

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

this statment works only sometimes and also could be a problem, so my question is why? i want that buycondition returns 1 or 0 no matter of what type is bool or double

 
Kalenzo:
Maybe you got new prices from broker, try to use RefreshRates function before OrderClose if you will get error.

yes, thank you!

 

depending on what the iCustom indicators are sending out...

double buyvaluecurrent = iCustom(indicator1);

double buyvaluecurrent2 = iCustom(indicator2);

double sellvaluecurrent = iCustom(indicator1);

int trenendvup = iCustom(indicator3);

so...

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

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

you can't get a bool into your buycondition only by using "&&" and some conditions, use if() function...

hope this helps, otherwise it's a little step closer

payback:
no i don't want to publish all but i think is a problem with the types match of variables i'll try to explain more

indicator1 e 2 are double right

so i have buyvaluecurrent = icustom(indicator1 etc etc);

buyvaluecurrent2 = icustom(indicator2 etc etc);

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

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

and so on

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

this statment works only sometimes and also could be a problem, so my question is why? i want that buycondition returns 1 or 0 no matter of what type is bool or double
Reason: