[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 37

 

Вот всё, что определено в индикаторе.

#property indicator_buffers 8                             // Количество буферов
  SetIndexBuffer(1,Set_SL);                               // Назначение массива Размах Вниз
  SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1); // Стиль линии 

Для буфера индикатора вроде как не нужно определять РАЗМЕР?!

 
Добрый вечер. Подскажите, пожалуйста - в моем эксперте после успешного закрытия прибыльной сделки происходит повторное открытие позиции в ту же сторону, что и предыдущая сделка (естественно она становится в последствии убыточной). Как запретить повторное открытие подобных неправильных сделок?
 
xruss >>:
Добрый вечер. Подскажите, пожалуйста - в моем эксперте после успешного закрытия прибыльной сделки происходит повторное открытие позиции в ту же сторону, что и предыдущая сделка (естественно она становится в последствии убыточной). Как запретить повторное открытие подобных неправильных сделок?

Удалить условие по которому так Ваши сделки открываются и вставить условие, как Вам хотелось бы чтобы они открывались.

 
Vinin >>:

А размер массива неплохо было бы определить для начала.

Вот всё, что определено в индикаторе.

#property indicator_buffers 8 // Количество буферов
  SetIndexBuffer(1,Set_SL); // Назначение массива Размах Вниз
  SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1); // Стиль линии 

Для буфера индикатора вроде как не нужно определять РАЗМЕР?!

 
ikatsko >>:

Для буфера индикатора вроде как не нужно определять РАЗМЕР?!

Не нужно. Имеется в виду буфер double Set_SL[];

 
granit77 >>:

Не нужно. Имеется в виду буфер double Set_SL[];

Ну так у меня остался вопрос, размещенный здесь 22.03.2009 16:05 (предыдущая страница). Да, вот дополнение: все это было в выходные дни, т.е. ТИКОВ не было


 
ikatsko писал(а) >>

Ну так у меня остался вопрос

Выложите код целиком, попробуем разобраться

 
xruss писал(а) >>
Добрый вечер. Подскажите, пожалуйста - в моем эксперте после успешного закрытия прибыльной сделки происходит повторное открытие позиции в ту же сторону, что и предыдущая сделка (естественно она становится в последствии убыточной). Как запретить повторное открытие подобных неправильных сделок?

Достаточно проверять последнюю закрытую сделку. Но нужно предусмотреть когда истории еще нет

 
ikatsko писал(а) >>

Вот всё, что определено в индикаторе.

#property indicator_buffers 8 // Количество буферов
SetIndexBuffer(1,Set_SL); // Назначение массива Размах Вниз
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1); // Стиль линии

Для буфера индикатора вроде как не нужно определять РАЗМЕР?!

В первоначальном коде этого не было. Если есть, то причина в другом. Надо смотреть весь код.

 
Figar0 >>:

Выложите код целиком, попробуем разобраться

Оставил (для упрощения) в коде только то, что составляет проблему. Ставим индикатор и, так сказать, видим проблему.

//+------------------------------------------------------------------+
//| iK_exp_stat_v30.mq4 |
//| Ivan Katsko |
//| |
//+------------------------------------------------------------------+
#property copyright "Ivan Katsko"
#property link ""

#property indicator_separate_window // Отображение в отдельном окне
#property indicator_buffers 8 // Количество буферов
#property indicator_color1 DeepPink // Цвет первой линии
#property indicator_color2 Purple // Цвет второй линии
#property indicator_color3 Red // Цвет третьей линии
#property indicator_color4 LawnGreen // Цвет червертой линии
#property indicator_color5 Gold // Цвет пятой линии
#property indicator_color6 Blue // Цвет шестой линии
#property indicator_color7 SteelBlue // Цвет седьмой линии
#property indicator_color8 Lime // Цвет восьмой линии
 
extern int 
  Depth=1; // Глубина истории: 1 - на величину History
extern double Level=10; // Минимальный уровень SL/TP
   
int History; // Колич.баров в расчётной истории
 
double 
  Value_TP[], // Массив - Значение Тейк Профит далее будет переопределен размер
  Av_Sum_TP[], // Массив - Средняя сумма Тейк Профит
  Sum_na_TP[], // Массив - Нарастающей суммы Тейк Профит
  Algoritm[], // Алгоритм: 1 - "сегодня как вчера", -1 - "сегодня не как вчера"
  Direction[], // Направление приказа: 1 - покупка, -1 - продажа
  Sum_TP[], // Массив - Нарастающей адаптивной суммы Тейк Профит
  Set_TP[], // Заданный Тейк Профит
  Set_SL[]; // Заданный Стоп Лосс


//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
  {
//--------------------------------------------------------------------
  SetIndexBuffer(0,Set_TP); // Назначение массива Размах Вверх
  SetIndexStyle (0,DRAW_HISTOGRAM,STYLE_SOLID,1); // Стиль линии
  SetIndexBuffer(1,Set_SL); // Назначение массива Размах Вниз
  SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,1); // Стиль линии 
  SetIndexBuffer(2,Sum_TP); // Назначение массива буферу
  SetIndexStyle (2,DRAW_LINE,STYLE_SOLID,2); // Стиль линии
  SetIndexBuffer(3,Direction); // Назначение массива буферу
  SetIndexStyle (3,DRAW_HISTOGRAM,STYLE_SOLID,4); // Стиль линии
  SetIndexBuffer(4,Algoritm); // Назначение массива буферу
  SetIndexStyle (4,DRAW_LINE,STYLE_SOLID,1); // Стиль линии
  SetIndexBuffer(5,Value_TP); // Назначение массива буферу
  SetIndexStyle (5,DRAW_HISTOGRAM,STYLE_SOLID,2); // Стиль линии
  SetIndexBuffer(6,Sum_na_TP); // Назначение массива буферу
  SetIndexStyle (6,DRAW_LINE,STYLE_SOLID,2); // Стиль линии
  SetIndexBuffer(7,Av_Sum_TP); // Назначение массива буферу
  SetIndexStyle (7,DRAW_HISTOGRAM,STYLE_SOLID,2); // Стиль линии

//--------------------------------------------------------------------
  switch (Period()) // Установка колич.исследуемых баров
  {
  case 1: History = 30; break; // Период 1-о минутный 
  case 5: History = 24; break; // Период 5-ти минутный 
  case 15: History = 24; break; // Период 15-ти минутный
  case 30: History = 24; break; // Период 30-ти минутный
  case 60: History = 24; break; // Период часовой
  case 240: History = 30; break; // Период 4-х часовой
  case 1440: History = 22; break; // Период дневной
  default: Alert("Выберите период от M1 до D1."); break; //Период часовой
  }
  Set_SL[History*Depth]=1.0*Level*Point;
  Alert("Init:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//Специально вывел его, чтоб посмотреть: показывает (допустим) 0,0001
//--------------------------------------------------------------------//----
  return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
  {
//----
//----
  return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
  {
  Alert("Start:"," Set_SL[",History*Depth,"]=",Set_SL[History*Depth]);//А здесь уже показывает 2147483647
  return(0);
  }


Файлы:
Причина обращения: