Fragen Sie! - Seite 98

 

Wieder Hilfe

Hallo zusammen,

Ich arbeite schon seit einer gefühlten Ewigkeit an einem EA. Vielen Dank an alle in diesem Thread für die Hilfe, die sie mir gegeben haben.

Ich bin jetzt wieder ratlos und suche nach weiterer Hilfe. Wie wir alle wissen, die meisten Crossover Art von Signalen von MA's zu Stoch's nicht sehr gut funktionieren, weil viele Male es am Ende der Bewegung kreuzt.

Ich versuche, den Stochastik RSI zu verwenden, wenn er die 50er-Linie überquert, aber nur auf dem folgenden Balken, sobald der Preis entweder das Hoch oder das Tief um eine bestimmte Anzahl von Pips (MinPips) überschritten hat. Mein Hauptproblem ist, dass, wenn ich das Kreuz zu verfolgen, wenn der Preis nur erreicht die MinPips auf den nachfolgenden Bars nach dem Kreuz, aber das Kreuz bleibt in die gleiche Richtung.

Ich versuche, ein Bild anzuhängen, um zu zeigen, was ich zu tun versuche.

Punkt Nr. 1 ist ein Verkaufskreuz, aber da der Preis niemals das Tief dieses Balkens überschreitet, wird kein Handel getätigt (eigentlich möchte ich, dass jeder vorherige Handel aktiv bleibt).

Punkt 2 liegt an einem Kaufkreuz, aber der Kurs passiert das Hoch des Balkens erst am 4. Alle vorherigen Verkaufsaufträge sollten zu diesem Zeitpunkt geschlossen werden.

Ich hoffe, das funktioniert, denn es ist das erste Mal, dass ich ein Bild anhänge. Ich entschuldige mich im Voraus, wenn ich es vermasselt habe.

Putz

Dateien:
 

Mehr Informationen

Nachfolgend meine Programmierung, bei der CurrDir die aktuelle Richtung und PrevDir die vorherige Richtung ist, d. h. wenn sie nicht gleich sind, hat es ein Cross gegeben.

Das Problem ist, dass, wenn es nicht auf der aktuellen Bar kreuzen, dann CurrDir und PrevDir gleich werden und es geht nie über diese Bar zu sehen, ob es die ValHigh oder ValLow erreicht.

Für jede Hilfe wären wir dankbar.

Putz

if(CurrDir != PrevDir)

{

if(CurrDir == 1)

{

ValHigh = iHigh(Symbol(),Timeframe2,1) + MinPips*Point;

if(Bid >= ValHigh)

{

return(1); //up

}

return (2);

}

if(CurrDir == 2)

{

ValLow = iLow(Symbol(),Timeframe2,1) - MinPips*Point;

if(Ask <= ValLow)

{

return(2);//down

}

return (1);

}

 

Herausgefunden...denke ich

Ich glaube, ich habe endlich mein Problem gefunden. Es ist jetzt fast 2:30 Uhr und ich bin erschöpft, also werde ich es morgen überprüfen...

Putz

 

Gibt es eine Möglichkeit, das Datenformat der MT4-Exportdatei zu ändern?

Ich bin auf der Suche nach der ASCII.csv, aber die Daten müssen im folgenden Format sein;

1) getrennte Spalten (ich brauche nur: Zeit, Hoch, Tief und Schluss)

2) nur für die letzten 1000 Balken

3) kehrt die Reihenfolge um (letzter zuoberst)

4) speichert es in einem Ordner, den ich bereits auf meinem Desktop habe (vielleicht eine Browse-Funktion, um den Ordner auszuwählen?)

Vielen Dank im Voraus an alle, die mir vielleicht helfen können.

 

Hinzufügen und Löschen von Indikatoren

Kann ein Code in einen EA geschrieben werden, um einen Indikator auf der Handelsplattform hinzuzufügen oder zu löschen?

Dave

 

Ich habe ein großes Problem bei der Verwaltung von Aufträgen....

Meine einfache EA Eintrag bei X:59......aber ich habe mehrere Eintrag auf dem gleichen Kreuz. Meine Frage: Ist es möglich, die Orders zum Zeitpunkt der Eingabe zu überprüfen und mit der neuen Order zu vergleichen?

Ich möchte den Einstieg um X:59 nur mit 1 Order für Cross....

Kann mir jemand helfen?

 
metastock:
Ich habe ein großes Problem bei der Verwaltung von Aufträgen....

Meine einfache EA Eintrag bei X:59......aber ich habe mehrere Eintrag auf dem gleichen Kreuz. Meine Frage: Ist es möglich, Orders zum Zeitpunkt der Eingabe zu überprüfen und mit der neuen Order zu vergleichen?

Ich möchte Eintrag bei x:59 nur mit 1 Auftrag für cross....

Kann mir jemand helfen?

Dies ist meine Lösung, ich hoffe, dies kann jemandem helfen......

//+------------------------------------------------------------------+

//| Signal Begin(Entry) |

//+------------------------------------------------------------------+

if (Buy1_1 58 && check_buy==0) Order = SIGNAL_BUY;

if (Sell1_1 > Sell1_2 && Minute()>58 && check_sell==0) Auftrag = SIGNAL_SELL;

if (Minute()==00) {check_buy=0;}

if (Minute()==00) {check_sell=0;}

//+------------------------------------------------------------------+

//| Signal Ende |

//+------------------------------------------------------------------+

//Kaufen

if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

//if(!IsTrade) {

//Prüfen der freien Marge

if (AccountFreeMargin() < (1000 * Lots)) {

Print("Wir haben kein Geld. Freie Marge = ", AccountFreeMargin());

return(0);

}

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; sonst StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; sonst TakeProfitLevel = 0.0;

check_buy=1;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy %W(#" + Magic_Number + ")", Magic_Number, 0, DodgerBlue);

if(Ticket > 0) {

if(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("BUY order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");

} else {

Print("Fehler beim Öffnen der BUY-Order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

// }

}

//Verkaufen

if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

//if(!IsTrade) {

//Prüfen der freien Marge

if (AccountFreeMargin() < (1000 * Lots)) {

Print("Wir haben kein Geld. Freie Marge = ", AccountFreeMargin());

return(0);

}

if (StopLossMode) StopLossLevel = Bid + StopLoss * Point; sonst StopLossLevel = 0.0;

if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfit * Point; sonst TakeProfitLevel = 0.0;

check_sell=1;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell %W(#" + Magic_Number + ")", Magic_Number, 0, DeepPink);

if(Ticket > 0) {

if(OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {

Print("SELL order opened : ", OrderOpenPrice());

if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");

} else {

Print("Fehler beim Öffnen der SELL-Order : ", GetLastError());

}

}

if (EachTickMode) TickCheck = True;

if (!EachTickMode) BarCount = Bars;

return(0);

//}

}

if (!EachTickMode) BarCount = Bars;

return(0);

}

//+------------------------------------------------------------------+

 

An Metastock

Ich kann nicht sagen, warum check_buy True ist.

Um die Anzahl der offenen Orders zu begrenzen, können Sie vor der Eingabe verwenden:

if (OrdersTotal()==0)

Groß sein

 

Fragen zum Kodierwissen

WANN wollen Sie eine STATISCHE Variable verwenden - welche Probleme können damit gelöst werden?

WANN möchte man etwas in den INIT()-Abschnitt einfügen - welche Probleme lassen sich damit lösen?

Großes Be

 

nicht sicher, ob dies wurde gefragt, bevor, aber gibt es eine Möglichkeit, eine Linie zum aktuellen Zeitpunkt +1 Stunde vor und nach zu einem bestimmten Preis in einem EA zu zeichnen?