Wie programmiert man? - Seite 101

 

Ich hatte Käufe und Verkäufe.

panteraschoice:
Dieses Backtesting, gab es Käufe und Verkäufe oder nur eine von ihnen? Bei mir habe ich nur Käufe (oder nur Verkäufe, wenn ich den Code geändert). Ich habe wirklich nichts gesehen, dass ein Fehler zeigt.
 

dieser RSIFilter_v1... Ich weiß nicht so recht...

der Code, den Sie hier zeigen, muss es tun...

Hier ist, was ich getan habe... siehe Anhänge.

panteraschoice:
Ist dies also in Ordnung?

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

if ( Sg>0) Auftrag = SIGNAL_BUY;

if (Sg<0 ) Order = SIGNAL_SELL;
 
IN10TION:
Muss zu 90% Modellierungsqualität sein, weiß nicht, warum es nicht angezeigt wird.

Ich denke, es liegt an den nicht übereinstimmenden Fehlern. Backtester hat seit einigen Versionen dieses Problem. Ich habe gehört, dass es an den schlechten Daten liegt.

FerruFx

 

Boolescher Abgleichfehler

Hallo an alle, ich habe diesen Fehler und ich verstehe nicht, wie ich ihn beheben kann. Ich denke, es ist ein Problem beim Abgleich verschiedener Variablentypen

hier ist ein Ausschnitt des Codes

double

BuyCondition,

SellCondition,

StopLong,

StopSell;

die Indikatoren sind

double indicator1,

Indikator2

Indikator 3; (ist aber int)

Ich möchte also diese Bedingungen

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

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

also warum habe ich manchmal keine 0, wenn ich 1 brauche und manchmal habe ich beide 1, wenn einer von ihnen die 1 sein sollte? das macht für mich überhaupt keinen Sinn, warum ist das falsch? bitte helfen Sie mir!!!

p.s. Verkaufswert und Kaufwert sind doppelt

 

ich brauche mehr Code, um das zu beheben...

wenn Sie möchten, veröffentlichen Sie Ihr mq4

payback:
Hallo an alle, ich habe diesen Fehler und ich verstehe nicht, wie ich ihn beheben kann. Ich denke, es ist ein Problem beim Abgleichen verschiedener Variablentypen

Hier ist ein Ausschnitt des Codes

double

BuyCondition,

SellCondition,

StopLong,

StopSell;

die Indikatoren sind

double indicator1,

Indikator2

Indikator 3; (ist aber int)

Ich möchte also diese Bedingungen

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

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

so, warum manchmal habe ich nicht 0, wenn ich 1 brauchen und manchmal habe ich beide1, wenn oder einer von ihnen sollte bhe 1? dies jetzt für mich keinen Sinn machen überhaupt, warum ist falsch? bitte helfen Sie mir!!!

p.s. Verkaufswert und Kaufwert sind doppelt
 
panteraschoice:
Irgendetwas läuft schief. Das Demokonto wurde vollständig gelöscht.

Hier ein kleiner Ausschnitt aus dem Expertenprotokoll, mit hunderten dieser "ungültigen Preise für die OrderClose-Funktion":

GBPJPY bei 209.23 sl: 212.23 tp: 208.23 ok

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: ungültiger Preis 2.02750000

für OrderClose-Funktion

10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: Ungültiger Preis 1.55750000

für OrderClose-Funktion

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: Abschluss #11685361 Verkauf

0.10 GBPCHF zu 2.0270 sl: 2.0570 tp: 2.0170 zum Preis von 2.0275

10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: ungültiger Preis 1.03350000

für OrderClose-Funktion

10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: Ungültiger Preis 1.55740000

für OrderClose-Funktion

dies ist der Teil in der ea für die OrderClose,

Ich sehe nicht, was darin falsch ist, vielleicht kann jemand helfen?

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

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

wenn (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, Violett);

}

}

}

}

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

Vielleicht haben Sie neue Preise vom Broker erhalten. Versuchen Sie, die Funktion RefreshRates vor OrderClose zu verwenden, wenn Sie einen Fehler erhalten.

 

OrderClose-Fehler

Etwas geht schief. Das Demokonto wurde komplett gelöscht.

Hier ist ein kleiner Ausschnitt aus dem Expertenprotokoll, mit hunderten dieser "ungültigen Preise für die OrderClose-Funktion":

GBPJPY bei 209,23 sl: 212,23 tp: 208,23 ok

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: ungültiger Preis 2.02750000

für OrderClose-Funktion

10:00:04 2730_BasketVentilatorVoorProg_2 EURUSD,H1: Ungültiger Preis 1.55750000

für OrderClose-Funktion

10:00:04 2730_BasketVentilatorVoorProg_2 GBPCHF,H1: Abschluss #11685361 Verkauf

0.10 GBPCHF zu 2.0270 sl: 2.0570 tp: 2.0170 zum Preis von 2.0275

10:00:05 2730_BasketVentilatorVoorProg_2 USDCHF,H1: ungültiger Preis 1.03350000

für OrderClose-Funktion

10:00:05 2730_BasketVentilatorVoorProg_2 EURUSD,H1: Ungültiger Preis 1.55740000

für OrderClose-Funktion

dies ist der Teil in der ea für die OrderClose,

Ich sehe nicht, was darin falsch ist, vielleicht kann jemand helfen?

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

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

wenn (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, Violett);

}

}

}

}

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

Das Kompilieren führt nicht zu einem Fehler.

 
IN10TION:
Ich brauche mehr Code, um dies zu beheben... wenn Sie möchten, veröffentlichen Sie Ihr mq4

Nein, ich möchte nicht alles veröffentlichen, aber ich denke, dass es ein Problem mit der Übereinstimmung der Variablentypen gibt, ich werde versuchen, mehr zu erklären

indicator1 und 2 sind doppelt richtig

Ich habe also buyvaluecurrent = icustom(indicator1 etc etc);

kaufwertaktuell2 = icustom(indikator2 etc etc);

sellvaluecurrent = icustom(indicator1 etc etc); //doppelt richtig?

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

und so weiter

also buycondition= ((kaufwertaktuell !=0 && kaufwertaktuell2 !=0) && (trendenvup != Empty_Value);

diese anweisung funktioniert nur manchmal und könnte auch ein problem sein. meine frage ist warum? ich möchte, dass buycondition 1 oder 0 zurückgibt, egal welcher typ bool oder double ist

 
Kalenzo:
Vielleicht haben Sie neue Preise von Broker, versuchen Sie, RefreshRates Funktion vor OrderClose verwenden, wenn Sie Fehler erhalten.

Ja, vielen Dank!

 

je nachdem, was die iCustom-Indikatoren aussenden...

double buyvaluecurrent = iCustom(indicator1);

double buyvaluecurrent2 = iCustom(Indikator2);

double sellvaluecurrent = iCustom(Indikator1);

int trenendvup = iCustom(Indikator3);

also ...

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

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

man kann ein bool nicht in die buycondition einfügen, nur durch "&&" und einige Bedingungen, die if() Funktion verwenden...

ich hoffe das hilft, ansonsten ist es ein kleiner Schritt weiter

payback:
Nein, ich möchte nicht alles veröffentlichen, aber ich denke, dass es ein Problem mit der Übereinstimmung der Variablentypen gibt, ich werde versuchen, mehr zu erklären

indicator1 und 2 sind doppelt richtig

ich habe also buyvaluecurrent = icustom(indicator1 etc etc);

kaufwertaktuell2 = icustom(indikator2 etc etc);

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

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

und so weiter

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

diese Anweisung funktioniert nur manchmal und könnte auch ein Problem sein, so meine Frage ist, warum? ich möchte, dass buycondition 1 oder 0 zurückgibt, egal welcher Typ bool oder double ist