Divulgação do comércio no Meta Trader - página 166

 
hrenfx:
Infelizmente, não posso me conectar (para verificar) ao servidor Broco, não há conexão com ele no momento por alguma razão.

A conexão foi estabelecida. Isto acontece em seus servidores de demonstração.
 

Este é o aspecto do gráfico de dispersão:

Parece que você tem um erro em seus cálculos.

 

Você provavelmente poderia tomar puramente a moeda EURUSD e EURGBP

E para o índice do dólar no indicador de spread, introduza uma correção dimensional de alguma forma.

 

Há dois métodos:

  1. Fique preso aos pipsollars.
  2. Pare de ser atrelado a eles.

Para a análise de gráficos de dispersão, o segundo método é o mais preciso.

Traga o código responsável pelo cálculo do spread triplo. Vamos procurar o erro juntos.

 

Dificilmente se trata de um erro. A propagação de instrumentos relacionados do mesmo mercado (por exemplo, soja ZS-ZM-ZL) é feita perfeitamente em todas as combinações.

Mas é claro - olhe para o código. Provavelmente, encontraremos de fato ali um erro.

Aqui está o código do desenho por espalhamento:

Adireção das posições é definida aqui pelo sinal em seu tamanho.

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));
   
  }
 
Não há erro no código, você apenas inseriu os lotes de forma desatenta.
 

Aqui está o gráfico.

A janela superior é sua variante.

Janela inferior - minha variante EURGBP - (6E + DX) =0 .06 :0.09:0.10

 
leonid553:

A janela superior é sua opção.

Esta não é a minha variante. Por favor, afixe o indicador, eu o executarei no meu.
 

Ok. Por favor, carregue-o também na tabela Euro 6EH1

O resto dos parâmetros:

Arquivos anexados:
 

Introduziu lotes em seu indicador cuidadosamente: