Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1319

 
Aleksey Vyazmikin:

Qu'entendez-vous par"format de masquage " ? Comme d'habitude, par exemple "*.csv", indiquez séparément le répertoire dans lequel lancer la recherche.

Eh bien, "habituellement" peut être différent. Les standards de l'OS peuvent être étendus en fonction de vos besoins. Par exemple, vous pouvez spécifier la date dans le nom dans différents formats, etc.

 
Aleksey Vyazmikin:
Je recherche une fonction pour rechercher le répertoire d'un fichier par masque, la recherche doit passer par tous les sous-répertoires, la fonction doit retourner un tableau avec le chemin complet du fichier. Veuillez partager une telle fonction.
FileFindFirst

FileFindFirst prend en charge la recherche par masque. Il ne reste plus qu'à écrire une fonction récursive pour tous les sous-répertoires.

 
Aleksey Mavrin:

Si une telle question se pose, cela signifie qu'il est trop tôt pour résoudre un tel problème, vous devez apprendre les bases. Mais maintenant, au lieu du méchant moi, des personnes gentilles vont venir et tout expliquer calmement.

Et je vais juste demander - avez-vous regardé ce qui se passe dans cette méthode ?

J'ai probablement compris au départ que la méthode ne sera pas appelée, car j'ai surchargé la fonction et je vais mettre en œuvre mon algorithme. J'ai déjà implémenté un algorithme pour le traitement des commandes dans la méthode. Je ne connais que MQL5 en C/C++ mais je l'ai écrit il y a longtemps. J'ai regretté ma question :)
 
Aleksey Mavrin:

Eh bien, "habituellement" peut être différent. Le système d'exploitation standard peut également être étendu pour répondre à vos besoins. Par exemple, la date figurant dans le nom peut être définie dans différents formats, etc.

Je ne vois pas l'intérêt de rendre les choses plus compliquées.

 
RickD:
FileFindFirst

FileFindFirst prend en charge la recherche par masque. Il reste à écrire une fonction récursive pour tous les sous-répertoires.

Je connais la théorie, merci.

 

Bon après-midi à tous. J'essaie d'écrire un conseiller sur un indicateur personnalisé.

Sur le graphique, il dessine des flèches comme celle-ci


indicateur de graphique des prix

L'indicateur a tellement de paramètres. Première partie.


RÉGLAGES DES INDICATEURS PARTIE 1

et la deuxième partie des paramètres


Réglages des indicateurs partie 2

L'indicateur recherche les divergences sur la base de l'un des 4 indicateurs classiques - ao, stochastique, rsi, macd .

La particularité de l'indicateur est qu'il dessine une flèche de signalisation lorsque la bougie s'ouvre, c'est-à-dire   à zéro   barre et pendant la formation de la bougie, la flèche se bloque et une fois la bougie fermée, elle n'est pas redessinée.

L'indicateur a 8 tampons. Puisque 8 flèches peuvent être tirées - 4 à vendre pour chacun des indicateurs standard et 4 à acheter.

Cela ressemble à ceci dans la fenêtre de données :

Tampons indicateurs dans la fenêtre de données

Comme moi   Je comprends que le tampon zéro est la flèche sur les stochastiques des villages. Le premier tampon est une flèche sur le stochastique pour un achat. La deuxième flèche tampon sur l'ao s'est assise. Le troisième tampon est une flèche ao pour acheter. Le quatrième tampon est une flèche sur rsi pour s'asseoir. Le cinquième est la flèche rsi pour acheter. Le sixième est la flèche MACD au village Et le septième tampon est la flèche MACD pour un achat.

J'ai transféré tous les paramètres d'entrée de l'indicateur à l'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;                 // ОПОВЕЩАТЬ О СИГНАЛЕ НА МОБИЛЬНЫЙ


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


Plus loin, cochez, pour commencer, je veux mettre en œuvre la logique la plus simple - une flèche est apparue sur l'un des tampons, j'ouvre une commande ...

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



 

Pour commencer, j'ai déclaré des variables pour recevoir des signaux pour ao buy et sat, et grâce à la fonction iCustom j'obtiens la valeur pour ao buy du troisième tampon et pour ao sat du deuxième .   Et de la même manière j'obtiens des valeurs pour l'achat stochastique à partir de zéro   tampon et pour le stochastique assis à partir du premier tampon.

Après avoir reçu les valeurs des tampons dans les variables, je vérifie la présence d'une flèche sur le graphique.

Dans le testeur de stratégie, il s'avère que si j'active l'analyse par AO dans les paramètres d'entrée, alors les transactions sont ouvertes - tout va bien ... Et si j'active l'analyse par stochastique, alors rien ne se passe - pas d'erreurs ou rien d'autre. Dites-moi s'il vous plaît - qu'est-ce que je fais de mal en obtenant la valeur du tampon indicateur ou en vérifiant qu'il y a quelque chose dedans? Comment réparer mon erreur ?

Merci en avance. p / s je réponds immédiatement au possible   la question est, pourquoi les commentaires sont-ils écrits en majuscules - suis-je malade, dois-je le faire ? J'écris parce que c'est pratique pour moi de le regarder à cause de mon premier handicap.   groupes après le coma à 1,5 mois.

 

 

Pour commencer, j'ai déclaré des variables pour recevoir des signaux pour ao buy et sat, et grâce à la fonction iCustom j'obtiens la valeur pour ao buy du troisième tampon et pour ao sat du deuxième .   Et de la même manière j'obtiens des valeurs pour l'achat stochastique à partir de zéro   tampon et pour le stochastique assis à partir du premier tampon.

Après avoir reçu les valeurs des tampons dans les variables, je vérifie la présence d'une flèche sur le graphique.

Dans le testeur de stratégie, il s'avère que si j'active l'analyse par AO dans les paramètres d'entrée, alors les transactions sont ouvertes - tout va bien ... Et si j'active l'analyse par stochastique, alors rien ne se passe - pas d'erreurs ou rien d'autre. Dites-moi s'il vous plaît - qu'est-ce que je fais de mal en obtenant la valeur du tampon indicateur ou en vérifiant qu'il y a quelque chose dedans? Comment réparer mon erreur ?

Merci en avance. p / s je réponds immédiatement au possible   la question est, pourquoi les commentaires sont-ils écrits en majuscules - suis-je malade, dois-je le faire ? J'écris parce que c'est pratique pour moi de le regarder à cause de mon premier handicap.   groupes après le coma à 1,5 mois.

 

 
DanilaMactep:


Il y a beaucoup de parenthèses inutiles dans le code pour commencer.

et pour voir quel est le problème sans lire le code, vous devez exécuter l'EA dans le testeur.

 
DanilaMactep, il peut être utile de raccourcir considérablement la question. Je suppose que peu de gens voudront "régler le problème" gratuitement.
 

Stupide. 132 bars. J'ai 6 valeurs sur chaque barre. Comment puis-je l'écrire sous forme de tableau ? Je ne veux pas utiliser une structure).

 

Euh...

double prices[132,6];

Quoi ?