[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!

 

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