Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1319

 
Aleksey Vyazmikin:

В каком смысле "формат маскирования "? Как обычно, к примеру "*.csv", отдельно указываем директорию для начала поиска.

ну "обычно" разное может быть. Стандартные для ОС можно же ещё расширить по своим нуждам. Например дату в названии задавать разными форматами и т.п.

 
Aleksey Vyazmikin:
Ищу функцию для поиска в директории файла по маске, поиск должен проходить во всех поддиректориях, функция должна возвращать массив с полным путем к файлу. Прошу поделится такой функцией. 
FileFindFirst

FileFindFirst поддерживает поиск по маске. Осталось написать рекурсивную функцию для всех подкаталогов.

 
Aleksey Mavrin:

Если такой вопрос возникает, значит задачу такую рановато решать, надо подучить матчасть. Но сейчас вместо злого меня придут добрые дяденьки и всё спокойно объяснят.

А я просто спрошу - а ты смотрел что в этом методе происходит вообще?

Вероятно, я правильно изначально понял, что метод не будет вызываться, потому что функцию я переопределил и собираюсь реализовать свой алгоритм. В методе уже реализованный алгоритм обработки ордеров. MQL5 знаю только по C/C++, а писал на них давно. Пожалел, что задал вопрос :)
 
Aleksey Mavrin:

ну "обычно" разное может быть. Стандартные для ОС можно же ещё расширить по своим нуждам. Например дату в названии задавать разными форматами и т.п.

Пока не вижу смысла усложнять.

 
RickD:
FileFindFirst

FileFindFirst поддерживает поиск по маске. Осталось написать рекурсивную функцию для всех подкаталогов.

Теорию я знаю, спасибо.

 

Всем добрый день. Пытаюсь написать советник на пользовательском индикаторе.

На графике он рисует стрелки вот такого плана


индикатор на графике цены

У индикатора вот столько настроек. первая часть.


НАСТРОЙКИ ИНДИАКТОРА ЧАСТЬ 1

и вторая часть настроек


Настройки индикатора часть 2

Индикатор ищет дивергенции по одному из 4-х классических индикаторов- ао, стохастик, rsi, macd.

Особенность индикатора заключается в том, что сигнальную стрелку он рисует при открытие свечи то есть  на нулевом  баре и пока свеча формируется стрелка висит, а после закрытия свечи не перерисовывается.

В индикаторе 8 буферов. Т.к может нарисоваться 8 стрелок- 4 на продажу по каждому из стандартных индикаторов и 4 на покупку.

Выглядит это дело в окне данных вот так:

Буферы индикатора в окне данных

Как я  понимаю нулевой буфер это стрелка по стохастику на сел. Первый буфер это стрелка по стохастику на бай. Второй буфер стрелка по ао на сел. Третий буфер это стрелка по ао на бай. Четвёртый буфер это стрелка по rsi на сел. Пятый это стрелка rsi на бай. Шестой это стрелка по MACD на сел. И седьмой буфер это стрелка по MACD на бай.

Я перенёс в советник все входные параметры индикатора:

enum enumCoincidence
  {
   enCoinAccurate=1,    // Точный
   enCoinApproximate=0, // Приближенный
  };
  enum enumYN
  {
   enYes=1, // Да
   enNo=0,  // Нет
  };
  enum enumModeLINE
  {
   enMdMain=MODE_MAIN,  // Main
   enMdSign=MODE_SIGNAL,// Signal
  };
  enum enumSignalsMode
  {
   enBuy=0,             // Только Buy
   enSell=1,            // Только Sell
   enBoth=2,            // Buy и Sell
   
  };
  
  extern string  Params = "-- ПАРАМЕТРЫ ОТКРЫТИЯ СДЕЛКИ --";//======================================
  extern double lot= 0.01; // ЛОТ ОРДЕРА
  extern int slippages= 5; // ПРОСКАЛЬЗЫВАНИЕ
  extern double sl= 100; // СТОП ЛОС СДЕЛКИ
  extern double tp= 100; // ТЕЙК ПРОФИТ СДЕЛКИ
  extern string coment= "trendova9_divepgenci9"; // КОМЕНТАРИЙ СОВЕТНИКА
  extern int magik_number= 123; // МАГИЧЕСКИЙ НОМЕР СОЕВТНИКА
  extern color Color = clrRed; // ЦВЕТ ОРДЕРОВ СОВЕТНИКА
  

  extern string  Params_tranclirpvani9 = "-- ПАРАМЕТРЫ ТРАНСЛИРОАВНИЯ СИГНАЛОВ --";//======================================

extern string  CTS_Params = "-- Параметры транслирования сигналов В CTS  --";//======================================
extern    enumSignalsMode   ModeSignalsCTS       =  enBoth;              // Транслировать сигналы в CTS:
extern   int               LifetimeOfSignal     =  5;                   // Время жизни сигнала в барах рабочего ТФ
extern   string            CTS_Name             =  "123";               // Имя для CTS
int lifetimeOfSignal; // Время жизни сигнала в барах рабочего тф
extern string  Div_Params = "-- Параметры поиска дивергенций --";//======================================
extern   ENUM_TIMEFRAMES   PeriodForWork        =  PERIOD_H4;           // ТФ ДИВЕРГЕНЦИИ
ENUM_TIMEFRAMES periodForWork; // ТАЙМФРЕЙМ, НА КОТОРОМ ИСКАТЬ ДИВЕРГЕНЦИИ

extern   enumCoincidence   SearchAccuracy       =  enCoinApproximate;   // РЕЖИМ ПОИСКА СОВПАДЕНИЙ
extern    int               NumBarAccuracy       =  3;                   // КОЛИЧЕСТВО БАРОВ НЕТОЧНОСТИ ПОИСКА ПИКОВ
int numBarAccuracy; // КОЛИЧЕСТВО БАРОВ НЕ ТОЧНОСТИ ПОИСКА ПИКОВ
extern    int               KoeffDistanceBetween =  5;                   // КОЭФФИЦИЕНТ "РАЗНИЦЫ" МЕЖДУ ЭКСТРЕМУМАМИ2
double koeffForDistanceBetween; // КОЭФФИЦИЕНТ "РАЗНИЦЫ" МЕЖДУ ЭКСТРЕМУМАМИ2
extern   int               WidthChartLine       =  2;                   // ТОЛЩИНА ЛИНИЙ НА ГРАФИКЕ ЦЕНЫ
int widthChartLine; // ТОЛЩИНА ЛИНИЙ НА ГРАФИКЕ ЦЕНЫ
extern   int               WidthIndicatorstLine =  2;      // ТОЛЩИНА ЛИНИЙ В ОКНЕ ИНДИКАТОРОВ
int widthIndicatorstLine; // ТОЛЩИНА ЛИНИЙ В ОКНЕ ИНДИКАТОРОВ
//--- используемые индикаторы
extern   double            ShiftArrow           =  1.0;                 // СМЕЩЕНИЕ ЗНАЧКОВ
double shiftArrow;
extern string  AO_Params = "-- Параметры AO --";//======================================
extern   enumYN            UseAO                =  enYes;               // ИСКАТЬ ДИВЕРГЕНЦИИ НА АО?
extern   color             ColorUpperAO         =  clrRed;              // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ АО
extern   color             ColorLowerAO         =  clrBlue;             // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ АО

//---
extern string  Stoch_Params = "-- Параметры Stochastic --"; //======================================
extern   enumYN            UseStoch             =  enNo;                // ИСКАТЬ ДИВЕРГЕНЦИИ НА STOCHASTIC??
extern   enumModeLINE      ModeLineSTO          =  enMdMain;            // ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ STOCHASTIC:
extern    int               Period_K             =  5;                   // ПЕРИОД %K STOCHASTIC
int period_K; // Период %K Stochastic
extern    int               Period_D             =  3;                   // ПЕРИОД %D STOCHASTIC
int period_D; // Период %D Stochastic
extern    int               Slowing              =  3;                   // ЗАМЕДЛЕНИЕ STOCHASTIC
int slowing; // Замедление Stochastic
extern    ENUM_STO_PRICE    AppledPriceSTO       =  STO_CLOSECLOSE;         // ЦЕНЫ РАСЧЁТА STOCHASTIC
extern    ENUM_MA_METHOD    MethodMAStoch        =  MODE_SMA;            // МЕТОД MA STOCHASTIC
extern    int               UpperLevelSTO        =  80;                  // ВЕРХНИЙ УРОВЕНЬ STOCHASTIC
int upperLevelSTO; // Верхний уровень Stochastic
extern    int               LowerLewelSTO        =  20;                  // НИЖНИЙ УРОВЕНЬ STOCHASTIC
int lowerLewelSTO; // Нижний уровень Stochastic
extern   color             ColorUpperSTO        =  clrRed;              // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ STOCHASTIC
extern   color             ColorLowerSTO        =  clrBlue;             // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ STOCHASTIC

extern string  RSI_Params = "-- ПАРАМЕТРЫ RSI --"; //======================================
extern   enumYN            UseRSI               =  enNo;                // ИСКАТЬ ДИВЕРГЕНЦИИ НА  RSI?
extern    int               PeriodRSI            =  14;                  // ПЕРИОД RSI
int periodRSI;
extern    ENUM_APPLIED_PRICE AppledPriceRSI      =  PRICE_CLOSE;         // ПРИМЕНИТЬ К:
extern    int               UpperLevelRSI        =  70;                  // ВЕРХНИЙ УРОВЕНЬ RSI
int upperLevelRSI; // Верхний уровень RSI
extern    int               LowerLewelRSI        =  30;                  // НИЖНИЙ УРОВЕНЬ RSI
int lowerLewelRSI; // Нижний уровень RSI
extern   color             ColorUpperRSI        =  clrRed;              // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
extern   color             ColorLowerRSI        =  clrBlue;             // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI

extern string  MACD_Params = "-- ПАРАМЕТРЫ MACD --"; //======================================
extern   enumYN            UseMACD              =  enNo;                // ИСКАТЬ ДИВЕРГЕНЦИИ НА  MACD
extern    enumModeLINE      ModeLineMACD         =  enMdMain;            // ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ MACD:
extern    int               FastEMA_MACD         =  12;                  // БЫСТРОЕ EMA MACD
int fastEMA_MACD; // Быстрое EMA MACD
extern    int               SlowEMA_MACD         =  26;                  // МЕДЛЕННОЕ EMA MACD
int slowEMA_MACD; // Медленное EMA MACD
extern    int               PeriodSignalMACD     =  9;                   // ПЕРИОД СИГНАЛЬНОЙ SMA MACD
int periodSignalMACD; // Период сигнальной SMA MACD
extern    ENUM_APPLIED_PRICE AppledPriceMACD     =  PRICE_CLOSE;         // ПРИМЕНИТЬ К:
extern   color             ColorUpperMACD       =  clrRed;              // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
extern   color             ColorLowerMACD       =  clrBlue;             // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
//---
//--- ОПОВЕЩЕНИЯ
extern string  Notifications_Params = "-- ПАРАМЕТРЫ ОПОВЕЩЕНИЙ --"; //======================================
extern   enumYN            UseAlerts            =  enYes;               // ОПОВЕЩАТЬ В ТЕРМИНАЛЕ О СИГНАЛЕ
extern   enumYN            UseMail              =  enNo;                // ОПОВЕЩАТЬ НА E-MAIL О СИГНАЛЕ
extern   enumYN            UsePush              =  enNo;                // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ


//--- КОНЕЦ ВХОДНЫХ ПАРАМЕТРОВ


Дальше в он тик для начала хочу реализовать самую простую логику- появилась стрелка на любом из буферов открываю ордер…

void OnTick()
  {
  double ao_sell;   // СИГНАЛ ПО АО НА СЕЛЛ
  double ao_buy;   // СИГНАЛ ПО АО НА БАЙ
  
  double stohastic_sell;   //СИГНАЛ ПО СТОХАСТИКУ НА СЕЛ 
  double stohastic_buy;    // СИГНАЛ ПО СТОХАСТИКУ НА БАЙ
  
  
  //double  iCustom( 
  // string       symbol,           // имя символа 
  // int          timeframe,        // таймфрейм 
  // string       name,             // папка/имя_пользовательского индикатора 
  // ...                            // список входных параметров индикатора 
  // int          mode,             // источник данных 
  // int          shift             // сдвиг 
  
  
  //---АО НА СЕЛЛ
  
ao_sell = iCustom(Symbol(),PeriodForWork, //Таймфрейм на котором искать дивергенции

"1)SEARCH_DIVERGENCE",
Params, // Параметры транслирования сигналов
ModeSignalsCTS, // транслировать сигналы в cts?
LifetimeOfSignal, //Время жизни сигнала в баарх рабочего тф
CTS_Name, // имя для cts 
Div_Params, // параметры поиска дивергенции
PeriodForWork, // Таймфрейм на котором искать дивергенции

SearchAccuracy, // Режим поиска совпадений
NumBarAccuracy, // количество баров не точности поиска пиков
KoeffDistanceBetween,// коэффициент разницы между экстремумами
WidthChartLine, // толщина линий на графике цены

WidthIndicatorstLine,// толщина линий в окне индикаторов
ShiftArrow, // смещение значков
AO_Params,  // Параметры АО
UseAO,  // Искать дивергенции на АО
ColorUpperAO,  // цвет верхних линий дивергенций АО
ColorLowerAO, // цвет нижних линий дивергенций АО
Stoch_Params, // параметры стохастик
UseStoch, // искать дивергенции на стохастик
ModeLineSTO, // ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ STOCHASTIC:
Period_K, // период %К стохастик
Period_D, // период %Д стохастик
Slowing, // замедление стохастик
AppledPriceSTO, // цены расчёта стохастик
MethodMAStoch, // метод МА стохастик
UpperLevelSTO, // верхний уровень стохастик
LowerLewelSTO, // нижний уровень стохастик
ColorUpperSTO, // цвет верхних линий дивергенций стохастик
ColorLowerSTO, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ STOCHASTIC

RSI_Params, // ПАРАМЕТРЫ RSI
UseRSI, // ИСКАТЬ ДИВЕРГЕНЦИИ НА  RSI?
PeriodRSI, // ПЕРИОД RSI
AppledPriceRSI, // ПРИМЕНИТЬ К
UpperLevelRSI, // ВЕРХНИЙ УРОВЕНЬ RSI
LowerLewelRSI, // НИЖНИЙ УРОВЕНЬ RSI
ColorUpperRSI, // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
ColorLowerRSI, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
MACD_Params, // ПАРАМЕТРЫ MACD
UseMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ НА  MACD
ModeLineMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ MACD:
FastEMA_MACD, // БЫСТРОЕ EMA MACD
SlowEMA_MACD, // МЕДЛЕННОЕ EMA MACD
PeriodSignalMACD, // ПЕРИОД СИГНАЛЬНОЙ SMA MACD
AppledPriceMACD, // ПРИМЕНИТЬ К:
ColorUpperMACD, // ЦВЕТ ВЕРХНИХ  ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
ColorLowerMACD, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
Notifications_Params, // ПАРАМЕТРЫ ОПОВЕЩЕНИЙ 
UseAlerts, // ОПОВЕЩАТЬ В ТЕРМИНАЛЕ О СИГНАЛЕ 
UseMail, // ОПОВЕЩАТЬ НА E-MAIL О СИГНАЛЕ 
UsePush, // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ 
2, //ВТОРОЙ БУФЕР- АО СЕЛЛ
0 // СИГНАЛ НА НУЛЕВОЙ СВЕЧЕ ИЗ-ЗА ОСОБЕННОСТЕЙ ИНДИКАТОРА
);
//---АО НА БАЙ

ao_buy= iCustom(Symbol(),PeriodForWork, //Таймфрейм на котором искать дивергенции

"1)SEARCH_DIVERGENCE",
Params, // Параметры транслирования сигналов
ModeSignalsCTS, // транслировать сигналы в cts?
LifetimeOfSignal, //Время жизни сигнала в баарх рабочего тф
CTS_Name, // имя для cts 
Div_Params, // параметры поиска дивергенции
PeriodForWork, // Таймфрейм на котором искать дивергенции

SearchAccuracy, // Режим поиска совпадений
NumBarAccuracy, // количество баров не точности поиска пиков
KoeffDistanceBetween,// коэффициент разницы между экстремумами
WidthChartLine, // толщина линий на графике цены

WidthIndicatorstLine,// толщина линий в окне индикаторов
ShiftArrow, // смещение значков
AO_Params,  // Параметры АО
UseAO,  // Искать дивергенции на АО
ColorUpperAO,  // цвет верхних линий дивергенций АО
ColorLowerAO, // цвет нижних линий дивергенций АО
Stoch_Params, // параметры стохастик
UseStoch, // искать дивергенции на стохастик
ModeLineSTO, // ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ STOCHASTIC:
Period_K, // период %К стохастик
Period_D, // период %Д стохастик
Slowing, // замедление стохастик
AppledPriceSTO, // цены расчёта стохастик
MethodMAStoch, // метод МА стохастик
UpperLevelSTO, // верхний уровень стохастик
LowerLewelSTO, // нижний уровень стохастик
ColorUpperSTO, // цвет верхних линий дивергенций стохастик
ColorLowerSTO, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ STOCHASTIC

RSI_Params, // ПАРАМЕТРЫ RSI
UseRSI, // ИСКАТЬ ДИВЕРГЕНЦИИ НА  RSI?
PeriodRSI, // ПЕРИОД RSI
AppledPriceRSI, // ПРИМЕНИТЬ К
UpperLevelRSI, // ВЕРХНИЙ УРОВЕНЬ RSI
LowerLewelRSI, // НИЖНИЙ УРОВЕНЬ RSI
ColorUpperRSI, // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
ColorLowerRSI, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
MACD_Params, // ПАРАМЕТРЫ MACD
UseMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ НА  MACD
ModeLineMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ MACD:
FastEMA_MACD, // БЫСТРОЕ EMA MACD
SlowEMA_MACD, // МЕДЛЕННОЕ EMA MACD
PeriodSignalMACD, // ПЕРИОД СИГНАЛЬНОЙ SMA MACD
AppledPriceMACD, // ПРИМЕНИТЬ К:
ColorUpperMACD, // ЦВЕТ ВЕРХНИХ  ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
ColorLowerMACD, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
Notifications_Params, // ПАРАМЕТРЫ ОПОВЕЩЕНИЙ 
UseAlerts, // ОПОВЕЩАТЬ В ТЕРМИНАЛЕ О СИГНАЛЕ 
UseMail, // ОПОВЕЩАТЬ НА E-MAIL О СИГНАЛЕ 
UsePush, // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ 
3, // ТРЕТИЙ  БУФЕР- АО БАЙ
0 // СИГНАЛ НА НУЛЕВОЙ СВЕЧЕ ИЗ-ЗА ОСОБЕННОСТЕЙ ИНДИКАТОРА
); 


stohastic_sell = iCustom(Symbol(),PeriodForWork, //Таймфрейм на котором искать дивергенции

"1)SEARCH_DIVERGENCE",
Params, // Параметры транслирования сигналов
ModeSignalsCTS, // транслировать сигналы в cts?
LifetimeOfSignal, //Время жизни сигнала в баарх рабочего тф
CTS_Name, // имя для cts 
Div_Params, // параметры поиска дивергенции
PeriodForWork, // Таймфрейм на котором искать дивергенции

SearchAccuracy, // Режим поиска совпадений
NumBarAccuracy, // количество баров не точности поиска пиков
KoeffDistanceBetween,// коэффициент разницы между экстремумами
WidthChartLine, // толщина линий на графике цены

WidthIndicatorstLine,// толщина линий в окне индикаторов
ShiftArrow, // смещение значков
AO_Params,  // Параметры АО
UseAO,  // Искать дивергенции на АО
ColorUpperAO,  // цвет верхних линий дивергенций АО
ColorLowerAO, // цвет нижних линий дивергенций АО
Stoch_Params, // параметры стохастик
UseStoch, // искать дивергенции на стохастик
ModeLineSTO, // ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ STOCHASTIC:
Period_K, // период %К стохастик
Period_D, // период %Д стохастик
Slowing, // замедление стохастик
AppledPriceSTO, // цены расчёта стохастик
MethodMAStoch, // метод МА стохастик
UpperLevelSTO, // верхний уровень стохастик
LowerLewelSTO, // нижний уровень стохастик
ColorUpperSTO, // цвет верхних линий дивергенций стохастик
ColorLowerSTO, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ STOCHASTIC

RSI_Params, // ПАРАМЕТРЫ RSI
UseRSI, // ИСКАТЬ ДИВЕРГЕНЦИИ НА  RSI?
PeriodRSI, // ПЕРИОД RSI
AppledPriceRSI, // ПРИМЕНИТЬ К
UpperLevelRSI, // ВЕРХНИЙ УРОВЕНЬ RSI
LowerLewelRSI, // НИЖНИЙ УРОВЕНЬ RSI
ColorUpperRSI, // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
ColorLowerRSI, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
MACD_Params, // ПАРАМЕТРЫ MACD
UseMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ НА  MACD
ModeLineMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ MACD:
FastEMA_MACD, // БЫСТРОЕ EMA MACD
SlowEMA_MACD, // МЕДЛЕННОЕ EMA MACD
PeriodSignalMACD, // ПЕРИОД СИГНАЛЬНОЙ SMA MACD
AppledPriceMACD, // ПРИМЕНИТЬ К:
ColorUpperMACD, // ЦВЕТ ВЕРХНИХ  ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
ColorLowerMACD, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
Notifications_Params, // ПАРАМЕТРЫ ОПОВЕЩЕНИЙ 
UseAlerts, // ОПОВЕЩАТЬ В ТЕРМИНАЛЕ О СИГНАЛЕ 
UseMail, // ОПОВЕЩАТЬ НА E-MAIL О СИГНАЛЕ 
UsePush, // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ 
0, // НУЛЕВОЙ БУФЕР-- СТОХАСТАИК НА СЕЛЛ
0 // СИГНАЛ НА НУЛЕВОЙ СВЕЧЕ ИЗ-ЗА ОСОБЕННОСТЕЙ ИНДИКАТОРА
);


stohastic_buy = iCustom(Symbol(),PeriodForWork, //Таймфрейм на котором искать дивергенции

"1)SEARCH_DIVERGENCE",
Params, // Параметры транслирования сигналов
ModeSignalsCTS, // транслировать сигналы в cts?
LifetimeOfSignal, //Время жизни сигнала в баарх рабочего тф
CTS_Name, // имя для cts 
Div_Params, // параметры поиска дивергенции
PeriodForWork, // Таймфрейм на котором искать дивергенции

SearchAccuracy, // Режим поиска совпадений
NumBarAccuracy, // количество баров не точности поиска пиков
KoeffDistanceBetween,// коэффициент разницы между экстремумами
WidthChartLine, // толщина линий на графике цены

WidthIndicatorstLine,// толщина линий в окне индикаторов
ShiftArrow, // смещение значков
AO_Params,  // Параметры АО
UseAO,  // Искать дивергенции на АО
ColorUpperAO,  // цвет верхних линий дивергенций АО
ColorLowerAO, // цвет нижних линий дивергенций АО
Stoch_Params, // параметры стохастик
UseStoch, // искать дивергенции на стохастик
ModeLineSTO, // ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ STOCHASTIC:
Period_K, // период %К стохастик
Period_D, // период %Д стохастик
Slowing, // замедление стохастик
AppledPriceSTO, // цены расчёта стохастик
MethodMAStoch, // метод МА стохастик
UpperLevelSTO, // верхний уровень стохастик
LowerLewelSTO, // нижний уровень стохастик
ColorUpperSTO, // цвет верхних линий дивергенций стохастик
ColorLowerSTO, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ STOCHASTIC

RSI_Params, // ПАРАМЕТРЫ RSI
UseRSI, // ИСКАТЬ ДИВЕРГЕНЦИИ НА  RSI?
PeriodRSI, // ПЕРИОД RSI
AppledPriceRSI, // ПРИМЕНИТЬ К
UpperLevelRSI, // ВЕРХНИЙ УРОВЕНЬ RSI
LowerLewelRSI, // НИЖНИЙ УРОВЕНЬ RSI
ColorUpperRSI, // ЦВЕТ ВЕРХНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
ColorLowerRSI, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ RSI
MACD_Params, // ПАРАМЕТРЫ MACD
UseMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ НА  MACD
ModeLineMACD, //  ИСКАТЬ ДИВЕРГЕНЦИИ ПО ЛИНИИ MACD:
FastEMA_MACD, // БЫСТРОЕ EMA MACD
SlowEMA_MACD, // МЕДЛЕННОЕ EMA MACD
PeriodSignalMACD, // ПЕРИОД СИГНАЛЬНОЙ SMA MACD
AppledPriceMACD, // ПРИМЕНИТЬ К:
ColorUpperMACD, // ЦВЕТ ВЕРХНИХ  ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
ColorLowerMACD, // ЦВЕТ НИЖНИХ ЛИНИЙ ДИВЕРГЕНЦИЙ MACD
Notifications_Params, // ПАРАМЕТРЫ ОПОВЕЩЕНИЙ 
UseAlerts, // ОПОВЕЩАТЬ В ТЕРМИНАЛЕ О СИГНАЛЕ 
UseMail, // ОПОВЕЩАТЬ НА E-MAIL О СИГНАЛЕ 
UsePush, // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ 
1, // ПЕРВЫЙ БУФЕР-- СТОХАСТАИК НА БАЙ
0 // СИГНАЛ НА НУЛЕВОЙ СВЕЧЕ ИЗ-ЗА ОСОБЕННОСТЕЙ ИНДИКАТОРА
);
   if(ao_buy!= EMPTY_VALUE && OrdersTotal()==0)
   {
   OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl*Point,Bid+tp*Point,"ДИВЕРГЕНЦИЯ НА БАЙ ao"); // ОТКРЫВАЕМ БАЙ ОРДЕР
   } else
   {
   if(ao_sell!=EMPTY_VALUE&& OrdersTotal()==0)
   {
   OrderSend(Symbol(),OP_SELL,lot,Bid,slippages,Ask+sl*Point,Ask-tp*Point,"ДИВЕРГЕНЦИЯ НА СЕЛ СТОХАСТИК"); // ОТКРКЫВВАЕМ СЕЛ ОРДЕР
   
   } else
   {
   if(stohastic_buy!=EMPTY_VALUE && OrdersTotal()==0 )
   {
   OrderSend(Symbol(),OP_BUY,lot,Ask,slippages,Bid-sl*Point,Bid+tp*Point,"ДИВЕРГЕНЦИЯ НА БАЙ ao"); // ОТКРЫВАЕМ БАЙ ОРДЕР
   
   } else
   {
   if(stohastic_sell!=EMPTY_VALUE && OrdersTotal()==0)
   {
   OrderSend(Symbol(),OP_SELL,lot,Bid,slippages,Ask+sl*Point,Ask-tp*Point,"ДИВЕРГЕНЦИЯ НА СЕЛ СТОХАСТИК"); // ОТКРКЫВВАЕМ СЕЛ ОРДЕР
   }
   }
   }
   }



 

Для начала объявил переменные для получения сигналов по ао- на бай и на сел и через функцию iCustom получаю значение для ао бай из третьего буфера и для ао сел из второго.  И точно так же получаю значения для стохастик бай из нулевого  буфера и для стохастик сел из первого буфера.

После того как получил значения из буферов в переменные делаю проверку на наличие стрелки на графике.

В тестере стратегий получается что если во входных параметрах включаю анализ по АО то сделки открываются- всё нормально… А если включаю анализ по стохастику то ничего не происходит- ни ошибок ни ещё чего-то. Подскажите мне пожалуйста- что я делаю не правильно в получении значения индикаторного буфера или в проверке что в нём что-то есть? Как исправить мою ошибку?

Заранее благодарю. p/s сразу отвечаю на возможный  вопрос, а почему коментарии написаны капсом- не больной ли я, так делать? Пишу так так как мне это удобно смотреть в силу моей инвалидности первой  группы после комы в 1,5 месяца.

 

 

Для начала объявил переменные для получения сигналов по ао- на бай и на сел и через функцию iCustom получаю значение для ао бай из третьего буфера и для ао сел из второго.  И точно так же получаю значения для стохастик бай из нулевого  буфера и для стохастик сел из первого буфера.

После того как получил значения из буферов в переменные делаю проверку на наличие стрелки на графике.

В тестере стратегий получается что если во входных параметрах включаю анализ по АО то сделки открываются- всё нормально… А если включаю анализ по стохастику то ничего не происходит- ни ошибок ни ещё чего-то. Подскажите мне пожалуйста- что я делаю не правильно в получении значения индикаторного буфера или в проверке что в нём что-то есть? Как исправить мою ошибку?

Заранее благодарю. p/s сразу отвечаю на возможный  вопрос, а почему коментарии написаны капсом- не больной ли я, так делать? Пишу так так как мне это удобно смотреть в силу моей инвалидности первой  группы после комы в 1,5 месяца.

 

 
DanilaMactep:


 

Для начала в коде много лишних скобок

а чтобы посмотреть в чем проблема не вчитываясь в код, надо советника запустить в тестере

 
DanilaMactep, возможно, стоит значительно сократить вопрос. Предположу что "разгребать" за бесплатно мало кто захочет.
 

Туплю. 132 бара. У меня на каждом баре 6 значений. Как массивом записать? Структурой не хочется)

 

Эээээ

double prices[132,6];

то?

Причина обращения: