Feuervogel v63G - Seite 30

 

Wie Sie auf dem USDCHF-Chart für die letzte Woche sehen können, hat sich Firebird in einem Markt, der an eine Bandbreite gebunden ist, sehr gut geschlagen. Wenn die Märkte in einen Trend übergehen, trifft Firebird sehr oft die falschen Entscheidungen. Die Lösung für dieses Problem kann sehr einfach sein: Wir müssen aussteigen, sobald der Markt in einen Trend übergeht, und wieder einsteigen, wenn der Markt wieder in eine bestimmte Richtung tendiert.

In Phoenix gibt es einen Code, der sich um diese Veränderungen kümmert. Kurz gesagt, er nimmt die Hochs der letzten 24, 12, 6 und 2 Stunden und kann entscheiden, wann der Markt in einen Trend übergeht und wann die Handelsspanne wiederhergestellt ist.

Dateien:
 

Hervorragende Arbeit Hendrick, Ihr Brainstorming zahlt sich aus, ich freue mich darauf, Phoenix zu testen, wenn Sie es veröffentlichen.

Hendrick:
Hier können Sie den Unterschied im Verhalten zwischen Phoenix und Firebird für den USDCHF sehen, wenn die Dinge schwierig werden:

Firebird hat 3 BUYS platziert, die alle ausgestoppt wurden.

Phoenix wartete auf den richtigen Moment und tätigte 3 SELLS, die alle den TP trafen.

Nice?
 
MarvinSk:
Ich komme jetzt viel näher

Ich habe dies hinzugefügt:

if ((Safe1!=1)&&(DealTime==2)) {

for (int i=OrdersTotal()-1; i>=0; i--) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (AuftragSymbol()==Symbol()) {

if (OrderType()==OP_BUY) {

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

if (OrderType()==OP_SELL) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

In einem Backtest sehe ich, dass die OpenTrades geschlossen werden, aber ich muss das STOPLOSS Lookup Feature hinzufügen, weil die Trades geschlossen werden, die POSITIVE GAINS haben, wenn die Safe1 und DealTime Variablen übereinstimmen....

Stoploss muss also die 3. Falle sein... Ich werde dies nächste Woche weiterleiten, sobald ich es zum Laufen gebracht habe...

Wieder ist jeder Idee, die eine gewisse Kontrolle über bestehende offene Trades während, wenn der Markt wird Volitile... Wenn ein Trade STOPPEN wird, sollte ich ihn lieber auf halbem Wege stoppen als zu 100%. Wenigstens, wenn der Markt erholt Sie nicht haben viel zu machen...

Danke

Hallo Marvin,

eine viel einfachere Lösung wäre es, einen offenen Handel zu schließen, sobald sich das Signal ändert. Was meinst du dazu?

 
Hendrick:
Hallo Marvin, eine viel einfachere Lösung wäre es, einen offenen Handel zu schließen, sobald sich das Signal ändert. Was meinen Sie dazu?

Hallo Hendrick... Wenn du Signal sagst, meinst du, wenn Safe1 und Dealtime Wert wahr werden?

Wenn das der Fall ist, was ich beim Backtesting gesehen habe, weil der Markt im Moment geschlossen ist, ist, dass einige Postive Trades auch geschlossen wurden... So STOPLOSS Überprüfung ist die 3. Variable zu kontrollieren, dass

Ich habe einige Code präsentiert von ELIHAYUN

Schau dir das an Hendrick...

void CloseOrder(int ticket,double numLots,double close_price)

{

int CloseCnt, err;

// Versuch, 3 Mal zu schließen

CloseCnt = 0;

while (CloseCnt < 3)

{

if (OrderClose(ticket,numLots,close_price,Slippage,Violet))

{

CloseCnt = 3;

}

sonst

{

err=GetLastError();

Print(CloseCnt," Fehler beim Schließen der Bestellung : (", err , ") " + ErrorDescription(err));

if (err > 0) CloseCnt++;

}

}

}

void CloseHalfSL()

{

double LosePercent = 50.0; // 50% vom S/L

for(int i=OrdersTotal()-1;i>=0;i--) // alle Aufträge und Positionen scannen...

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderMagicNumber() != MagicNumber) weiter;

wenn ( OrderSymbol()==Symbol() )

if (OrderProfit() < 0) // wir haben einen Verlusthandel

{

double prc = Bid;

if (OrderType() == OP_SELL) prc = Ask;

double ord_prc = OrderOpenPrice();

double ord_SL = OrderStopLoss();

int SL_punkte = MathAbs(ord_prc - ord_SL) / Punkt;

int Actual_Lose = MathAbs(prc - ord_prc) / Point;

if ( (Actual_Lose * 100 / SL_points) >= LosePercent) // Zu viel Verlust

{

CloseOrder(OrderTicket(), OrderLots(), prc);

}

}

}

}

/// ---- Prüfen, ob der Handel nicht sicher ist, dann CloseHalfSL aufrufen

if (NotSafeToTrade) CloseHalfSL();

 
MarvinSk:
Wir kommen jetzt viel näher

Ich habe dies hinzugefügt:

if ((Safe1!=1)&&(DealTime==2)) {

for (int i=OrdersTotal()-1; i>=0; i--) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (AuftragSymbol()==Symbol()) {

if (OrderType()==OP_BUY) {

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

if (OrderType()==OP_SELL) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

In einem Backtest sehe ich, dass die OpenTrades geschlossen werden, aber ich muss das STOPLOSS Lookup Feature hinzufügen, weil die Trades geschlossen werden, die POSITIVE GAINS haben, wenn die Safe1 und DealTime Variablen übereinstimmen....

Stoploss muss also die 3. Falle sein... Ich werde dies nächste Woche weiterleiten, sobald ich es zum Laufen gebracht habe...

Wieder ist jeder Idee, die eine gewisse Kontrolle über bestehende offene Trades während, wenn der Markt wird Volitile... Wenn ein Trade STOPPEN muss, dann sollte er lieber auf halbem Wege als zu 100% gestoppt werden. Wenigstens, wenn der Markt erholt Sie nicht haben viel zu machen...

Danke

Dies könnte eine Möglichkeit sein, POSITIVE GAINS-Aufträge offen zu lassen. Fügen Sie "&& OrderProfit()<0" in die if(OrderType()" Zeile ein.

if ((Safe1!=1)&&(DealTime==2)) {

for (int i=OrdersTotal()-1; i>=0; i--) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (AuftragSymbol()==Symbol()) {

if (OrderType()==OP_BUY && OrderProfit()<0) {

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

if (OrderType()==OP_SELL && OrderProfit()<0) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

Wackena

 
Wackena:
Dies könnte eine Möglichkeit sein, Aufträge mit POSITIVEM GEWINN offen zu lassen. Fügen Sie "&& OrderProfit()<0" in die if(OrderType()" Zeile ein.

if ((Safe1!=1)&&(DealTime==2)) {

for (int i=OrdersTotal()-1; i>=0; i--) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (AuftragSymbol()==Symbol()) {

if (OrderType()==OP_BUY && OrderProfit()<0) {

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

if (OrderType()==OP_SELL && OrderProfit()<0) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

Wackena

Wackena danke.. aber ich habe eine Korrektur an unserer Syntax vorgenommen

double pBid, pAsk;

if ((Safe1!=1)&&(DealTime==2)) {

for (int i=OrdersTotal()-1; i>=0; i--) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (AuftragSymbol()==Symbol()) {

if ((OrderType()==OP_BUY)&&(OrderProfit()<0)){

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

if ((OrderType()==OP_SELL)&&(OrderProfit()<0)) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

 

Ok alle ich bin vorwärts Testen mit den Ergänzungen, die ich in Bezug auf die Behandlung von bestehenden offenen Trades, wenn der Markt volatil ist...

Die einzige Ausnahme die ich habe ist... Anstelle von TradingHour von 0 - 24

handle ich dieses Muster:

0 - 7 EST

11 - 24 EST

Ich tue dies, weil ich sicherstellen möchte, dass der EA explizit nicht während der Eröffnung von NY handelt... Ich habe zu viel Volatilität bei 8 - 10 EST gesehen

Ich werde meine Ergebnisse im Laufe der Woche posten... Wir haben einige Krachmacher Nachrichten in dieser Woche mal sehen, was passiert

 

Ich habe gerade das Buch "Vogelbeobachtung im Löwenland" gelesen. Es ist nicht schlecht. Das letzte Kapitel ist nützlich. Es ist auch ziemlich relevant für die Idee hinter Firebird und Phoenix. Die Idee ist nicht genau dieselbe, aber sehr ähnlich, und man kann leicht einige gute Ideen daraus stehlen und sie einbauen, um Firebird weiter zu einem großartigen EA zu machen. Wenn Hendrick, Wackena und die wenigen anderen Entwickler von Firebird daran interessiert sind, es zu lesen, lassen Sie es mich wissen.

 

möchte Firebird testen

Hallo Hendrik,.. Ich möchte die neue Version von Fire Bird testen (weil viele Versionen von Firebird). können Sie mir bitte zeigen, ....

harte Arbeit Jungs für die Entwicklung von Fire Bird zu Phoenix, ich respektiere alle von Ihnen,...

Dankeschön

 

Kein Problem mit Live-Konto

MarvinSk:
Hat jemand ein LIVE-Konto bei InterbankFX

Ich erhalte diese Fehler

2006.06.26 20:10:59 : order buy 1.00 USDCHFm opening at 1.2407 sl: 1.2307 tp: 1.2417 failed [Common error]

Bedeutet das, dass sie keine EA auf LIVE-Konten zulassen?

Ich habe ein Live-Konto bei IBFX, bisher kein Problem...

Grund der Beschwerde: