Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ho avuto acquisti e vendite.
Questo backtesting ha dato compravendite o solo una delle due? Con me ho ottenuto solo acquisti (o solo vendite quando ho cambiato il codice). Non ho visto nulla che mostri un errore.
questo RSIFilter_v1... Non lo so...
il codice che mostri qui deve farlo...
Ecco quello che ho fatto... vedi allegati.
Quindi questo va bene?
double Sg=iCustom(NULL,0, "RSIFilter_v1",5,5,0,1);
if ( Sg>0) Order = SIGNAL_BUY;
se (Sg<0) Ordine = SIGNAL_SELL;Deve essere al 90% di qualità di modellazione, non so perché non si vede.
Penso che sia dovuto agli errori non corrispondenti. Backtester da alcune versioni ha questo problema. Ho sentito che è a causa di cattivi dati.
FerruFx
errore di abbinamento booleano
Ciao a tutti, ho questo errore e non capisco come risolverlo, penso che sia un problema di corrispondenza di diversi tipi di variabili
Ecco lo snippet del codice
doppio
BuyCondition,
SellCondition,
StopLong,
StopVendita;
gli indicatori sono
doppio indicatore1,
indicatore2
indicatore 3; (ma è int)
quindi voglio queste condizioni
StopLong = ((SellValueCurrent !=0 && SellValueCurrent2 !=0) || (TrendEnvDown != EMPTY_VALUE));
StopSell = ((BuyValueCurrent !=0 && BuyValueCurrent2 !=0) || (TrendEnvUp != EMPTY_VALUE));quindi perché a volte non ho 0 quando ho bisogno di 1 e a volte ho entrambi1 quando o uno di loro dovrebbe bhe 1? questo ora per me non hanno senso a tutti perché è sbagliato? per favore aiutatemi!!!
p.s. sellvalue e buyvalue sono doppi
bisogno di più codice per risolvere questo...
se volete, pubblicate il vostro mq4
Ciao a tutti, ho questo errore e non capisco come risolverlo, penso che sia un problema di abbinamento di diversi tipi di variabili
ecco il frammento di codice
doppio
BuyCondition,
SellCondition,
StopLong,
StopVendita;
gli indicatori sono
doppio indicatore1,
indicatore2
indicatore 3; (ma è int)
quindi voglio queste condizioni
StopLong = ((SellValueCurrent !=0 && SellValueCurrent2 !=0) || (TrendEnvDown != EMPTY_VALUE));
StopSell = ((BuyValueCurrent !=0 && BuyValueCurrent2 !=0) || (TrendEnvUp != EMPTY_VALUE));quindi perché a volte non ho 0 quando ho bisogno di 1 e a volte ho entrambi1 quando o uno di loro dovrebbe bhe 1? questo ora per me non ha senso a tutti perché è sbagliato? per favore aiutatemi!!!
p.s. sellvalue e buyvalue sono doppiQualcosa va storto. Il conto demo è stato cancellato completamente.
Ecco una piccola parte del log dell'esperto, con centinaia di quei "prezzi non validi per la funzione OrderClose":
GBPJPY a 209.23 sl: 212.23 tp: 208.23 ok
10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: prezzo non valido 2.02750000
per la funzione OrderClose
10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: prezzo non valido 1.55750000
per la funzione OrderClose
10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: chiudere #11685361 vendere
0.10 GBPCHF a 2.0270 sl: 2.0570 tp: 2.0170 al prezzo 2.0275
10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: prezzo non valido 1.03350000
per la funzione OrderClose
10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: prezzo non valido 1.55740000
per la funzione OrderClose
Questa è la parte nell'ea per la funzione OrderClose,
Non vedo cosa c'è di sbagliato in esso, forse qualcuno può aiutare?
//---------------------
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();
se (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);
}
}
}
}
//--------------------Forse hai ricevuto nuovi prezzi dal broker, prova ad usare la funzione RefreshRates prima di OrderClose se ottieni un errore.
Errore OrderClose
Qualcosa va storto. Il conto demo è stato completamente spazzato via.
Ecco una piccola parte del log dell'esperto, con centinaia di quei "prezzi non validi per la funzione OrderClose":
GBPJPY a 209.23 sl: 212.23 tp: 208.23 ok
10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: prezzo non valido 2.02750000
per la funzione OrderClose
10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: prezzo non valido 1.55750000
per la funzione OrderClose
10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: chiudere #11685361 vendere
0.10 GBPCHF a 2.0270 sl: 2.0570 tp: 2.0170 al prezzo 2.0275
10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: prezzo non valido 1.03350000
per la funzione OrderClose
10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: prezzo non valido 1.55740000
per la funzione OrderClose
Questa è la parte nell'ea per la funzione OrderClose,
Non vedo cosa c'è di sbagliato in esso, forse qualcuno può aiutare?
//---------------------
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();
se (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 compilazione non dà un errore.
ho bisogno di più codice per risolvere questo problema... se vuoi, pubblica il tuo mq4
No, non voglio pubblicare tutto, ma penso che sia un problema con la corrispondenza dei tipi di variabili che cercherò di spiegare meglio
indicatore1 e 2 sono doppi giusto
quindi ho buyvaluecurrent = icustom(indicator1 etc etc);
buyvaluecurrent2 = icustom(indicator2 etc etc);
sellvaluecurrent = icustom(indicator1 etc etc); //double giusto?
trenendvup =icustom (indicator3 etc etc) ; //int
e così via
quindi buycondition= ((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup != Empty_Value);
questa dichiarazione funziona solo a volte e potrebbe anche essere un problema, quindi la mia domanda è perché? voglio che buycondition restituisca 1 o 0 non importa di quale tipo sia bool o double
Forse hai ricevuto nuovi prezzi dal broker, prova a usare la funzione RefreshRates prima di OrderClose se ottieni un errore.
Sì, grazie!
a seconda di ciò che gli indicatori iCustom stanno inviando...
double buyvaluecurrent = iCustom(indicator1);
doppio buyvaluecurrent2 = iCustom(indicatore2);
double sellvaluecurrent = iCustom(indicator1);
int trenendvup = iCustom(indicator3);
quindi...
if((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup !=0)) {buycondition=0;}
if((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup !=1)) {buycondition=1;}
non puoi mettere un bool nella tua buycondition solo usando "&&" e alcune condizioni, usa la funzione if()...
spero che questo aiuti, altrimenti è un piccolo passo avanti
No, non voglio pubblicare tutto, ma penso che sia un problema con la corrispondenza dei tipi di variabili che cercherò di spiegare meglio
indicator1 e 2 sono doppi a destra
quindi ho buyvaluecurrent = icustom(indicator1 etc etc);
buyvaluecurrent2 = icustom(indicator2 etc etc);
sellvaluecurrent = icustom(indicator1 etc etc); //double giusto?
trenendvup =icustom (indicator3 etc etc) ; //int
e così via
quindi buycondition= ((buyvaluecurrent !=0 && buyvaluecurrent2 !=0) && (trendenvup != Empty_Value);
Questa affermazione funziona solo a volte e potrebbe anche essere un problema, quindi la mia domanda è: perché? Voglio che buycondition restituisca 1 o 0 non importa di quale tipo sia bool o double