Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1319

 
Aleksey Vyazmikin:

¿Qué quiere decir con"formato de enmascaramiento "? Como es habitual, por ejemplo, "*.csv", especifique por separado el directorio en el que se iniciará la búsqueda.

Bueno, "normalmente" puede ser diferente. Las estándar para el sistema operativo se pueden ampliar según sus necesidades. Por ejemplo, puede especificar la fecha en el nombre en diferentes formatos, etc.

 
Aleksey Vyazmikin:
Busco una función para buscar el directorio de un archivo por máscara, la búsqueda debe pasar por todos los subdirectorios, la función debe devolver un array con la ruta completa del archivo. Por favor, comparta dicha función.
FileFindFirst

FileFindFirst admite la búsqueda por máscara. Sólo queda escribir una función recursiva para todos los subdirectorios.

 
Aleksey Mavrin:

Si se plantea esta cuestión, significa que es demasiado pronto para resolver ese problema, hay que aprender lo básico. Pero ahora, en lugar del malvado yo, vendrán unas personas bondadosas a explicarlo todo con calma.

Y sólo voy a preguntar: ¿has mirado lo que pasa en este método en absoluto?

Seguramente he acertado inicialmente en que el método no será llamado, porque he anulado la función y voy a implementar mi algoritmo. Ya he implementado un algoritmo para el procesamiento de pedidos en el método. Sólo conozco MQL5 en C/C++ pero lo escribí hace mucho tiempo. Me arrepiento de mi pregunta :)
 
Aleksey Mavrin:

Bueno, "normalmente" puede ser diferente. El sistema operativo estándar también puede ampliarse para adaptarse a sus necesidades. Por ejemplo, la fecha en el nombre puede establecerse en diferentes formatos, etc.

No veo el sentido de hacerlo más complicado.

 
RickD:
FileFindFirst

FileFindFirst admite la búsqueda por máscara. Queda por escribir una función recursiva para todos los subdirectorios.

Conozco la teoría, gracias.

 

Buenas tardes a todos. Estoy tratando de escribir un asesor sobre un indicador personalizado.

En el gráfico, dibuja flechas como esta


indicador de gráfico de precios

El indicador tiene tantas configuraciones. Primera parte.


AJUSTES DEL INDICADOR PARTE 1

y la segunda parte de la configuración


Ajustes de indicadores parte 2

El indicador busca divergencias basadas en uno de los 4 indicadores clásicos: ao, estocástico, rsi, macd .

La peculiaridad del indicador es que dibuja una flecha de señal cuando se abre la vela, es decir   en cero   barra y mientras se forma la vela, la flecha cuelga, y después de que la vela se cierra, no se vuelve a dibujar.

El indicador tiene 8 buffers. Porque se pueden dibujar 8 flechas: 4 para la venta para cada uno de los indicadores estándar y 4 para la compra.

Se ve así en la ventana de datos:

Búferes de indicadores en la ventana de datos

Como yo   Entiendo que el búfer cero es la flecha en el estocástico en las aldeas. El primer búfer es una flecha en el estocástico para una compra. La segunda flecha de amortiguación en el ao se sentó. El tercer búfer es una flecha ao para comprar. El cuarto búfer es una flecha en rsi para sentarse. La quinta es la flecha rsi para comprar. La sexta es la flecha MACD . al pueblo Y el séptimo búfer es la flecha MACD para una compra.

Transferí todos los parámetros de entrada del indicador al EA:

 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;                 // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ


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


Más adelante, para empezar, quiero implementar la lógica más simple: apareció una flecha en cualquiera de los búferes, abro una orden ...

 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 , "ДИВЕРГЕНЦИЯ НА СЕЛ СТОХАСТИК" ); // ОТКРКЫВВАЕМ СЕЛ ОРДЕР
   }
   }
   }
   }



 

Para empezar, declaré variables para recibir señales de ao buy y sat, ya través de la función iCustom obtengo el valor de ao buy del tercer búfer y de ao sat del segundo .   Y de la misma manera obtengo valores para compra estocástica desde cero   buffer y para el estocástico se sentó desde el primer buffer.

Después de recibir los valores de los búferes en las variables, verifico la presencia de una flecha en el gráfico.

En el probador de estrategias, resulta que si enciendo el análisis por AO en los parámetros de entrada, se abren tratos, todo está bien ... Y si enciendo el análisis por estocástico, entonces no pasa nada, no hay errores o Algo más. Dígame, por favor, ¿qué estoy haciendo mal al obtener el valor del búfer del indicador o al verificar que hay algo en él? ¿Cómo arreglar mi error?

Gracias de antemano. p/s respondo de inmediato lo posible   la pregunta es, ¿por qué los comentarios están escritos en mayúsculas? ¿Estoy enfermo? ¿Debería hacer esto? Escribo porque me conviene verlo por mi primera discapacidad.   grupos después del coma a los 1,5 meses.

 

 

Para empezar, declaré variables para recibir señales de ao buy y sat, ya través de la función iCustom obtengo el valor de ao buy del tercer búfer y de ao sat del segundo .   Y de la misma manera obtengo valores para compra estocástica desde cero   buffer y para el estocástico se sentó desde el primer buffer.

Después de recibir los valores de los búferes en las variables, verifico la presencia de una flecha en el gráfico.

En el probador de estrategias, resulta que si enciendo el análisis por AO en los parámetros de entrada, se abren tratos, todo está bien ... Y si enciendo el análisis por estocástico, entonces no pasa nada, no hay errores o Algo más. Dígame, por favor, ¿qué estoy haciendo mal al obtener el valor del búfer del indicador o al verificar que hay algo en él? ¿Cómo arreglar mi error?

Gracias de antemano. p/s respondo de inmediato lo posible   la pregunta es, ¿por qué los comentarios están escritos en mayúsculas? ¿Estoy enfermo? ¿Debería hacer esto? Escribo porque me conviene verlo por mi primera discapacidad.   grupos después del coma a los 1,5 meses.

 

 
DanilaMactep:


Para empezar, hay muchos paréntesis innecesarios en el código

y para ver cuál es el problema sin leer el código, es necesario ejecutar el EA en el probador

 
DanilaMactep, tal vez valga la pena acortar la pregunta considerablemente. Supongo que poca gente querrá "solucionarlo" gratis.
 

Estúpido. 132 bares. Tengo 6 valores en cada barra. ¿Cómo lo escribo en forma de matriz? No quiero usar una estructura).

 

Uh...

double prices[132,6];

¿Qué?