Торговля спредами в Meta Trader-е - страница 166

 
hrenfx:
К сожалению, мне не подключиться (для проверки) к Broco-серверу, связь с ним по какой-то причине отсутствует сейчас.

Появилась связь. Бывает у них такое на демосерверах.
 

Вот так выглядит график спреда:

Похоже, у вас ошибка в расчетах.

 

Можно, наверное, взять чисто валютные EURUSD и EURGBP

А для индекса доллара в индикаторе спреда ввести как-то поправку на размерность.

 

Есть два метода:

  1. Остаться привязанным к пипсодолларам.
  2. Прекратить к ним привязываться.

Для анализа графика спреда второй метод самый точный.

Приведите код, отвечающий за расчет тройного спреда. Поищем ошибку вместе.

 

Вряд ли там ошибка. Спред Родственных инструментов с одной площадки (напр. соевые ZS-ZM-ZL) индюк отрисовывает безупречно в любых комбинациях.

Но, конечно - посмотреть код нужно. Возожно, там действительно обнаружиться ошибка.

Вот код отрисовки спреда:

Направление позиций задается здесь знаком при её размере.

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));
   
  }
 
Ошибки в коде нет, вы просто невнимательно ввели лоты.
 

Вот график.

Верхнее окно - ваш вариант.

Нижнее окно - мой вариант EURGBP - (6Е + DX) =0.06 :0.09:0.10

 
leonid553:

Верхнее окно - ваш вариант.

Это не мой вариант. Прошу выложить индикатор, запущу у себя.
 

Ок. Пож. заряжайте его тоже на график евро 6EH1

Остальные параметры:

Файлы:
 

Ввел в ваш индикатор лоты внимательно: