[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 207

 

Il calcolo del margine per 1 lotto è molto semplice:

  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);

I valori di ritorno sono nella valuta del deposito.

Si prega di notare che possono restituire 0 e questa è la norma.

Alcuni Dealing Desk non usano margini di inizializzazione e/o supporto.

Usano anche il "margine zero" della sovrapposizione...

*

Calcolo di tipo informativo della sovrapposizione, in linea di principio, opzione:

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

Il calcolo del margine per lotto è molto semplice:....

Non è quello che voleva. Ha bisogno di calcolare il margine degli ordini aperti separatamente per strumento. Cioè, sommare i lotti per strumento e moltiplicare per il margine dello strumento.

 
granit77 >> :

Questo non è quello che voleva. Ha bisogno di calcolare il margine degli ordini aperti separatamente per strumento. Questo significa sommare i lotti per strumento e moltiplicare per il margine dello strumento.

Beh, è semplice, ogni strumento ha il suo summolot*margine

Conosciamo il margine, conosciamo il lordo:

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 писал(а) >>

Il calcolo del margine per 1 lotto è molto semplice:

I valori di ritorno sono nella valuta del deposito.

Si prega di notare che possono restituire 0 e questa è la norma.

Alcuni Dealing Desk non usano margini di inizializzazione e/o supporto.

Inoltre, le sovrapposizioni a "margine zero" sono usate...

*

Calcolo di tipo informativo della sovrapposizione, per principio, un'opzione:

Grazie.

Qual è la differenza tra margine di inizializzazione e di supporto e margine normale - a cosa servono?

 
Finbest >> :

Grazie.

Qual è la differenza tra i margini di inizializzazione e di supporto e i margini regolari - a cosa servono?

Questo è il toolkit dei futures.

m.init = margine richiesto per aprire

m.subd = visualizzato dopo l'apertura

I calcoli sono abbastanza complessi e specifici, quindi sono guidato dalle condizioni di spaccio.

m.subd di solito ~75% di m.ini, esempi qui...

 

Un'altra opzione è guardare i margini separatamente per strumento.

(iExposure leggermente modificato)

File:
 

Ciao. Aiuto, per favore.

Ho scritto questo programma... non funziona...


double ves[][6], hour[][6];
ArrayCopyRates(ves, Symbol(), Period());// l'array ha tutti i dati dal grafico

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++;
}
}

Ho due array. ves è un array di tempo.

di cosa ho bisogno........

prendere l'ora corrente. da ves copiare all'ora. tutti i 6 dati.

prendere il giorno di ieri la stessa ora (il giorno di ieri) da ves è copiata in ora.

e così via...

 

Ragazzi, aiuto, non riesco a capire come fare.

Ho un ciclo che calcola i livelli tra LOW e HI con step Step.

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

Ora ho bisogno di memorizzare ogni livello da qualche parte in modo che sia facile tirarlo fuori più tardi e confrontarlo con il prezzo corrente. Molto volentieri sotto forma di codice, non per pigrizia, ma perché finché non vedo un esempio ancora non capisco come fare. Grazie!

[Eliminato]  

Salve, stimati intenditori. Continuo a farvi domande a cui non riesco a trovare risposte nel libro di testo e nel forum. Come può essere questa situazione?

Perché nel test, che mostra un profitto di 0, al terzo trade la dimensione del lotto è improvvisamente aumentata?

Si calcola così Lots=MathMin(20,NormalizeDouble(MathMax(Lots,AccountEquity( ) /3000),1));

TEST


Simbolo EURCHF (euro contro franco svizzero)
Periodo 1 minuto (M1) 2009.08.30 23:02 - 2009.08.31 09:34 (2009.08.30 - 2009.09.05)
Modello Tutte le zecche (metodo più accurato basato su tutti i più piccoli timeframe disponibili)
Parametri min=0,1;

Bar nella storia 1519 Zecche modellate 2156 Qualità della modellazione 24.95%
Errori di mancata corrispondenza dei grafici 0




Deposito iniziale 450.00



Utile netto -8.00 Profitto totale 0.00 Perdita totale -8.00
Redditività 0.00 Payoff previsto -2.00

Drawdown assoluto 32.00 Massimo prelievo 38.00 (8.33%) Prelievo relativo 8.33% (38.00)

Totale scambi 4 Posizioni corte (% vittoria) 1 (0.00%) Posizioni lunghe (% vittoria) 3 (100.00%)

Operazioni redditizie (% di tutte) 3 (75.00%) Operazioni in perdita (% di tutte) 1 (25.00%)
Il più grande commercio redditizio 0.00 transazione perdente -8.00
Media affare redditizio 0.00 Perdita dell'affare -8.00
Numero massimo vittorie continue (profitto) 3 (0.00) Perdite continue (perdita) 1 (-8.00)
Massimo Profitto continuo (numero di vittorie) 0.00 (0) Perdita continua (numero di perdite) -8.00 (1)
Media vincite continue 3 Perdita continua 1

Tempo Tipo Ordina Volume Prezzo S / L T / P Profitto Equilibrio
1 2009.08.31 00:16 comprare 1 0.30 1.5161 1.5127 1.5163
2 2009.08.31 00:37 chiudere 1 0.30 1.5161 1.5127 1.5163 0.00 450.00
3 2009.08.31 00:44 comprare 2 0.30 1.5158 1.5124 1.5161
4 2009.08.31 02:58 chiudere 2 0.30 1.5158 1.5124 1.5161 0.00 450.00
5 2009.08.31 03:14 comprare 3 0.40 1.5152 1.5118 1.5154
6 2009.08.31 03:30 chiudere 3 0.40 1.5152 1.5118 1.5154 0.00 450.00
7 2009.08.31 06:45 vendere 4 0.40 1.5151 1.5185 1.5149
8 2009.08.31 08:18 chiudere 4 0.40 1.5153 1.5185 1.5149 -8.00 442.00








































































 
001 >> :

Ragazzi, aiuto, non riesco a capire come fare.

Ho un ciclo che calcola i livelli tra LOW e HI con step Step.

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

Ora ho bisogno di memorizzare ogni livello da qualche parte in modo che sia facile tirarlo fuori più tardi e confrontarlo con il prezzo corrente. Molto volentieri sotto forma di codice, non per pigrizia, ma perché finché non vedo l'esempio non capisco ancora come fare. Grazie!

Come opzione:

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] > ...) {
        //...
    }
}