стохастик на двух ТФ

 
Доброй ночи! Изучаю MQL5..., столкнулся с проблемой...не могу разобраться по учебнику как использовать (взять значение главной и сигнальной линии Стохастика) чтобы определить наличие сигнала на покупку в между уровнями High и Low. 
 
Mikhail Gmyrov:
Доброй ночи! Изучаю MQL5..., столкнулся с проблемой...не могу разобраться по учебнику как использовать (взять значение главной и сигнальной линии Стохастика) чтобы определить наличие сигнала на покупку в между уровнями High и Low. 

доброе утро. за мкадом тоже есть жизнь.

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

 
Mikhail Gmyrov:
Доброй ночи! Изучаю MQL5..., столкнулся с проблемой...не могу разобраться по учебнику как использовать (взять значение главной и сигнальной линии Стохастика) чтобы определить наличие сигнала на покупку в между уровнями High и Low. 

Доброго времени!


Вы хоть приложите выдержку из учебника чтобы понимать о чем речь.

 
Для меня задача следующая: при открытие каждого нового бара можно было в Print выводить сообщение о значении главной и сигнальной линии Стохастика
 
lynxntech #:

доброе утро. за мкадом тоже есть жизнь.

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

написание кода для эксперта или скрипта. Чтобы получать значения главной и сигнальной линий и дальнейшего их использования

 
Petr Zharuk #:

Доброго времени!


Вы хоть приложите выдержку из учебника чтобы понимать о чем речь.

В книге написан такой код. Но я так, подозреваю, что для решения моей задачи он не совсем подходит. За пределы массива выходит работа алгоритма

Файлы:
 
Mikhail Gmyrov #:

написание кода для эксперта или скрипта. Чтобы получать значения главной и сигнальной линий и дальнейшего их использования

самое простое создать через Мастера MQL и от-туда уже взять куда нужно

 
Mikhail Gmyrov #:

В книге написан такой код. Но я так, подозреваю, что для решения моей задачи он не совсем подходит. За пределы массива выходит работа алгоритма

Адресное пространство команд маненько попадает в область адресного пространства данных. 

Любая версия С даже не поймёт, а Вы уже ОСОЗНАЛИ !!! 

 
Mikhail Gmyrov #:

В книге написан такой код. Но я так, подозреваю, что для решения моей задачи он не совсем подходит. За пределы массива выходит работа алгоритма

Почему не подходит? Это как раз тот способ, которым получают значения индикатора. Только вы хотите стохастик использовать, а привели пример для МА. Покажите свой вариант кода для стохастика, вам укажут на проблему.

 
struct SignalTwoBars {
   double prev, last;
};
void getSTOCH(SignalTwoBars &result[], datetime time) {
   ArrayResize(result, 2);
   result[0].last = 0;
   result[0].prev = 0;
   result[1].last = 0;
   result[1].prev = 0;

   double buffer[];
   int calculated = BarsCalculated(stoch_handle);

   if (calculated <= 1) {
      DebugBreak();
      for(int i=0; i<100; i++) {
         Print("TRY: getSTOCH.calculated <= 1");
         Sleep(50);
         calculated = BarsCalculated(stoch_handle);
         if (calculated > 1) break;
      }
   }
   if (calculated <= 1) {
      Print("ERROR: getSTOCH.calculated <= 1");
      return;
   }
   // Номера буферов: 0 - MAIN_LINE, 1 - SIGNAL_LINE.
   // start_pos 0 - плавающий бар
   // start_pos 1 - последний закрытый бар
   CopyBuffer(stoch_handle, MAIN_LINE, time, 2, buffer); // %K синяя линия, ранняя
   result[0].last = buffer[1];
   result[0].prev = buffer[0];
   CopyBuffer(stoch_handle, SIGNAL_LINE, time, 2, buffer); // %D красная линия, поздняя (в jForex жёлтая)
   result[1].last = buffer[1];
   result[1].prev = buffer[0];
}

использование:

   SignalTwoBars stochs[2];
   getSTOCH(stochs, time);
   
   prevFastStoch = stochs[0].prev; // SLOW %K
   curFastStoch = stochs[0].last;  // SLOW %K
   prevSlowStoch = stochs[1].prev; // SLOW %D
   curSlowStoch = stochs[1].last;  // SLOW %D
 
#property copyright "Copyright 2022, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
void OnTick()
  {
//creating arrays for %K line and %D line   
   double Karray[];
   double Darray[];
   
//sorting arrays from the current data   
   ArraySetAsSeries(Karray, true);
   ArraySetAsSeries(Darray, true);

//defining the stochastic indicator   
   int StochDef = iStochastic(_Symbol,_Period,14,3,3,MODE_SMA,STO_LOWHIGH);

//filling arrays with price data   
   CopyBuffer(StochDef,0,0,3,Karray);
   CopyBuffer(StochDef,1,0,3,Darray);

//calculating value of %K and %D line of cuurent data  
   float KValue = Karray[0];
   float DValue = Darray[0];
   
//commenting calcualted values on the chart   
   Comment("%K value is ",KValue,"\n"
   "%D Value is ",DValue);
      
  }
Discover new MetaTrader 5 opportunities with MQL5 community and services
Discover new MetaTrader 5 opportunities with MQL5 community and services
  • 2022.12.06
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions