Spread trading in Meta Trader - pagina 166

 
hrenfx:
Sfortunatamente, non posso connettermi (per controllare) al server Broco, non c'è connessione ad esso al momento per qualche motivo.

La connessione è venuta fuori. Questo succede sui loro server demo.
 

Questo è l'aspetto del grafico dello spread:

Sembra che tu abbia un errore nei tuoi calcoli.

 

Si potrebbe probabilmente prendere puramente valuta EURUSD e EURGBP

E per l'indice del dollaro nell'indicatore dello spread, introdurre una correzione dimensionale in qualche modo.

 

Ci sono due metodi:

  1. Resta attaccato ai pipsollar.
  2. Smettete di essere legati a loro.

Per l'analisi degli spread chart, il secondo metodo è il più accurato.

Porta il codice responsabile del calcolo del triplo spread. Cercheremo insieme l'errore.

 

Difficile che ci sia un errore. Gli spread di strumenti correlati dello stesso mercato (ad esempio, soia ZS-ZM-ZL) sono resi perfettamente in tutte le combinazioni.

Ma naturalmente - guardate il codice. Probabilmente, vi troveremo davvero un errore.

Ecco il codice del disegno di diffusione:

Ladirezione delle posizioni è fissata qui dal segno alla sua grandezza.

extern string    Symbol1.Name="6EH1"; // Нога 1. Если не указан, берет по умолчанию текущий инструмент.
extern string    Symbol2.Name="DXH1"; // Нога 2.
extern string    Symbol3.Name="EURGBP";  // Нога 3.
extern double    Symbol1.Vol=-0.1; // Объем сделки 1-ой ноги. 
extern double    Symbol2.Vol=-0.09;  // Объем сделки 2-ой ноги.
extern double    Symbol3.Vol=0.06;  // Объем сделки 3-ей ноги. 
extern bool      EquityScale = true;      // Показывать масштаб эквити.
 int init(){

// Пересчет изменения цены в изменение прибыли определяется следующим коэффициентом,
  // который впоследствии нужно будет умножить на объем сделки, выраженный в лотах
  if(EquityScale) {
    Symbol1.K = MarketInfo(Symbol1.Name, MODE_TICKVALUE)/MarketInfo(Symbol1.Name, MODE_TICKSIZE);
    Symbol2.K = MarketInfo(Symbol2.Name, MODE_TICKVALUE)/MarketInfo(Symbol2.Name, MODE_TICKSIZE);
    Symbol3.K = MarketInfo(Symbol3.Name, MODE_TICKVALUE)/MarketInfo(Symbol3.Name, MODE_TICKSIZE);
  }

int start() {


  // Формируем график прибыльности
  for (i=0;i<limit;i++) 
  {
    t=Time[i];
    last[i] = Symbol1.Vol*Symbol1.K*iClose(Symbol1.Name,0,iBarShift(Symbol1.Name,0,t)) 
            + Symbol2.Vol*Symbol2.K*iClose(Symbol2.Name,0,iBarShift(Symbol2.Name,0,t))
            + Symbol3.Vol*Symbol3.K*iClose(Symbol3.Name,0,iBarShift(Symbol3.Name,0,t));
   
  }
 
Non c'è nessun errore nel codice, hai solo inserito i lotti in modo disattento.
 

Ecco il grafico.

La finestra superiore è la vostra variante.

Finestra inferiore - la mia variante EURGBP - (6E + DX) =0 .06 :0.09:0.10

 
leonid553:

La finestra superiore è la vostra opzione.

Questa non è la mia variante. Si prega di postare l'indicatore, lo eseguirò sul mio.
 

Ok. Si prega di caricarlo anche sulla tabella Euro 6EH1

Il resto dei parametri:

File:
 

Inserite i lotti nel vostro indicatore con attenzione:

Motivazione: