Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 869
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es tut mir leid, es ist eine Schande, dass wir dasselbe hundertmal wiederholen müssen.
Seit fast einem Monat starre ich nun schon wie ein Schaf auf das Tor. Ich verstehe gar nichts.
Die Aufgabe besteht darin, einen niedrigeren gleitenden Durchschnitt mit einem gleitenden Durchschnitt von 13 zu berechnen,
d.h. eine Periode von 12 auf der Grundlage von 13 zu berechnen.
Hallo! Würde einer der geschätzten Gurus gerne den Start meines ersten EA überprüfen? Ist es möglich, weiterzumachen? Vielleicht habe ich etwas übersehen? Für nähere Informationen wäre ich sehr dankbar. Ich habe irgendwo im Forum gesehen, wie man nur eine Position offen macht, aber ich habe es nicht kopiert und kann es jetzt nicht mehr finden. Hilfe, bitte.
Ich danke Ihnen!
// Testversion von Expert Advisor
//--------------------------------------------------------------------
//------Вводные данные:-----------------------------------------------------------
Eingabe double Lots = 0.1; // Lots
input int MovingPeriod =5; // МА Berechnungszeitraum
input int MovingShift =0; // MA-Verschiebung
input int InpBandsPeriod=10; // Bollinger Bands Periode
input int InpBandsShift=0; // Verschiebung der Bollinger-Bänder
input double InpBandsDeviations=2.0; // Bollinger Bands Abweichung
input int K_Period=30; // %K Periode der Stochastik
input int D_Period=10; // %D Stochastische Periode
input int Slowdawn =8; // Stochastische Verlangsamung
Eingabefarbe clMainStoch =Yellow; // Farbe der Hauptlinie der Stochastik
Eingangsfarbe clSignalStoch =Red; // Farbe der stochastischen Signallinie
// -----Deklarieren Sie globale Variablen:------------------------------------------
double MA_0, MA_1, MA_2; // MA-Wert bei 0, 1 und 2 Takten
double MB_0, MB_1, MB_2; // Wert des Bollinger-Durchschnitts bei 0, 1 und 2 Balken
double ExtUpperBuffer[]; // Wert der oberen Bollinger-Linie
double ExtLowerBuffer[]; // Wert der unteren Bollinger-Linie
double Delta_0, Delta_1; // Differenz zwischen den Werten des oberen und unteren Bollinger ...
// ...Bollinger Linien auf 0 und 1 Balken
double Yellow_0, Yellow_1, Yellow_2; // MAIN-Wert bei 0, 1 und 2 Balken
double Red_0, Red_1, Red_2; // Wert SIGNAL bei 0, 1 und 2 Balken
//-------Поехали!----------------------------------------------------------------
int start() //Spezialfunktion start
{
//Funktionsaufruf des MA-Indikators
MA_0=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
MA_1=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,1);
MA_2=iMA(NULL,0,GleitendePeriode,GleitendeVerschiebung,MODE_SMA,PREIS_SCHLUSS,2);
//Rückmeldung an die Funktion Bollinger Bands
MB_0=iBands(NULL,0,InpBandsPeriod,InpBandsShift,InpBandsDeviations,PRICE_CLOSE,0);
MB_1=iBands(NULL,0,InpBandsPeriod,InpBandsShift,InpBandsDeviations,PRICE_CLOSE,1);
MB_2=iBands(NULL,0,InpBandsPeriod,InpBandsShift,InpBandsDeviations,PRICE_CLOSE,2);
Delta_0=iBands(ExtUpperBuffer[0]-ExtLowerBuffer[0]);
Delta_1=iBands(ExtUpperBuffer[1]-ExtLowerBuffer[1]);
//Stochastischer Funktionsaufruf
Gelb_0=iStochastic(NULL,0,K_Periode,D_Periode,Slowdawn,MODE_SMA,0,MODE_MAIN,0);
Gelb_1=iStochastic(NULL,0,K_Periode,D_Periode,Slowdawn,MODE_SMA,0,MODE_MAIN,1);
Gelb_2=iStochastic(NULL,0,K_Periode,D_Periode,Slowdawn,MODE_SMA,0,MODE_MAIN,2);
Red_0=iStochastic(NULL,0,K_Period,D_Period,Slowdawn,MODE_SMA,0,MODE_SIGNAL,0);
Red_1=iStochastic(NULL,0,K_Period,D_Period,Slowdawn,MODE_SMA,0,MODE_SIGNAL,1);
Red_2=iStochastic(NULL,0,K_Periode,D_Periode,Dämmerung,MODE_SMA,0,MODE_SIGNAL,2);
//-------Ситуации по Стохастику:-----------------------------------------------------
//Der Markt ist überkauft
double MOB()=(Gelb_0>=80 && Rot_0>=80); //Lokale Variable
//Der Markt ist überverkauft.
double MOS()=(Gelb_0<=20 && Rot_0<=20); //Lokale Variable
//Der Markt ist normal.
double MN()=(20<Gelb_0<80 && 20<Rot_0<80); //Lokale Variable
//Kritische Situation
double MC1()=(20<Gelb_0<80 && Rot_0<=20); //Lokale Variable
double MC2()=(20<Gelb_0<80 && Rot_0>=80); //Lokale Variable
double MC3()=(20<Rot_0<80 && Gelb_0<=20); //Lokale Variable
double MC4()=(20<Rot_0<80 && Gelb_0>=80); //Lokale Variable
//-------Example(my)order to open position-----------------------------------------------------
if (Delta_0 > Delta_1 && MOB()==true) //Der Markt ist überkauft, aber das Delta wächst
{ if (MB_2 > MB_1 && MB_1 < MB_0) //Unterer Bollinger Break
OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-1500*Point,Bid+1500*Point);//Kaufauftrag eröffnen
Alert("GetLastError()); //Meldung eines Fehlers
Alert("Eröffne Position BAY mit Lots("Lots"),Preis("Ask")."); //Kaufmeldung
Darüber hinaus können BAY-Positionen (wie auch Verkaufspositionen) unter verschiedenen Bedingungen eröffnet werden, und je nach den Bedingungen, unter denen die Position eröffnet wurde (z. B. BAY), gelten unterschiedliche Schließungsbedingungen. (z.B. BAY), gelten andere Abschlussbedingungen.
Wie kann ich das in MKL übersetzen?
Darüber hinaus können BAY-Positionen (wie auch Verkaufspositionen) unter verschiedenen Bedingungen eröffnet werden, und je nach den Bedingungen, unter denen die Position eröffnet wurde (z. B. BAY), gelten unterschiedliche Schließungsbedingungen. (z.B. BAY), gelten andere Abschlussbedingungen.
Wie kann ich das in MKL übersetzen?
Wir wählen den Auftrag in der Schleife aus. Wenn es sich um einen Kauf handelt und alle anderen Daten (Symbol, Magier, was auch immer) das Kriterium erfüllen, dass er zu "ordnungsgemäßen Abschlussbedingungen" geschlossen werden muss, dann schließen wir ihn, wenn es "ordnungsgemäße Abschlussbedingungen" gibt.
Es ist mir ein bisschen zu vage, aber nach etwas Nachforschung werde ich es wohl verstehen. Vielen Dank, dass Sie sich nicht von den Gipfeln des Wissens abgewandt haben oder Vorträge gehalten haben, wie einige Genossen aus dem Sowjetland.
Ich habe herausgefunden, wie man schließt:
//-------Beispiel(mine) für einen Auftrag zur Eröffnung einer Position mit verbindlicher Schließung (per Ticket)-----------------------------------------------------
//Lokale Variable, die einen BAY-Auftrag öffnet (anstelle von Zeile 63)
int Ticket_1() = (OrderSend(Symbol(),OP_BUY,Lots,Ask,0,Bid-1500*Point,Bid+1500*Point))
//-------Dann könnte der Abschluss für diesen speziellen Auftrag wie folgt aussehen:-----------------------------------------------------
if (Ticket_1()==true) //wenn Auftrag #1 geöffnet wurde, dann...
{ if (Gelb_0>Rot_0 && (Gelb_0-Rot_0)<(Gelb_1-Rot_1)) //Gelb ist höher als Rot, Kontraktion (Bedingung)
{ if (MA_2 < MA_1 && MA_1 > MA_0);} //Rot über der mittleren (Bedingung)
else (Gelb_0>Rot_0 && (Gelb_0-Rot_0)>(Gelb_1-Rot_1)) //Gelb über Rot, Erweiterung(Bedingung)
{ if (MB_2 < MB_1 && MB_1 > MB_0);} //Obere Bollinger-Bremse (Bedingung)
bool Ans=OrderClose(Ticket,Lot,Bid,0); //...Order schließen (Sperre)variabel)
Alert("Es wird versucht, den Auftrag mit Bid("Lots"),price("Ask") zu schließen. Ich warte auf Antwort...");
if (Ans==true) // Es hat funktioniert :)
{
Alert ("Closed BAY order by lot("Lots"),Closing price("Bid");
break; // Beenden der Schleife zum Schließen der Position
}
}
Bitte geben Sie eine Analyse, auch zum vorherigen Beitrag. Tut mir leid, dass ich so stur bin, aber du bist der Einzige, der antwortet... Ich danke Ihnen!
Es ist mir ein bisschen zu vage, aber nach etwas Nachforschung werde ich es wohl verstehen. Vielen Dank dafür, dass Sie sich nicht von den Gipfeln des Wissens abwenden oder Vorträge halten, wie einige Genossen aus dem Sowjetland.
Ich dachte daran, sie auf diese Weise zu schließen:
...Bitte geben Sie eine Analyse ab, und zwar auch zum vorherigen Beitrag. Tut mir leid, dass ich so hartnäckig bin, aber du bist der Einzige, der antwortet... Ich danke Ihnen!
Nun, es ist ein bisschen verschwommen, nicht wahr?
1. Sie müssen feststellen, ob die Bedingung für den Abschluss des Auftrags eingetreten ist.
2. In diesem Zyklus überprüfen Sie alle offenen Positionen und schließen sie, wenn Sie den gewünschten Kaufauftrag finden.
Dies ist ein Beispiel für einen Zyklus:
D.h., um den Kaufauftrag für das aktuelle Symbol (auf dem Chart, auf dem der Expert Advisor läuft) und mit einer magischen Zahl von 100500 (zum Beispiel) zu schließen, sollten Sie die Funktion wie folgt aufrufen
Sie müssen die Zahl 100500 nicht schreiben, normalerweise ist die magische Zahl bereits im EA auf eine Variable gesetzt, zum Beispiel int Magic = 100500; Dann müssen Sie Magic anstelle von 100500 schreiben
Ich habe nichts in die Schleife geschrieben, in der die ausgewählte Position geschlossen werden soll, da sie die Funktion zum Schließen des Auftrags gemäß dem Ticket aufrufen soll. Dabei handelt es sich in der Regel um einen Aufruf einer vollständigen Funktion mit Rückgabecodes des Handelsservers. Sie können dort einen einfachen Befehl schreiben, um den ausgewählten Auftrag zu schließen OrderClose() zu überprüfen;
Auf diese Weise ist es viel einfacher zu lesen. Entschuldigung.
Es ist auch möglich, einen alten Beitrag zu bearbeiten, um keine Duplikate zu erzeugen ;)
Es ist immer noch möglich, einen alten Beitrag zu bearbeiten, um Duplikate zu vermeiden ;)
Es ist ein bisschen neblig.
1) Feststellen, dass die Bedingung zum Schließen des Kaufauftrags eingetreten ist
2. In der Schleife überprüfen Sie alle offenen Positionen, und wenn Sie den gewünschten Kaufauftrag finden, schließen Sie ihn.
Dies ist ein Beispiel für einen Zyklus:
D.h., um den Kaufauftrag für das aktuelle Symbol (auf dem Chart, auf dem der Expert Advisor läuft) und mit einer magischen Zahl von 100500 (zum Beispiel) zu schließen, sollten Sie die Funktion wie folgt aufrufen
Sie müssen die Zahl 100500 nicht schreiben, normalerweise ist die magische Zahl bereits im EA auf eine Variable gesetzt, zum Beispiel int Magic = 100500; Dann müssen Sie Magic anstelle von 100500 schreiben
Ich habe nichts in die Schleife geschrieben, in der die ausgewählte Position geschlossen werden soll, da sie die Funktion zum Schließen des Auftrags gemäß dem Ticket aufrufen soll. Dabei handelt es sich in der Regel um einen Aufruf einer vollständigen Funktion mit Rückgabecodes des Handelsservers. Sie können dort einen einfachen Befehl schreiben, um den ausgewählten Auftrag zu schließen OrderClose() zu überprüfen;