Hilfe bei der Codierung - Seite 95

 

Liebe alle, dass mein erster Schritt in einen Beitrag über Forex, so bitte versuchen Sie, freundlich zu sein, wenn ich etwas zu falsch sagen...

Diese Website ist einer der besten Orte, um über Forex zu lernen, und ich lese seit ein paar Jahren darüber. Ich möchte die Aufmerksamkeit auf diesen Link lenken: codebase.mql4.com/5900

Die ea ist RUBBERBANDS_2 EA von Autor: StJojo (2009.08.17 11:30). Es ist ziemlich interessant, wie es funktioniert, (nach einem Minimum an Optimierungsarbeit) auf jedem Währungspaar. Im Grunde könnte es als (erlauben Sie mir den Ausdruck..) halbautomatische automatisierte Strategie verwendet werden. Da es auf Seitwärtsmärkten sehr gut funktioniert, habe ich entdeckt, dass es in Nachrichtenintervallen aktiviert werden kann, wenn die Wahrscheinlichkeit eines Seitwärtsmarktes höher ist. Da ich denke, dass der Code vom Autor als Open Source zur Verfügung gestellt wird, würde ich gerne, wenn jemand die Idee mag, die Variable hinzufügen, damit es ab einer bestimmten Stunde/Minute funktioniert, um zu einer bestimmten Zeit/Stunde/Minute zu "quiesce" (d.h.: diesen EA zu quiesce, wenn die aktuelle Sitzung endet). Dies würde die "Vorprogrammierung" der Arbeitszeit des EA für den übernächsten Tag, bzw. für die nächsten Tage anstehenden News, wesentlich erleichtern. Ich habe die Datei aus dem obigen Link angehängt.

Ich fügte auch die "forex_ news_market_clock" Indikatoren, dass ist derjenige, den ich verwenden, um die neue auf dem Chart zu lesen.

Vielen Dank an alle für die Arbeit in dieser Website gemacht (und alle über das Netz... natürlich). Hoffe, jemand würde helfen, vielen Dank.

 
vitoingletto:
Liebe Alle, das ist mein erster Schritt in einen Beitrag über Forex, so bitte versuchen Sie, freundlich zu sein, wenn ich etwas zu falsch sagen...

Diese Website ist einer der besten Orte, um etwas über Forex zu lernen, und ich lese hier seit einigen Jahren. Ich möchte die Aufmerksamkeit auf diesen Link zu setzen:codebase.mql4.com/5900

Die ea ist RUBBERBANDS_2 EA von Autor: StJojo (2009.08.17 11:30). Es ist ziemlich interessant, wie es funktioniert, (nach einem Minimum an Optimierungsarbeit) auf jedem Währungspaar. Im Grunde könnte es als (erlauben Sie mir den Ausdruck..) halbautomatische automatisierte Strategie verwendet werden. Da es auf Seitwärtsmärkten sehr gut funktioniert, habe ich entdeckt, dass es in Nachrichtenintervallen aktiviert werden kann, wenn die Wahrscheinlichkeit eines Seitwärtsmarktes höher ist. Da ich denke, dass der Code vom Autor als Open Source zur Verfügung gestellt wird, würde ich gerne, wenn jemand die Idee mag, die Variable hinzufügen, damit es ab einer bestimmten Stunde/Minute funktioniert, um zu einer bestimmten Zeit/Stunde/Minute zu "quiesce" (d.h.: diesen EA zu quiesce, wenn die aktuelle Sitzung endet). Dies würde die "Vorprogrammierung" der Arbeitszeit des EA für den übernächsten Tag, bzw. für die nächsten Tage anstehenden News, wesentlich erleichtern. Ich habe die Datei aus dem obigen Link angehängt.

Ich habe auch die "forex_ news_market_clock" Indikatoren beigefügt, die ich verwende, um die neuen auf dem Chart zu lesen.

Vielen Dank an alle für die Arbeit in dieser Website gemacht (und alle über das Netz... natürlich). Ich hoffe, jemand kann mir helfen, vielen Dank.

Hallo Vitoingletto,

Danke für den EA, ich habe einen Zeitfilter und eine Freitagsschlussfunktion hinzugefügt und auch eine magische Zahl, um dem EA zu helfen, zwischen den Aufträgen etwas zu differenzieren.

Dateien:
 

hallo ...

ich frage mich, ob man im Code die Funktion, die Daten direkt exportiert alle auf einmal (m1, m5, m30, m15, h1, h4, d1 ...) offensichtlich in separaten Dateien setzen kann. Derzeit ist die und Sie haben es so viele Male zu starten ... (für jeden tmeframe).

Ich würde eine erhebliche Zeitersparnis beim Exportieren der Daten haben.

Sie können diese Funktion in Ihrem Code einfügen? eine Idee kann ähnlich wie dieses beigefügte Skript(Period_converter_auto - MQL4 Code Base), die die Daten alle in einem volta.Si kann in der Experten spielen verwandelt werden?

danke

 
dr.feelgood1989:
hallo ...

Ich frage mich, ob Sie in den Code die Funktion, die Daten exportiert direkt alle auf einmal (m1, m5, m30, m15, h1, h4, d1 ...) offensichtlich in separaten Dateien setzen können. Derzeit ist die und Sie haben es so viele Male zu starten ... (für jeden tmeframe).

Ich würde eine erhebliche Zeitersparnis beim Exportieren der Daten haben.

Sie können diese Funktion in Ihrem Code einfügen? eine Idee kann ähnlich wie dieses beigefügte Skript(Period_converter_auto - MQL4 Code Base), die die Daten alle in einem volta.Si kann in der Experten spielen transformiert werden?

danke

dr.feelgood1989

Verwenden Sie diesen und fügen Sie ihn einfach an alle Zeitrahmen an, die Sie exportiert haben möchten. Es wird eine Datei mit dem Namen Symbol+"_"+Zeitrahmen für jeden Zeitrahmen, den Sie betrachten, erstellt. Sie können sie als Vorlage für den Export Ihrer eigenen Indikatoren verwenden.

Dateien:
 

danke für die Antwort ... Mladen

eigentlich war ich schon so. Das Skript (Referenzbeispiel), das ich gepostet habe, bekommt den Auftrag einmal für alle Zeiträume (Konvertierung).

der Experte von ihr modifiziert "umschreiben" einen einzelnen Zeitrahmen (um die Datei zu unterscheiden), wenn es für einzelne Zeit verwendet wird

Ich habe mich gefragt, ob beim Starten eines einzelnen Experten alle anderen Zeitrahmen umgeschrieben werden (Beispiel: ea1m wird auf dem Tester gestartet und auch die Dateien werden in anderen Zeitrahmen m5, m15 ... geschrieben)

danke : )

 
mladen:
pgtips,

Wie sieht Ihre Hauptschleife aus (oder posten Sie einen Code, in dem Sie versuchen, das zu tun)

PS: Sie müssen den letzten Parameter von iOpen() und iClose() so ändern, dass er auf den richtigen Tag für einen ausgewählten Balken zeigt

Hallo Mladen,

Ich bin mit diesem Problem nicht weiterkommen, also habe ich nach einer anderen Möglichkeit gesucht, das Gleiche zu tun.

Nach mehrtägiger Suche fand ich den angehängten Indikator, der dem, was ich brauche, sehr nahe kommt, aber er wurde anders gestaltet.

Es zeigt die aktuelle Kerze (von täglich), aber es gibt keine iopen/close-Variable zu wählen, um einen Tag zurück zu zeigen, d.h. Verschiebung -1

Könnten Sie mir sagen, wie ich dies eine Verschiebung für x Tage zurück machen könnte. ? Wenn also der vorherige Tagesbalken rot war, dann wird die aktuelle Box rot, wenn der vorherige grün war, dann wird die aktuelle Box grün.

Ich kann den Breakout-Box-Indikator überlagern, aber es wäre wirklich gut, wenn dieser Indikator zeitlich begrenzt werden könnte.

Ich verstehe, dass Sie viel zu tun haben und Ihre Zeit umsonst zur Verfügung stellen, aber wenn Sie mir helfen könnten, wäre ich Ihnen sehr dankbar.

Vielen Dank!

PG

Dateien:
 

Hallo,

Ich bin immer noch Chipping weg an diesem.

In der beigefügten habe ich es geschafft, Pivot-Indikator zu verwenden, um mich Farbwechsel pro Tag basierend auf Vortag schließen dh prev Tag grün Tag oder rot.

Jetzt brauche ich, um Rechteck zu machen und füllen Sie es auf der Grundlage der Periode, die ich will, um zu sehen, es angezeigt Zeit von 11.00 Uhr bis sagen 17.00pm, die hohe und niedrige sein, was auch immer es stellt sich heraus, während dieser Zeit sein.

Ich setze //

ObjectCreate("Rectangle", OBJ_RECTANGLE, 0, Time[periodBegin], Low[1], Time[periodEnd], High[1]);

aber ich bekomme einen Fehler, es wird nichts angezeigt.

extern int ZeitraumBegin = 11; //11:00 Uhr

extern int periodEnd = 17; // 17:00 Uhr

Ich habe extern bool Plot_rectangles=true; gesetzt, so dass für jeden Tag etwas angezeigt werden sollte.

Was übersehe ich hier?

Vielen Dank!

PG

Dateien:
 

Ich glaube, ich weiß die Antwort auf meine Frage, aber... immer noch bestätigen wollen

a. der Indikator ein höherer Zeitrahmen ist

b. ist der aktuelle Zeitrahmen.

wie ich möchte mit a als basierte Trend b. als Eintrag kann dies getan werden?

 
mtuppers:
Ich glaube, ich kenne die Antwort auf meine Frage, aber... ich möchte sie noch bestätigen

a. Indikator ist höherer Zeitrahmen

b. ist der aktuelle Zeitrahmen.

wie ich möchte mit a als Grundlage Trend b. als Eintrag kann dies getan werden?

Ja, das können Sie.

Rufen Sie einfach a mit einem höheren Zeitrahmen im timeFrame-Parameter auf und das ist alles. Um Fallen beim Backtesting von EA mit mehreren Zeitrahmen zu vermeiden, verwenden Sie einen geschlossenen Balken für den Indikator mit mehreren Zeitrahmen (Index 1 statt 0), da Sie sonst unrealistisch gute Ergebnisse erhalten, da Metatrader beim Backtesting andere als die aktuellen Zeit rahmen aufruft.

 

hallo,

Ich hoffe, Sie können mir dabei helfen. Ich möchte, dass die Punkte (Pfeile; aqua&yellow) des indi in Fenster zwei als Punkte (Pfeile) auf dem Close (oder High für Kaufsignal/Low für Verkaufssignal) in Fenster eins (dem Hauptchartfenster) angezeigt werden. Ich habe es stundenlang versucht, aber ich werde nie ein Coder sein ;-)

#property indicator_separate_window

#Eigenschaft indicator_minimum -100.0

#eigenschaft indicator_maximum 100.0

#property indicator_levelcolor SchieferGrau

#Eigenschaft indicator_levelstyle 1

#Eigenschaft indicator_buffers 8

#property indicator_color1 Kalk

#eigenschaft indicator_color2 Rot

#eigenschaft indicator_color3 Schwarz

#Eigenschaft indicator_color4 Schwarz

#Eigenschaft indicator_color5 Schwarz

#Eigenschaftskennzeichen_color6 Schwarz

#Eigenschaft indicator_color7 Aqua

#Eigenschaft indicator_color8 Gelb

#Eigenschaft indicator_width1 1

#Eigenschaft indicator_level1 60.0

#Eigenschaft indicator_width2 1

#Eigenschaft indicator_level2 50.0

#Eigenschaft indicator_level3 -50.0

#eigenschaft indicator_level4 -60.0

extern int WavePeriod = 10;

extern int AvgPeriod = 21;

extern bool SoundAlert = FALSE;

extern bool EmailAlert = FALSE; extern bool EmailAlert = FALSE;

double g_ibuf_92[];

double g_ibuf_96[];

double g_ibuf_100[];

double g_ibuf_104[];

double g_ibuf_108[];

double g_ibuf_112[];

double g_ibuf_116[];

double g_ibuf_120[];

int gi_124 = -50;

int gi_128 = 50;

int gi_132;

int init() {

IndikatorKurzname("TrendWave");

SetIndexPuffer(0, g_ibuf_100);

SetIndexLabel(0, "ESA");

SetIndexStyle(0, DRAW_NONE);

SetIndexDrawBegin(0, 0);

SetIndexBuffer(1, g_ibuf_112);

SetIndexLabel(1, "DD-Werte");

SetIndexStyle(1, DRAW_NONE);

SetIndexDrawBegin(1, 0);

SetIndexBuffer(2, g_ibuf_104);

SetIndexLabel(2, "DD");

SetIndexStyle(2, DRAW_NONE);

SetIndexDrawBegin(2, 0);

SetIndexBuffer(3, g_ibuf_108);

SetIndexLabel(3, "CI");

SetIndexStyle(3, DRAW_NONE);

SetIndexDrawBegin(3, 0);

SetIndexBuffer(4, g_ibuf_92);

SetIndexLabel(4, "Bulle");

SetIndexStyle(4, DRAW_LINE, STYLE_SOLID, 1, Lime);

SetIndexDrawBegin(4, 0);

SetIndexBuffer(5, g_ibuf_96);

SetIndexLabel(5, "Bär");

SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 1, Rot);

SetIndexDrawBegin(5, 0);

SetIndexBuffer(6, g_ibuf_116);

SetIndexLabel(6, "Punkt kaufen");

SetIndexStyle(6, DRAW_ARROW, STYLE_SOLID, 2, Aqua);

SetIndexPfeil(6, 108);

SetIndexDrawBegin(6, 0);

SetIndexBuffer(7, g_ibuf_120);

SetIndexLabel(7, "Sell Dot");

SetIndexStyle(7, DRAW_ARROW, STYLE_SOLID, 2, Gelb);

SetIndexPfeil(7, 108);

SetIndexDrawBegin(7, 0);

ArrayResize(g_ibuf_100, Bars);

ArrayResize(g_ibuf_112, Balken);

ArrayResize(g_ibuf_104, Balken);

ArrayResize(g_ibuf_108, Balken);

ArrayResize(g_ibuf_92, Balken);

ArrayResize(g_ibuf_96, Balken);

ArrayResize(g_ibuf_116, Balken);

ArrayResize(g_ibuf_120, Balken);

return (0);

}

int start() {

double l_ima_on_arr_0;

int li_12 = IndicatorCounted();

if (li_12 < 0) return (-1);

wenn (li_12 > 0) li_12--;

int li_8 = Balken - li_12;

for (int li_16 = li_8; li_16 > 0; li_16--) {

g_ibuf_100[li_16] = iMA(NULL, 0, WavePeriod, 0, MODE_EMA, PRICE_TYPICAL, li_16);

ArraySetAsSeries(g_ibuf_100, TRUE);

}

for (li_16 = li_8; li_16 > 0; li_16--) {

g_ibuf_112[li_16] = MathAbs((iHigh(NULL, 0, li_16) + iClose(NULL, 0, li_16) + iLow(NULL, 0, li_16)) / 3.0 - g_ibuf_100[li_16]);

ArraySetAsSeries(g_ibuf_112, TRUE);

}

for (li_16 = li_8; li_16 > 0; li_16--) {

l_ima_on_arr_0 = iMAOnArray(g_ibuf_112, 0, WavePeriod, 0, MODE_EMA, li_16);

g_ibuf_104[li_16] = l_ima_on_arr_0;

ArraySetAsSeries(g_ibuf_104, TRUE);

}

for (li_16 = li_8; li_16 > 0; li_16--) {

if (g_ibuf_104[li_16] > 0.0) g_ibuf_108[li_16] = ((iHigh(NULL, 0, li_16) + iClose(NULL, 0, li_16) + iLow(NULL, 0, li_16)) / 3.0 - g_ibuf_100[li_16]) / (0,015 * g_ibuf_104[li_16]);

sonst g_ibuf_108[li_16] = 0;

ArraySetAsSeries(g_ibuf_108, TRUE);

}

for (li_16 = li_8; li_16 > 0; li_16--) {

l_ima_on_arr_0 = iMAOnArray(g_ibuf_108, 0, AvgPeriod, 0, MODE_EMA, li_16);

g_ibuf_92[li_16] = l_ima_on_arr_0;

ArraySetAsSeries(g_ibuf_92, TRUE);

}

for (li_16 = li_8; li_16 > 0; li_16--) {

l_ima_on_arr_0 = iMAOnArray(g_ibuf_92, 0, 4, 0, MODE_SMA, li_16);

g_ibuf_96[li_16] = l_ima_on_arr_0;

ArraySetAsSeries(g_ibuf_96, TRUE);

}

for (li_16 = li_8; li_16 > 0; li_16--) {

if (g_ibuf_92[li_16] >= g_ibuf_96[li_16] && g_ibuf_92[li_16 + 1] <= g_ibuf_96[li_16 + 1] && g_ibuf_92[li_16] < gi_124) {

g_ibuf_116[li_16] = g_ibuf_92[li_16];

SendAlert("buy");

} sonst g_ibuf_116[li_16] = -1000;

if (g_ibuf_92[li_16] = g_ibuf_96[li_16 + 1] && g_ibuf_92[li_16] > gi_128) {

g_ibuf_120[li_16] = g_ibuf_96[li_16];

SendAlert("sell");

} sonst g_ibuf_120[li_16] = -1000;

}

return (0);

}

void SendAlert(string as_0) {

if (Zeit[0] != gi_132) {

if (SoundAlert) {

if (as_0 == "buy") Alert(Symbol() + " => " + TimeToStr(TimeCurrent()) + " kaufen");

if (as_0 == "sell") Alert(Symbol() + " => " + TimeToStr(TimeCurrent()) + " verkaufen");

}

if (EmailAlert) {

if (as_0 == "buy") SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent()) + " kaufen");

if (as_0 == "sell") SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent()) + " sell");; SendMail("TrendWave Alert", Symbol() + " => " + TimeToStr(TimeCurrent()) + " verkaufen");

}

gi_132 = Time[0];

}

}