Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1319

 
Aleksey Vyazmikin:

O que você quer dizer com"formato de mascaramento "? Como de costume, por exemplo, "*.csv", especifique separadamente o diretório para iniciar a busca.

Bem, "geralmente" pode ser diferente. Os padrões para OS podem ser estendidos de acordo com suas necessidades. Por exemplo, você pode especificar a data no nome em diferentes formatos, etc.

 
Aleksey Vyazmikin:
Procurando uma função para procurar no diretório de um arquivo por máscara, a busca deve passar por todos os subdiretórios, a função deve retornar um array com o caminho completo do arquivo. Por favor, compartilhe essa função.
FileFindFirst

FileFindFirst suporta a busca por máscara. Tudo o que resta é escrever uma função recursiva para todos os subdiretórios.

 
Aleksey Mavrin:

Se tal questão surgir, significa que é muito cedo para resolver tal problema, você precisa aprender o básico. Mas agora, ao invés do malvado eu, algumas pessoas amáveis virão e calmamente explicarão tudo.

E eu vou apenas perguntar - você já viu o que está acontecendo com este método?

Provavelmente acertei inicialmente que o método não será chamado, porque eu anulei a função e vou implementar meu algoritmo. Eu já implementei um algoritmo para o processamento de pedidos no método. Eu só conheço MQL5 em C/C++, mas escrevi-o há muito tempo. Eu lamentei minha pergunta :)
 
Aleksey Mavrin:

Bem, "geralmente" pode ser diferente. O sistema operacional padrão também pode ser ampliado para atender às suas necessidades. Por exemplo, a data no nome pode ser definida em diferentes formatos, etc.

Não vejo a necessidade de complicar as coisas.

 
RickD:
FileFindFirst

FileFindFirst suporta a busca por máscara. Resta escrever uma função recursiva para todos os subdiretórios.

Eu conheço a teoria, obrigado.

 

Boa tarde a todos. Estou tentando escrever um conselheiro em um indicador personalizado.

No gráfico, ele desenha setas assim


indicador gráfico de preços

O indicador tem tantas configurações. Primeira parte.


CONFIGURAÇÕES DO INDICADOR PARTE 1

e a segunda parte das configurações


Configurações do indicador parte 2

O indicador procura divergências com base em um dos 4 indicadores clássicos - ao, estocástico, rsi, macd .

A peculiaridade do indicador é que ele desenha uma seta de sinal quando a vela abre, ou seja,   em zero   bar e enquanto a vela está sendo formada, a seta trava, e depois que a vela é fechada, ela não é redesenhada.

O indicador tem 8 buffers. Porque 8 setas podem ser desenhadas - 4 para venda para cada um dos indicadores padrão e 4 para compra.

Fica assim na janela de dados:

Buffers indicadores na janela de dados

Como eu   Eu entendo que o buffer zero é a seta no stochastics nas aldeias. O primeiro buffer é uma seta no estocástico para uma compra. A segunda seta de buffer no ao sentou-se. O terceiro buffer é uma seta ao comprar. O quarto buffer é uma seta no rsi para sentar. A quinta é a seta rsi para comprar. A sexta é a seta MACD Para a vila E o sétimo buffer é a seta MACD para uma compra.

Eu transferi todos os parâmetros de entrada do indicador para o 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;                 // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ


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


Além disso, para começar, quero implementar a lógica mais simples - uma seta apareceu em qualquer um dos buffers, abro um pedido ...

 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 começar, declarei variáveis para receber sinais para ao buy e sat, e através da função iCustom recebo o valor para ao buy do terceiro buffer e para ao sat do segundo .   E da mesma forma recebo valores para compra estocástica do zero   buffer e para o estocástico sentou-se do primeiro buffer.

Depois de receber os valores dos buffers nas variáveis, verifico a presença de uma seta no gráfico.

No testador de estratégia, acontece que, se eu ativar a análise por AO nos parâmetros de entrada, os negócios serão abertos - tudo está bem ... E se eu ativar a análise por estocástico, nada acontecerá - sem erros ou algo mais. Diga-me por favor - o que estou fazendo de errado ao obter o valor do buffer do indicador ou verificar se há algo nele? Como corrigir meu erro?

Agradeço antecipadamente. p/s eu respondo imediatamente o possível   a questão é: por que os comentários são escritos em maiúsculas - estou doente, devo fazer isso? Estou escrevendo porque é conveniente para mim assisti-lo por causa da minha primeira deficiência.   grupos após coma em 1,5 meses.

 

 

Para começar, declarei variáveis para receber sinais para ao buy e sat, e através da função iCustom recebo o valor para ao buy do terceiro buffer e para ao sat do segundo .   E da mesma forma recebo valores para compra estocástica do zero   buffer e para o estocástico sentou-se do primeiro buffer.

Depois de receber os valores dos buffers nas variáveis, verifico a presença de uma seta no gráfico.

No testador de estratégia, acontece que, se eu ativar a análise por AO nos parâmetros de entrada, os negócios serão abertos - tudo está bem ... E se eu ativar a análise por estocástico, nada acontecerá - sem erros ou algo mais. Diga-me por favor - o que estou fazendo de errado ao obter o valor do buffer do indicador ou verificar se há algo nele? Como corrigir meu erro?

Agradeço antecipadamente. p/s eu respondo imediatamente o possível   a questão é: por que os comentários são escritos em maiúsculas - estou doente, devo fazer isso? Estou escrevendo porque é conveniente para mim assisti-lo por causa da minha primeira deficiência.   grupos após coma em 1,5 meses.

 

 
DanilaMactep:


Há muitos parênteses desnecessários no código para começar com

e para ver qual é o problema sem ler o código, você precisa executar a EA no testador

 
DanilaMactep, pode valer a pena encurtar consideravelmente a questão. Presumo que poucas pessoas vão querer "resolver isso" de graça.
 

Estúpido. 132 barras. Eu tenho 6 valores em cada barra. Como escrevo como uma matriz? Eu não quero usar uma estrutura).

 

Uh...

double prices[132,6];

o que?