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

 
snail09:
Werfen Sie den Algorithmus in Worte, denn er ist ein wenig unklar...

Ungefähr wie folgt:

//Bestimmen Sie die Gesamtzahl der Handelstage.

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);

Tage=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);

Berechnen Sie dann für den angegebenen Zeitraum den Gewinn/Tage = %/Tag

Ich muss die Wochenendtage für diesen gesamten Zeitraum berechnen und von der Berechnung ausschließen:

Gewinn/(freie Tage)

 

forexnew:

Ungefähr wie folgt:

//Bestimmen Sie die Gesamtzahl der Handelstage.

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);

Tage=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);

Berechnen Sie dann für den angegebenen Zeitraum den Gewinn/Tage = %/Tag

Ich muss die Wochenendtage für diesen gesamten Zeitraum berechnen und von der Berechnung ausschließen:

Gewinn/(freie Tage)



Überprüfen Sie, ob Sie die erforderliche Historie für den Zeitraum haben und berechnen Sie Ihren "Gewinn/Tage". Verwenden Sie einfach keinen Kalender (Konstanten in Ihrer Formel) und das war's. In die Historie gehen nur Handelstage ein (es gibt auch Feiertage). Binden Sie sich z. B. an die Tagesbalken.

Wenn Sie einen bestimmten Kalender (z. B. Gregorianisch oder Julianisch) verwenden möchten. Was ist der Trick, gibt es eine neue Bar, gibt es einen neuen Song?

 
forexnew:

Ungefähr wie folgt:

//Bestimmen Sie die Gesamtzahl der Handelstage.

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);

Tage=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24) + 1);

Berechnen Sie dann für den angegebenen Zeitraum den Gewinn/Tage = %/Tag

Ich muss die Wochenendtage für diesen gesamten Zeitraum berechnen und von der Berechnung ausschließen:

Gewinn/(freie Tage)



Sie können die Anzahl der täglichen Balken seit dem Startdatum des Tests berechnen.

Sie können die Anzahl der täglichen Balken mit mehr als 20 Stunden zählen (um arbeitsfreie Tage auszuschließen). Sie können einen neuen Tag verfolgen, als ob ein neuer Balken erschienen wäre, und so weiter (wie die gesamte Historie der Trades lesen und einzigartige Daten berechnen).

 
splxgf:

Sie können die Anzahl der täglichen Balken seit dem Startdatum des Tests zählen.

Sie können die Anzahl der Tagesbalken mit mehr als 20 Stundenbalken zählen (um unvollständige Wochenenden auszuschließen). Sie können einen neuen Tag verfolgen, wenn ein neuer Balken erscheint, und so weiter (wie das Lesen der gesamten Geschichte des Handels und das Zählen der einzelnen Daten).

Auf jeden Fall ist "(3600*24) + 1)" keine angemessene Konstruktion, wir sollten von der Anzahl der Takte ausgehen.
 
snail09:

Prüfen Sie, ob Sie die erforderliche Historie für den Zeitraum haben und zählen Sie Ihren "Gewinn/Tage". Verwenden Sie einfach keine Kalenderwerte (Konstanten in Ihrer Formel) und das war's. In die Historie gehen nur Handelstage ein (es gibt auch Feiertage). Binden Sie sich z. B. an die Tagesbalken.

Wenn Sie einen bestimmten Kalender (z. B. Gregorianisch oder Julianisch) verwenden möchten. Was ist der Trick, gibt es eine neue Bar, gibt es einen neuen Song?

Ich habe es auf diese Weise gemacht:

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24));
for(i=0; i<Days; i++)
{
if(TimeDayOfWeek(CurTime()-i*24*3600)==6 || TimeDayOfWeek(CurTime()-i*24*3600)==7) Days3++;
}
Tage-=Tage3;

 
forexnew:

Ich habe dies getan:

OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);
Days=MathRound((TimeCurrent()-OrderOpenTime())/(3600*24));
for(i=0; i<Days; i++)
{
if(TimeDayOfWeek(CurTime()-i*24*3600)==6 || TimeDayOfWeek(CurTime()-i*24*3600)==7) Days3++;
}
Tage-=Tage3;

nein, mit dieser Auftragsauswahl wählen Sie Aufträge in der Historie aus (EINMAL), und gehen dann nur einen (den letzten). Ist nicht alles verwirrend?

Führen Sie eine Auftragssuche in der Schleife durch, und wenden Sie Ihre Bedingungen auf jeden Auftrag an.

// Durchsuche alle Aufträge in der Schleife

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

{

if(OrderSelect(i,SELECT_BY_POS, MODE_HISTORY))

{

// Wenn das Symbol und die magische Zahl übereinstimmen, ist die Bestellung unsere

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

// Sehen Sie hier nach.

}

}

}

 
snail09:

Nein, mit dieser Auftragsauswahl wählen Sie Aufträge in der Historie aus (EINMAL) und gehen dann nur zu einem (dem letzten). Ist nicht alles verwirrend?

Gehen Sie die Aufträge in der Schleife durch, und wenden Sie auf jeden Auftrag Ihre eigenen Bedingungen an.

// Durchsuche alle Aufträge in der Schleife

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

{

if(OrderSelect(i,SELECT_BY_POS, MODE_HISTORY))

{

// Wenn das Symbol und die magische Zahl übereinstimmen, ist die Bestellung unsere

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

// Sehen Sie hier nach.

}

}

}

Warum brauche ich Haftbefehle? Ich muss lediglich einzelne Wochentage ermitteln, an denen kein Handel stattfindet, d. h. Samstag und Sonntag werden von der Gesamtzahl der Tage abgezogen.
 

Nun, natürlich habe ich mich geirrt:

TimeDayOfWeek(CurTime()-i*24*3600)==7

anstelle von 7 sollte es 0 sein.

Überprüft, bei Konten, die über eine Woche alt sind. Sie scheint korrekt angezeigt zu werden.

 

Wie wird der iMA berechnet?


Avatar
90
Eugene1 20.10.2011 16:34

Kann ich irgendwo nachlesen, wie die iMA-Funktion berechnet wird (oder ist sie klassifiziert)?

Ich interessiere mich besonders für MODE_LWMA.

Ich möchte aussehen und optimieren nach meinem Geschmack, aber etwas Google-Quellen nicht bekommen

 
forexnew:

Nun, natürlich habe ich mich geirrt:

TimeDayOfWeek(CurTime()-i*24*3600)==7

anstelle von 7 sollte es 0 sein.

Überprüft, bei Konten, die über eine Woche alt sind. Sie scheint korrekt angezeigt zu werden.

Nun, dann eben nicht. Wenn Ihr Experte keine Kontrolle über seine Aufträge hat, was macht er dann überhaupt? ...einen Prüfer einschalten?