[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 207

 

Die Berechnung der Marge pro 1 Lot ist sehr einfach:

  double МАРЖА=MarketInfo(Symbol(),MODE_MARGINREQUIRED);
  double МАРЖАИНИ=MarketInfo(Symbol(),MODE_MARGININIT);
  double МАРЖАПОДД=MarketInfo(Symbol(),MODE_MARGINMAINTENANCE);
  double МАРЖАЛОК=(MarketInfo(Symbol(),MODE_MARGINHEDGED)*2)/MarketInfo(Symbol(),MODE_LOTSIZE);

Die Rückgabewerte sind in der Währung der Einzahlung.

Bitte beachten Sie, dass der Wert 0 zurückgegeben werden kann und dies die Norm ist.

Einige Dealing Desks verwenden keine Initialisierungs- und/oder Unterstützungsspannen.

Sie verwenden auch den "Nullrand" der überlappenden...

*

Info-Typ Berechnung von überlappenden, im Prinzip, Option:

  string МАРЖАЛОКИД="na";
  if( МАРЖАЛОК==0)    МАРЖАЛОКИД="0";
  if( МАРЖАЛОК==1)    МАРЖАЛОКИД="1";
  if( МАРЖАЛОК==0.5)  МАРЖАЛОКИД="1D";
  if( МАРЖАЛОК==2)    МАРЖАЛОКИД="2";  
 
kombat >> :

Die Berechnung der Marge pro Lot ist sehr einfach: ....

Das ist nicht das, was er wollte. Er muss die Marge der offenen Aufträge getrennt nach Instrumenten berechnen. Das heißt, man summiert die Lose nach Instrumenten und multipliziert sie mit der Marge des Instruments.

 
granit77 >> :

Das ist nicht das, was er wollte. Er muss die Marge der offenen Aufträge getrennt nach Instrumenten berechnen. Dies bedeutet, dass die Lose je Instrument summiert und mit der Marge des Instruments multipliziert werden.

Nun, das ist ganz einfach: Jedes Instrument hat seinen eigenen Summolot*Margin

Wir kennen die Gewinnspanne, wir kennen das Bruttoergebnis:

double SumLot(){ double buy=0, sell=0, sl; int y;
for( y=0; y<OrdersTotal(); y++) {OrderSelect( y, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol() && OrderType()==0) buy+=OrderLots();
if(OrderSymbol()==Symbol() && OrderType()==1) sell+=OrderLots();
} return( buy- sell);}
 
kombat писал(а) >>

Die Berechnung der Marge pro 1 Lot ist sehr einfach:

Die Rückgabewerte sind in der Währung der Einzahlung.

Bitte beachten Sie, dass der Wert 0 zurückgegeben werden kann und dies die Norm ist.

Einige Dealing Desks verwenden keine Initialisierungs- und/oder Unterstützungsspannen.

Außerdem werden "Nullrand"-Überschneidungen verwendet...

*

Info-Typ Berechnung der überlappenden, grundsätzlich eine Option:

Ich danke Ihnen.

Was ist der Unterschied zwischen der Initialisierungs- und Unterstützungsmarge und der normalen Marge - wofür werden sie verwendet?

 
Finbest >> :

Ich danke Ihnen.

Was ist der Unterschied zwischen Initialisierungs- und Unterstützungsrändern und regulären Rändern - wofür werden sie verwendet?

Dies ist der Werkzeugkasten für die Zukunft.

m.init = Erforderliche Marge zum Öffnen

m.subd = wird nach dem Öffnen angezeigt

Die Berechnungen sind recht komplex und spezifisch, so dass ich mich an den Handelsbedingungen orientiere.

m.subd normalerweise ~75% von m.ini, Beispiele hier...

 

Eine weitere Möglichkeit besteht darin, die Margen getrennt nach Instrumenten zu betrachten.

(leicht geänderte iExposure )

Dateien:
 

Hallo. Hilfe, bitte.

Ich habe dieses Programm geschrieben... es funktioniert nicht...


double ves[][6], hour[][6];
ArrayCopyRates(ves, Symbol(), Period());// Array enthält alle Daten aus dem Diagramm

int day= Day();
int hou= Hour();
da= day;
for (; q<= da; q++, w--){
if (TimeDay(ves[q][0])== w && TimeHour(ves[q][0])== hou){
ArrayCopy(hour, ves, e, q);
e++;
}
}

Ich habe zwei Arrays. ves-Array ist ein Zeit-Array.

was ich brauche........

Nehmen Sie die aktuelle Stunde. von ves kopieren auf Stunde. alle 6 Daten.

nehmen Sie den gestrigen Tag die gleiche Stunde (gestriger Tag) von ves kopiert zu Stunde.

und so weiter...

 

Leute, Hilfe, ich weiß nicht, wie ich das machen soll.

Ich habe eine Schleife, die die Pegel zwischen LOW und HI mit Step Step berechnet.

for ( double c = LOW; c < HI; c = c + Step)

Jetzt muss ich jede Stufe irgendwo speichern, damit ich sie später leicht herausziehen und mit dem aktuellen Preis vergleichen kann. Sehr viel bitte in Form von Code, nicht aus Faulheit, sondern weil, bis ich das Beispiel sehe ich immer noch nicht verstehen, wie es zu tun. Ich danke Ihnen!

 

Hallo, geschätzte Kenner. Ich stelle Ihnen immer wieder Fragen, auf die ich im Lehrbuch und im Forum keine Antworten finden kann. Wie kann diese Situation sein?

Warum wurde im Test, der einen Gewinn von 0 anzeigte, beim dritten Handel die Losgröße plötzlich erhöht?

Sie wird wie folgt berechnet: Lots=MathMin(20,NormalizeDouble(MathMax(Lots,AccountEquity( ) /3000),1));

TEST


Symbol EURCHF (Euro gegenüber Schweizer Franken)
Zeitraum 1 Minute (M1) 2009.08.30 23:02 - 2009.08.31 09:34 (2009.08.30 - 2009.09.05)
Modell Alle Ticks (genaueste Methode auf der Grundlage aller kleinsten verfügbaren Zeitrahmen)
Parameter min=0,1;

Bars in der Geschichte 1519 Modellierte Zecken 2156 Qualität der Modellierung 24.95%
Diagrammabweichungsfehler 0




Ersteinlage 450.00



Reingewinn -8.00 Gesamtgewinn 0.00 Totalverlust -8.00
Rentabilität 0.00 Erwartete Auszahlung -2.00

Absoluter Drawdown 32.00 Maximale Absenkung 38.00 (8.33%) Relative Absenkung 8.33% (38.00)

Handel insgesamt 4 Short-Positionen (% Gewinn) 1 (0.00%) Long-Positionen (% Gewinn) 3 (100.00%)

Gewinnbringende Geschäfte (% von allen) 3 (75.00%) Verlustgeschäfte (% von allen) 1 (25.00%)
Größte ertragreicher Handel 0.00 Verlustgeschäft -8.00
Durchschnitt profitables Geschäft 0.00 Verlust des Geschäfts -8.00
Maximale Anzahl kontinuierliche Gewinne (Gewinn) 3 (0.00) Kontinuierliche Verluste (Verlust) 1 (-8.00)
Maximum Kontinuierlicher Gewinn (Anzahl der Siege) 0.00 (0) Kontinuierlicher Verlust (Anzahl der Verluste) -8.00 (1)
Durchschnitt laufende Gewinne 3 Kontinuierlicher Verlust 1

Zeit Typ Bestellung Band Preis S / L T / P Gewinn Bilanz
1 2009.08.31 00:16 kaufen 1 0.30 1.5161 1.5127 1.5163
2 2009.08.31 00:37 schließen 1 0.30 1.5161 1.5127 1.5163 0.00 450.00
3 2009.08.31 00:44 kaufen 2 0.30 1.5158 1.5124 1.5161
4 2009.08.31 02:58 schließen 2 0.30 1.5158 1.5124 1.5161 0.00 450.00
5 2009.08.31 03:14 kaufen 3 0.40 1.5152 1.5118 1.5154
6 2009.08.31 03:30 schließen 3 0.40 1.5152 1.5118 1.5154 0.00 450.00
7 2009.08.31 06:45 verkaufen 4 0.40 1.5151 1.5185 1.5149
8 2009.08.31 08:18 schließen 4 0.40 1.5153 1.5185 1.5149 -8.00 442.00








































































 
001 >> :

Leute, Hilfe, ich weiß nicht, wie ich das machen soll.

Ich habe eine Schleife, die die Pegel zwischen LOW und HI mit Step Step berechnet.

for ( double c = LOW; c < HI; c = c + Step)

Jetzt muss ich jede Stufe irgendwo speichern, damit ich sie später leicht herausziehen und mit dem aktuellen Preis vergleichen kann. Sehr viel bitte in Form von Code, nicht aus Faulheit, sondern weil, bis ich das Beispiel sehe ich immer noch nicht verstehen, wie es zu tun. Ich danke Ihnen!

Als Option:

double c, levels[];
int nCount = 1+( HI - LOW)/ Step;
ArrayResize( levels, nCount);

for ( c = LOW, nCount = 0; c < HI; c += Step, nCount++) {
    levels[ nCount] = c;
}

// Use:
for (int j = 0; j < nCount; j++) {
    if ( levels[ j] > ...) {
        //...
    }
}