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
Ja, ich möchte 3 Schritte machen
Beispiel:
Erreiche 15 und komme 10 zurück
Erreichen Sie 30 und kommen Sie 15 zurück
Erreichen Sie 45 und gehen Sie 15 zurück
Oder mit Stop Loss schließen.
Ich werde ein Bild nehmen und versuchen, besser zu erklären.
Dies ist etwas Neues für mich.
Also, die verlustreichen Handel schließen immer warten müssen, bis es zurück prallen Recht?
Wie wäre es, wenn es doen't bounceback?
Werden wir am anfänglichen SL schließen?Vielen Dank jetzt, ich habe es bereits gemacht, jetzt versuchen, zu optimieren, um gute Ergebnisse mit diesem Verlust Schutz zu erhalten.
Ich versuche, Informationen über das Plotten einer Linie zu finden, genau wie der RSI-Indikator zum Beispiel... Ich habe zwei Zahlen, die ich als Linien auf demselben Indikator plotten möchte.
Ich weiß, dass es ein Array irgendeiner Art erfordert, aber ich habe kein Glück, herauszufinden, welche Codegruppe dies ermöglicht.
Indikator-Puffer
Ich versuche, Informationen über das Plotten einer Linie zu finden, genau wie der RSI-Indikator zum Beispiel... Ich habe zwei Zahlen, die ich als Linien auf dem gleichen Indikator plotten möchte. Ich weiß, dass es ein Array von irgendeiner Art beinhalten wird, aber ich habe kein Glück herauszufinden, welche Gruppe von Code dies geschehen lassen wird.
Bitte lesen Sie diesen Artikel
MQL4 Sprache für Einsteiger. Benutzerdefinierte Indikatoren (Teil 1) - MQL4 Artikel
Hallo Leute,
Ich weiß nicht, ob jemand mit Forex Made-EZ von George Smith vertraut ist.
Ich bin gerade dabei, seine Arbeit zu überprüfen und frage mich, ob jemand einen Indikator für den Oscar-Oszillator, den er verwendet, kodiert hat?
Die Formel lautet
A = das höchste Hoch der letzten acht Balken (einschließlich dieses Balkens)
let B = der tiefste Stand der letzten acht Balken (einschließlich dieses Balkens)
C = Schlusskurs des aktuellen Balkens
X = der vorherige Oszillatorwert (Oscar)
Der "grobe" Oszillator von heute ist gleich (C-B) geteilt durch (A-B) mal 100.
Als nächstes "glätten" wir unsere grobe Zahl (nennen wir sie Y) wie folgt:
Endgültige Oszillatorzahl = ((X geteilt durch 3) mal 2), plus (Y geteilt durch 3).
Wenn jemand dies entweder kodiert hat oder es kodieren kann, wäre ich sehr dankbar.
Mit freundlichen Grüßen SteveIch habe selbst versucht, dies zu kodieren. Könnte mir jemand sagen, ob es das tut, was ich denke, dass es tut? Die Werte scheinen nicht ganz mit dem übereinzustimmen, was sie tun, wenn ich die Zahlen manuell berechne. Außerdem beginnt es erst ab dem Zeitpunkt, an dem der Indikator gesetzt wird. Ich möchte, dass es auch die historischen Werte anzeigt.
#property indicator_separate_window
#property indikator_puffer 1
#property indicator_color1 Red
//---- puffer
double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Initialisierungsfunktion |
//+------------------------------------------------------------------+
int init()
{
//---- Indikatoren
SetIndexStyle(0,DRAW_LINE);
SetIndexPuffer(0,ExtMapPuffer1);
string short_name = "Oscar Indikator";
IndicatorShortName(short_name);
//----
return(1);
}
//+------------------------------------------------------------------+
Custor Indikator-Deinitialisierungsfunktion //|
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Benutzerdefinierte Indikator-Iterationsfunktion |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
//---- Prüfung auf mögliche Fehler
if (gezählte_Balken<0) return(-1);
//---- zuletzt gezählte Balken werden neu gezählt
if (gezählte_Balken>0) gezählte_Balken--;
int pos=Balken-gezählt_balken;
//---- Hauptberechnungsschleife
double x;
x=50;
while(pos>=0)
{
double a, b, c, y, osc;
//A = der höchste Wert der letzten acht Takte (einschließlich dieses einen)
a=Hoch;
//let B = das niedrigste Tief der letzten acht Balken (einschließlich dieses Balkens)
b=Tief;
//let C = Schlusskurs des aktuellen Balkens
c = Schlusskurs[pos];
//let X = der vorherige Oszillatorwert (Oscar)
//Der "grobe" Oszillator des heutigen Tages ist gleich (C-B) geteilt durch (A-B) mal 100.
y=((c-b)/(a-b))*100;
//Nächste "glätten" wir unsere grobe Zahl (nennen wir sie Y) wie folgt:
//Endgültige Oszillatorzahl = ((X geteilt durch 3) mal 2), plus (Y geteilt durch 3).
osc=((x/3)*2)+(y/3);
ExtMapBuffer1[pos]= osc ;
pos--;
}
return(0);
}
Für jede Hilfe bin ich dankbar.
Danke Steve
Fragen... Modus_Handel
Hallo, kann jemand ein Beispiel für die Verwendung von MODE_TRADES geben?
Danke!
An smb1970 - das ist es:
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
#property indicator_maximum 100
#property indicator_minimum 0
//
//
//
//
//
extern int OscPeriod = 8;
extern int OscPrice = PRICE_CLOSE;
double oscBuffer[];
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
//
//
//
int init()
{
SetIndexBuffer(0,oscBuffer);
IndicatorShortName("Osc ("+OscPeriod+")");
return(0);
}
int deinit() { return(0); }
int start()
{
int counted_bars=IndicatorCounted();
int i,limit;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//
//
//
//
//
for(i=limit; i>=0; i--)
{
double price = iMA(NULL,0,1,0,MODE_SMA,OscPrice,i);
double high = High[ArrayMaximum(High,OscPeriod,i)];
double low = Low[ArrayMinimum(Low,OscPeriod,i)];
//
//
//
//
//
if (high!=low)
double raw = 100.00*(price-low)/(high-low);
else raw = 0.00;
oscBuffer= oscBuffer*2.0/3.0 + raw/3.0;
}
return(0);
}Aber sehen Sie sich auch das Bild an: oben ist "Oscar", unten das Ema(5) der Stochastik(8), oder, um es noch einfacher zu machen, unten die Stochastik(8,5,1) mit der auf exponentiell eingestellten Signallinie. Also ist "Oscar" einfach eine Signallinie der Stochastik
Danke!
Danke mladen, das ist nicht nur sehr nützlich, sondern auch sehr aufschlussreich!
NewB braucht Hilfe bei der Codierung :-(
Hallo zusammen,
Ich benötige hier ein wenig Hilfe . Ich habe einige Code, der für eine Vereinbarung zwischen verschiedenen Indikatoren suchen wird. Sobald sie alle übereinstimmen, möchte ich einen Weg für die Trades in der Art, wie ich es in den Chart-Bilder beschrieben eingeben. Bisher kann ich den 1. "Buy"-Handel eingeben, aber es wird nicht nur 1 Handel eingegeben...., sondern bis zu 8 Geschäfte. Und dann, wenn der Markt gegen mich geht, gebe ich einen "Eventualhandel" ein, bei dem ich wieder kaufe/verkaufe, obwohl er gegen mich geht. Ich wäre sehr dankbar, wenn mir jemand zeigen könnte, wie der korrekte Code aussehen sollte
Ich bin mir nicht sicher, ob diese Bilder angezeigt werden, aber für den Fall habe ich sie auch als Anhänge.
Hier ist mein fehlerhafter Code, der den Handel ausführen soll...
while (execute_trade ==5)
{if ( OrdersTotal() == buy_trade1 ) //buy_trade1 = 1...dies stoppt, nachdem 1 Order platziert wurde...funktioniert aber noch nicht
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
execute_trade=0;
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("Mein Ticket ist: " , ticket);
{
buy1 = OrderOpenPrice(); //Übernahme des Preises der 1. Order und Übertragung in diese Variable
// Comment("Order #1 open price is ", OrderOpenPrice() + " " + buy1 + " less than " + (buy1-0.0030));
wenn (buy1 >= (buy1-0,0030))
{
//wenn ( OrdersTotal() <= buy_trade1 ) //das stoppt, nachdem 1 Auftrag erteilt wurde.
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point);
//execute_trade=0;
}
} else
Print("OrderSelect lieferte den Fehler ",GetLastError());
}
NewB braucht etwas Hilfe bei der Codierung
Hallo zusammen,
ich benötige hier etwas Hilfe in verschiedenen Bereichen. Ich habe einige Code, der für eine Vereinbarung zwischen verschiedenen Indikatoren suchen wird. Sobald sie alle übereinstimmen, möchte ich einen Weg für die Trades in der Art, wie ich es in den Chart-Bilder beschrieben eingeben. Bisher kann ich den 1. "Buy"-Handel eingeben, aber es wird nicht nur 1 Handel eingegeben...., sondern bis zu 8 Geschäfte. Und dann, wenn der Markt gegen mich geht, gebe ich einen "Eventualhandel" ein, bei dem ich wieder kaufe/verkaufe, obwohl er gegen mich geht.Ich wäre sehr dankbar, wenn mir jemand zeigen könnte, wie der korrekte Code aussehen sollte
Ich bin mir nicht sicher, ob diese Bilder angezeigt werden, aber für den Fall habe ich sie auch als Anhänge.
Bild 1
Bild 2
Hier ist mein fehlerhafter Code, der den Handel ausführen soll...
while (execute_trade ==5)
{if ( OrdersTotal() == buy_trade1 ) //buy_trade1 = 1...dies stoppt, nachdem 1 Order platziert wurde...funktioniert aber noch nicht
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point);
execute_trade=0;
if(OrderSelect(ticket, SELECT_BY_TICKET, MODE_TRADES))
Print("Mein Ticket ist: " , ticket);
{
buy1 = OrderOpenPrice(); //Übernahme des Preises der 1. Order und Übertragung in diese Variable
// Comment("Order #1 open price is ", OrderOpenPrice() + " " + buy1 + " less than " + (buy1-0.0030));
wenn (buy1 >= (buy1-0,0030))
{
//wenn ( OrdersTotal() <= buy_trade1 ) //das stoppt, nachdem 1 Auftrag erteilt wurde.
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+ TakeProfit*Point);
//execute_trade=0;
}
}
sonst
Print("OrderSelect lieferte den Fehler ",GetLastError());
}