BrotherPyrus: hothand funktioniert auf dem fünfstelligen MT4, aber nicht auf einer vierstelligen Plattform. Irgendeine Idee, was dies verursacht, und irgendwelche Hinweise, wie man es beheben?
EA's müssen für 4/5 Ziffern, TP, SL, UND Slippage anpassen. Bei ECN-Brokern müssen Sie zuerst eröffnen und DANN Stops setzen.
if(iBarHour >= iOpenHour && iBarHour <= iOpenHour + iBarsToTrade && Tradeopen()==false) // Check if time is ok to trade & no trade is open
{
// if(High[2]>High[1] && Low[2]<Low[1]) // see if we have an inside barif(iHigh(hothand(), 60, 2)>iHigh(hothand(), 60, 1) && iLow(hothand(), 60, 2) < iLow(hothand(), 60, 1)) // see if we have an inside bar
{ // on the hothand pair// IB found if(iHigh(hothand(), 60, 1) > dDayOpenPrice) // IB high on hothand pair is greater than day open price bullish signal
{
int buyspread=MarketInfo(hothand(),MODE_SPREAD);
double buyentry = iHigh(hothand(), 60, 1) + 10 + buyspread; //Low of prev bar + 1 pip + spreaddouble buystop = iLow(hothand(), 60, 1) - 10; //Low of prev bar - 1 pipdouble buytpx1 = iHigh(hothand(), 60, 1)+(iHigh(hothand(), 60, 1)-iLow(hothand(), 60, 1)); //1:1 r:rdouble buytpx3 = iHigh(hothand(), 60, 1)+(iHigh(hothand(), 60, 1)-iLow(hothand(), 60, 1))*3; // 1:3 r:rOrderSend(Symbol(),OP_BUY,1 , Ask, 3, buystop, buytpx1, "DIBSBUY", Mnumber1); //Open buy orderOrderSend(Symbol(),OP_BUY,1 , Ask, 3, buystop, buytpx3, "DIBSBUY", Mnumber3);
}
if(iLow(hothand(), 60, 1) < dDayOpenPrice) // IB low on hothand pair is lower than day open price bearish signal
{
int sellspread=MarketInfo(hothand(),MODE_SPREAD);
double sellentry = iLow(hothand(), 60, 1)-10; //Low of prev bar - 1 pip double sellstop = iHigh(hothand(), 60, 1)+ 10 + sellspread; // High of prev bar + 1 pip + Spreaddouble selltpx1 = iLow(hothand(), 60, 1)-(iHigh(hothand(), 60, 1)- iLow(hothand(), 60, 1)); //1:1 r:rdouble selltpx3 = iLow(hothand(), 60, 1)-(iHigh(hothand(), 60, 1)- iLow(hothand(), 60, 1))*3; // 1:3 r:rOrderSend(Symbol(),OP_SELL,1 , Ask, 3, sellstop, selltpx1,"DIBSSELL",Mnumber1); //Open Sell OrderOrderSend(Symbol(),OP_SELL,1 , Ask, 3, sellstop, selltpx3,"DIBSSELL",Mnumber3); //Open Sell Order
}
}
}
//
}
In Ordnung ich bin zurück,
Dies ist der Teil meines Codes, in dem die Trades ausgeführt werden. Ich werde im Moment nur mit 5 Ziffern arbeiten. Die Idee hier ist ich meine hothand Funktion verwendet, um zu wählen, welches Paar am besten für den Handel für den Tag ist. Dieser Code sollte nach einem Inside Bar auf dem 1-Stunden-Chart suchen. (Die hothand Funktion gibt eine Zeichenfolge des Paares btw) Wenn es ein Innen bar findet, habe ich gerade es zu einem Flat-out kaufen oder verkaufen Handel zu Testzwecken zu öffnen. Ich bin mir nicht sicher, ob der Backtester den Handel mit mehreren Paaren von einem Chart aus handhaben kann? Ich habe die 1-Minuten-Historie für alle Paare heruntergeladen, die er verwendet. Aber es scheint nur Trades auf dem Eurusd zu öffnen, der der Chart ist, an den ich ihn angehängt habe,
WHRoeder danke, dass Sie vorbeigekommen sind und mir wieder geholfen haben. So ist der richtige Weg, um einen Handel mit einem ea zu öffnen, um es dann zurück zu gehen und füllen Sie die sl und tp, nachdem es geöffnet hat? Ich bin sicher, Sie können eine Million Dinge falsch mit diesem Code auch vor Ort.
Dies ist der Teil meines Codes, in dem die Trades ausgeführt werden. Ich werde im Moment nur mit 5 Ziffern arbeiten. Die Idee hier ist ich meine hothand Funktion verwendet, um zu wählen, welches Paar am besten für den Handel für den Tag ist. Dieser Code sollte nach einem Inside Bar auf dem 1-Stunden-Chart suchen. (Die hothand Funktion gibt eine Zeichenfolge des Paares btw) Wenn es ein Innen bar findet, habe ich gerade es zu einem Flat-out kaufen oder verkaufen Handel zu Testzwecken zu öffnen. Ich bin mir nicht sicher, ob der Backtester den Handel mit mehreren Paaren von einem Chart aus handhaben kann? Ich habe die 1-Minuten-Historie für alle Paare heruntergeladen, die er verwendet. Aber es scheint nur zu öffnen Geschäfte auf dem eurusd, die das Diagramm habe ich es angehängt ist,
Einige allgemeine Kommentare:
Sie kaufen zum Ask und verkaufen zum Bid
Wenn Ihr Broker ein ECN-Broker ist, können Sie SL und TP nicht einstellen, wenn Sie die Order platzieren (in diesem Fall setzen Sie sie auf 0), Sie müssen die Order platzieren und dann die Order ändern, um SL und TP hinzuzufügen
Überprüfen Sie immer das Ergebnis der Auftragserteilung und prüfen Sie, ob Fehler zurückgegeben werden; Sie müssen diese entsprechend behandeln
wenn Sie planen, diesen EA auf mehreren Charts einzusetzen, d.h. Orders von mehreren Charts aus zu platzieren, benötigen Sie eine Art Mutex, um Order Context Busy zu vermeiden (siehe WHRoeders Beiträge, er hat einen ausgezeichneten Mutex)
Damm WHRoeder, Sie haben Recht: "Unsere Stopps basieren auf dem Paar hothand(), aber Sie eröffnen eine Order mit Symbol()" Das habe ich nicht bemerkt. Wie dumm. Dieses Zeug wird einfach so geistig ermüdend, während man versucht, es zu lernen. Aber ja, dumm. Danke, dass Sie dieses Durcheinander durchgesprochen haben. Ich werde wahrscheinlich eine Pause einlegen und morgen mit freiem Kopf zurückkommen. Ich werde die Dinge in Ordnung bringen, auf die Sie hingewiesen haben.
Ja, das wollte ich tun, aber jetzt bekomme ich diesen Fehler
http://clip2net.com/s/144hq
Als ob es die Paarausgabe der hothand-Funktion nicht erkennt. Die Ausgabe der hothand-Funktion ist eine Zeichenkette, also verstehe ich nicht, warum es nicht funktioniert.
dazamate: Als ob es die Paarausgabe der hothand-Funktion nicht erkennen würde. Die Ausgabe der hothand-Funktion ist eine Zeichenfolge, so dass ich nicht sehen, was es nicht funktionieren wird
OrderSend(hothand(),OP_SELL,1 , Ask, 3, sellstop, selltpx1,"DIBSSELL",Mnumber1); //Open Sell Order
Ask/Bid ist der aktuelle Symbol()-Kurs, aber Sie versuchen, ein anderes Paar zu eröffnen. Falscher Preis.
Sie können keine Trades für andere Paare im Tester öffnen, IIRC
Unbekannter Symbolname USDCHF für die OrderSend-Funktion
Woher haben Sie diese Zeichenfolge? Ist der aktuelle Chart das gleiche Muster, oder USD,EUR, oder USD/EUR, oder USDEURm, oder USDEURfxf usw.
Ich schlage vor, dass Sie NUR das aktuelle Paar handeln. Wenn hothand() nicht das aktuelle Paar ist, wird nicht gehandelt. Auf diese Weise funktioniert es im Tester, Sie können den EA immer auf andere Paare setzen und so kontrollieren, welche Paare er handelt, und Sie vermeiden alle Fallstricke.
Hallo Leute, ich versuche, einen Code zu erstellen, der folgendes tut
externstring sComment4 = "Max Hours allowed before pending orders are deleted";
externint pendinglimit = 4;
// * EVERYTIME A TRADE GETS TRIGGERED
bartraded = TimeHour(TimeCurrent());
// DELETE PENDING ORDERS THAT HAVE NOT BEEN TRIGGERED WITHIN if(TimeHour(TimeCurrent()) > bartraded + pendinglimit && Tradeopen()==true) // Check to see if pending orders have expired
{
for(int tnumber = OrdersTotal()-1; tnumber >= 0 ; tnumber--) //scan through open orders
{
if (OrderSelect(tnumber, SELECT_BY_POS) &&
OrderType()==(OP_BUYSTOP||OP_SELLSTOP) && // The order selected is either a pending buy on stop order or a buy on sell orderOrderMagicNumber()==(Mnumber1||Mnumber3)) // The orders magic number is the same as the magic number used in this ea
{
OrderSelect(tnumber, SELECT_BY_POS); // Select orderOrderDelete(tnumber); // Delete it
}
}
}
Wenn ein schwebender Auftrag seit x Bars offen ist, wird er gelöscht, wenn die Baranzahl x überschritten hat.
Kann es sein, dass etwas mit meiner Logik nicht stimmt?
Hallo Daz & Co,
hothand funktioniert auf dem fünfstelligen MT4, aber nicht auf einer vierstelligen Plattform.
hothand funktioniert auf dem fünfstelligen MT4, aber nicht auf einer vierstelligen Plattform. Irgendeine Idee, was dies verursacht, und irgendwelche Hinweise, wie man es beheben?
In Ordnung ich bin zurück,
Dies ist der Teil meines Codes, in dem die Trades ausgeführt werden. Ich werde im Moment nur mit 5 Ziffern arbeiten. Die Idee hier ist ich meine hothand Funktion verwendet, um zu wählen, welches Paar am besten für den Handel für den Tag ist. Dieser Code sollte nach einem Inside Bar auf dem 1-Stunden-Chart suchen. (Die hothand Funktion gibt eine Zeichenfolge des Paares btw) Wenn es ein Innen bar findet, habe ich gerade es zu einem Flat-out kaufen oder verkaufen Handel zu Testzwecken zu öffnen. Ich bin mir nicht sicher, ob der Backtester den Handel mit mehreren Paaren von einem Chart aus handhaben kann? Ich habe die 1-Minuten-Historie für alle Paare heruntergeladen, die er verwendet. Aber es scheint nur Trades auf dem Eurusd zu öffnen, der der Chart ist, an den ich ihn angehängt habe,
WHRoeder danke, dass Sie vorbeigekommen sind und mir wieder geholfen haben. So ist der richtige Weg, um einen Handel mit einem ea zu öffnen, um es dann zurück zu gehen und füllen Sie die sl und tp, nachdem es geöffnet hat? Ich bin sicher, Sie können eine Million Dinge falsch mit diesem Code auch vor Ort.
Keine Anpassung des Schlupfes für 4/5 Ziffern. Nicht ECN-kompatibel
Testen Sie immer die Rückgabewerte, damit Sie herausfinden, WARUM es nicht funktioniert
buystop = iLow(hothand()...Ihre Stops basieren auf dem Paar hothand(), aber Sie eröffnen eine Order mit Symbol(). Wenn sie nicht identisch sind, sind die Stopps völlig falsch.In Ordnung ich bin zurück,
Dies ist der Teil meines Codes, in dem die Trades ausgeführt werden. Ich werde im Moment nur mit 5 Ziffern arbeiten. Die Idee hier ist ich meine hothand Funktion verwendet, um zu wählen, welches Paar am besten für den Handel für den Tag ist. Dieser Code sollte nach einem Inside Bar auf dem 1-Stunden-Chart suchen. (Die hothand Funktion gibt eine Zeichenfolge des Paares btw) Wenn es ein Innen bar findet, habe ich gerade es zu einem Flat-out kaufen oder verkaufen Handel zu Testzwecken zu öffnen. Ich bin mir nicht sicher, ob der Backtester den Handel mit mehreren Paaren von einem Chart aus handhaben kann? Ich habe die 1-Minuten-Historie für alle Paare heruntergeladen, die er verwendet. Aber es scheint nur zu öffnen Geschäfte auf dem eurusd, die das Diagramm habe ich es angehängt ist,
Einige allgemeine Kommentare:
Sie kaufen zum Ask und verkaufen zum Bid
Wenn Ihr Broker ein ECN-Broker ist, können Sie SL und TP nicht einstellen, wenn Sie die Order platzieren (in diesem Fall setzen Sie sie auf 0), Sie müssen die Order platzieren und dann die Order ändern, um SL und TP hinzuzufügen
Überprüfen Sie immer das Ergebnis der Auftragserteilung und prüfen Sie, ob Fehler zurückgegeben werden; Sie müssen diese entsprechend behandeln
wenn Sie planen, diesen EA auf mehreren Charts einzusetzen, d.h. Orders von mehreren Charts aus zu platzieren, benötigen Sie eine Art Mutex, um Order Context Busy zu vermeiden (siehe WHRoeders Beiträge, er hat einen ausgezeichneten Mutex)
Aber es scheint nur Geschäfte auf dem eurusd zu öffnen, was das Diagramm ist, dem ich es beigefügt habe,
Yep, . . .
Symbol () ist das Paar, an das der EA/Indikator angehängt ist, wollten Sie dies stattdessen tun?
Ja, das wollte ich tun, aber jetzt bekomme ich diesen Fehler
http://clip2net.com/s/144hq
Als ob es die Paarausgabe der hothand-Funktion nicht erkennt. Die Ausgabe der hothand-Funktion ist eine Zeichenkette, also verstehe ich nicht, warum es nicht funktioniert.
Als ob es die Paarausgabe der hothand-Funktion nicht erkennen würde. Die Ausgabe der hothand-Funktion ist eine Zeichenfolge, so dass ich nicht sehen, was es nicht funktionieren wird
Hallo Leute, ich versuche, einen Code zu erstellen, der folgendes tut
Wenn ein schwebender Auftrag seit x Bars offen ist, wird er gelöscht, wenn die Baranzahl x überschritten hat.
Kann es sein, dass etwas mit meiner Logik nicht stimmt?