[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 38

 
nuan:

Die Charta bedeutet, dass sie den Auftrag in derselben Sekunde abschließt, nicht in 30 Minuten.


Ich habe den Code wie in Ihrem Beispiel eingefügt


Der Roboter schließt nicht aus anderen Gründen, d.h. er schließt nicht bei einem Stop oder bei Gewinn.


1 29.07.2011 00:00 kaufen 1 0,01 1,4328 1,3328 1,5328 0,00 1000,00
2 29.07.2011 00:01 Schluss 1 0,01 1,4327 1,3328 1,5328 -0,10 999,90
3 29.07.2011 00:01 kaufen 2 0,01 1,4329 1,3329 1,5329 0,00 999,90
4 29.07.2011 00:01 close 2 0,01 1,4326 1,3329 1,5329 -0,30 999,60
5 29.07.2011 00:01 kaufen 3 0,01 1,4328 1,3328 1,5328 0,00 999,60
6 29.07.2011 00:03 Schluss 3 0,01 1,4327 1,3328 1,5328 -0,10 999,50
7 29.07.2011 00:03 kaufen 4 0,01 1,4329 1,3329 1,5329 0,00 999,50
8 29.07.2011 00:03 close 4 0,01 1,4329 1,3329 1,5329 0,00 999,50


Setzen Sie alles ganz ans Ende der Funktion start(). Ihre Tätigkeit sollte Vorrang haben.

datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPosTime();
 
nuan:
Ersetzen Sie in start() durch diese Option:
 datetime CloseTime;
//=====================
 int start(){

   if(TimeCurrent()-CloseTime > 30*60){CloseAllPos();CloseTime=TimeCurrent();}//Можно поставить в любом месте функции старт.
  return(0);
 }
//====================
 
forexnew:

Ich habe verstanden.

Wie wäre es, wenn Sie ein Konto mit einem Startguthaben von 0 $ eröffnen und die erste Aufladung als Aufstockung betrachten. Ist es möglich, programmatisch alle Auffüllungen (einschließlich der ersten) zu ermitteln, die auf dem Konto vorgenommen wurden?


:-Р

Du ruderst in die falsche Richtung... :-)))

Es gibt eine Funktion

double AccountBalance( ) 

Mit seiner Hilfe können Sie den Stand Ihres Kontostandes durch geschlossene Geschäfte zu einem bestimmten Zeitpunkt bestimmen.

Dann - nehmen wir an, Sie sind in den Markt eingestiegen - schwebendes Defizit auf Ihrem Konto mit offenen Positionen, und dann zahlen Sie Geld auf Ihr Konto ein... Hier sollten wir die Höhe der Aufteilung (wenn es eine gibt) bestimmen, um das Volumen (nach oben) der eröffneten Positionen zu korrigieren, um die anfängliche "Toleranz" für Drawdown/Gewinn, z. B. in Prozentpunkten des Kapitals, zu erhalten, aus dem das Volumen der "ursprünglichen" Marktpositionen (vor der Aufteilung) berechnet wurde. Was ist die Lösung für dieses Problem?

 
CloseTime 
Нужно задавать этот параметр? если да то как?
 
nuan:


Lassen Sie es. Es handelt sich um eine "Zwischenzeit"-Variable, die immer gleich der letzten Schließzeit ist.

Die Betriebszeit wird in Sekunden eingestellt. In Ihrem Fall ist es 30*60.
Sie können 30 durch eine Variable ersetzen, z. B. exstern int closetime = 30.
Dann sieht die Zeit wie folgt aus: Schließzeit*60.

 
charter:


Tun Sie es nicht. Es handelt sich um eine "Zwischenzeit"-Variable, die immer gleich der letzten Schließzeit ist.

Die Betriebszeit wird in Sekunden eingestellt. In Ihrem Fall ist es 30*60.
Sie können 30 durch eine Variable ersetzen, z. B. exstern int closetime = 30.
Dann sieht die Zeit wie folgt aus: Schließzeit*60.

Habe gerade dasselbe versucht, ist am Ende des Körpers gestartet.... Ich verstehe nicht, warum das so ist. Vielleicht gibt es eine andere Möglichkeit?
 
Roman.:


:-Р

Du ruderst in die falsche Richtung... :-)))

Es gibt eine Funktion

Mit seiner Hilfe können Sie den Stand Ihres Handelskontos für geschlossene Geschäfte zu einem bestimmten Zeitpunkt ermitteln.

Dann - nehmen wir an, Sie sind in den Markt eingestiegen - schwebendes Defizit auf Ihrem Konto mit offenen Positionen, und dann zahlen Sie Geld auf Ihr Konto ein... Hier sollten wir die Höhe der Aufteilung (wenn es eine gibt) bestimmen, um das Volumen (nach oben) der eröffneten Positionen zu korrigieren, um die anfängliche "Toleranz" für Drawdown/Gewinn, z. B. in Prozentpunkten des Kapitals, beizubehalten, aus dem das Volumen der "ursprünglichen" Marktpositionen (vor der Aufteilung) berechnet wurde. Was ist die Lösung für dieses Problem?


Wenn Sie zunächst das Verhältnis von StartBalance (Startguthaben) zu StarLots (Startlos) entsprechend den angegebenen Risiken ermittelt haben, sollte der Eigenkapitalwert bestimmt werden:

if(Kontoguthaben()<Startguthaben) Aufstockung = (Kontoguthaben()+(Startguthaben-Kontoguthaben()))*Neues Lot/StarLots

Dies gilt nicht für AccountCredit(). Wenn ich Sie richtig verstehe, natürlich.

 
nuan:
Habe gerade dasselbe versucht, ist am Ende des Körpers gestartet.... Ich verstehe nicht, warum dies der Fall ist. Vielleicht gibt es eine andere Möglichkeit?
Suchen Sie nach einem Fehler in etwas anderem.
Beide Optionen sollten funktionieren.
 
herzlichen Dank!
 

Hallo zusammen. Ich habe eine Frage an Sie. Ich muss das nächstgelegene Maximum und Minimum finden. Aber sie sollten innerhalb von + - 10 Punkten von Open[0] liegen;

Ich habe es jetzt so:

for (int i=1;i<100;i++)

if (High[i+1]<High[i] && High[i]>High[i-1] break;

findet er das nächstgelegene Maximum,

Wenn ich den Vergleich High[i]>(Open[0]+0.0010) und High[i]<(Open[0]+0.0020) hinzufüge, sieht es folgendermaßen aus

if (High[i+1]<High[i] && High[i]>High[i-1] && High[i]>(Open[0]+0,0010) && High[i]<(Open[0]+0,0020) break;

Das Programm ermittelt den falschen Höchstwert, wo liegt das Problem?

Ich habe das Minimum noch nicht ausprobiert.

Grund der Beschwerde: