Wie programmiert man? - Seite 223

 

...

Ich denke (da ich Ihren EA nicht sehen kann, der die Werte in eine csv-Datei schreibt), dass Ihnen ein FileFlush() fehlt. In Fällen, in denen Sie Änderungen in der Datei für "andere" sofort zugänglich machen wollen, ohne die Datei zu schließen (was implizit flush verwendet), sollten Sie die Änderungen immer auf die Festplatte flushen

Grüße

mladen

sunshineh:
Hallo!

Ich schreibe gerade einen EA, der mit CSV-Dateien arbeitet.

Zum Testen habe ich meine CSV-Dateien in den folgenden Ordner gelegt:

/tester/files

Hier ist nur ein kleiner Ausschnitt aus meinem EA:

int handle = 0;

int Long = 0;

handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');

if (handle > 0)

{

Long= FileReadNumber(handle);

FileClose(handle);

}

Print("LongMarket = ", Long);

Print("Long handle = ", handle);

In meinem EA lese ich die CSV-Dateien und schreibe dann einige Zahlen auf.

Wenn ich nun meinen Test mache und im Journal die "Print"-Nachrichten lese, erhalte ich oft alte Zahlen, die nicht mehr in den CSV-Dateien stehen!!!

Zum Beispiel:

Zuerst steht da eine 3 und mein EA arbeitet und schreibt die 0 in die Datei,

Ich kann nur noch die 3 in der CSV-Datei sehen!!

Wenn ich diese CSV-Datei lösche und eine neue CSV-Datei mit 3 in den " /tester/files"-Ordner lege, kann ich nur noch die 0 aus dem Test davor lesen!!!! Aber ich kann nicht finden, wo der EA die 0 liest!!!

Ich werde verrückt!!!!!

Ich hoffe, Sie können meine Frage verstehen und mir einen Tipp geben!!!
 

Kann mir jemand helfen, eine Warnfunktion hinzuzufügen?

Ich möchte eine Alarmfunktion dieses Indikators, Farbalarm hinzufügen. Ich habe versucht, für eine lange Zeit, verwenden Sie die "wenn Alarm", aber nie ohne Erfolg. Kann mir jemand helfen? Ich danke Ihnen sehr! ~ Mein Englisch ist nicht gut, so sorry.

#property indicator_chart_window

#property indicator_buffers 4

#property indicator_color1 WaldGrün

#property indicator_color2 Rot

#property indicator_color3 Schwarz

#eigenschaft indicator_color4 Schwarz

//---- Eingabeparameter

extern int FastClosePeriod=13;

extern int FastCloseShift=0;

extern int FastOpenPeriod=34;

extern int FastOpenShift=0;

extern int SlowClosePeriod=34;

extern int LangsamSchließenVerschiebung=0;

extern int SlowOpenPeriod=62;

extern int SlowOpenShift=0;

//---- Indikatorpuffer

double ExtBlueBuffer[];

double ExtRedBuffer[];

double ExtDarkVioletBuffer[];

double ExtBlackBuffer[];

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

//| Benutzerdefinierte Indikator-Initialisierungsfunktion |

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

int init()

{

//---- Zeilenverschiebung beim Zeichnen

SetIndexShift(0,FastCloseShift);

SetIndexShift(1,FastOpenShift);

SetIndexShift(2,SlowCloseShift);

SetIndexShift(3,SlowOpenShift);

//---- ersten Positionen, die beim Zeichnen übersprungen werden

SetIndexDrawBegin(0,FastCloseShift+FastClosePeriod);

SetIndexDrawBegin(1,FastOpenShift+FastOpenPeriod);

SetIndexDrawBegin(2,SlowCloseShift+SlowClosePeriod);

SetIndexDrawBegin(3,SlowOpenShift+SlowOpenPeriod);

//---- Zuordnung von 3 Indikatorpuffern

SetIndexPuffer(0,ExtBluePuffer);

SetIndexPuffer(1,ExtRedPuffer);

SetIndexBuffer(2,ExtDarkVioletBuffer);

SetIndexBuffer(3,ExtBlackBuffer);

//---- Zeichnungseinstellungen

SetIndexStyle(0,DRAW_HISTOGRAM,0,2);

SetIndexStil(1,DRAW_HISTOGRAM,0,2);

SetIndexStyle(2,DRAW_NONE,0,2);

SetIndexStyle(3,DRAW_NONE,0,2);

//---- Indexbeschriftungen

SetIndexLabel(0, "FastClose");

SetIndexLabel(1, "FastOpen");

SetIndexLabel(2, "SlowClose");

SetIndexLabel(3, "LangsamÖffnen");

//---- Initialisierung abgeschlossen

return(0);

}

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

//| 9Squared Trader |

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

int start()

{

int limit;

int counted_bars=IndicatorCounted();

//---- Prüfung auf mögliche Fehler

if(gezählte_Balken<0) return(-1);

//---- letzte gezählte Balken wird neu gezählt

if(gezählte_Balken>0) gezählte_Balken--;

limit=Balken-gezählt_Balken;

//---- Hauptschleife

for(int i=0; i<limit; i++)

{

//---- ma_shift auf 0 gesetzt, da SetIndexShift zuvor aufgerufen wurde

ExtBlueBuffer=iMA(NULL,0,FastClosePeriod,0,MODE_EMA,PRICE_CLOSE,i);

ExtRedBuffer=iMA(NULL,0,FastOpenPeriod,0,MODE_EMA,PRICE_OPEN,i);

ExtDarkVioletBuffer=iMA(NULL,0,SlowClosePeriod,0,MODE_EMA,PRICE_OPEN,i);

ExtBlackBuffer=iMA(NULL,0,SlowOpenPeriod,0,MODE_EMA,PRICE_MEDIAN,i);

}

//---- erledigt

return(0);

 
 
Dateien:
example.gif  12 kb
example.mq4  3 kb
 
wolfe:
Hier ist es. Ich habe das sehr schnell gemacht, und ja, es ist machbar.

Schauen Sie sich die angehängte example.mq4 als Beispiel für die Codierung an.

Außerdem ist ein Screenshot mit Kommentaren enthalten, damit Sie sehen können, dass die RSI-Werte Tick für Tick im Array gespeichert werden.

Hallo wolfe,

vielen Dank für deinen Timer und deine Bemühungen. Ich werde es versuchen

Grüße,

MSV

 
 

Bollinger Band

Hallo!

Kann mir jemand bei der Anwendung der Bollinger Band Formel (20period dev 2 on close) in Excel helfen. Vielen Dank im Voraus.

 

Hallo Leute!!!

Ich brauche, um nur zu öffnen "ein Kauf und Verkauf "Auftrag "pro Tag" in meinem EA, bitte, wie ist der Code, dies zu tun?

 
Apolofx:
Hallo Leute! Ich muss nur "eine Kauf- und Verkaufs"-Order "pro Tag" in meinem EA öffnen, bitte, wie ist der Code, um dies zu tun?

Ich glaube, Sie müssen eine Schleife durch alle geschlossenen Aufträge und überprüfen Sie jede für sein Symbol und schließen Zeit ... nehmen Sie die eine, die Symbol() übereinstimmt und hat die letzte Zeit zu schließen. dann fügen Sie 24 Stunden und verwenden Sie, dass in einer Variable, um die aktuelle Zeit zu testen und Handel zu öffnen, wenn es letzte Bestellung + 24 Stunden erreicht

 

Eine einfachere Möglichkeit wäre, die Funktion TimeDayOfYear zu verwenden und den letzten abgeschlossenen Auftrag mit passendem Symbol und magischer Zahl zu prüfen. Stellen Sie nur sicher, dass es nicht derselbe Tag des Jahres ist wie heute.

Schauen Sie in der Hilfedatei nach der Definition und Verwendung von TimeDayOfYear

Mit freundlichen Grüßen

Lux

Grund der Beschwerde: