alex30774

 
Уровень 19

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2088



РЕКОМЕНДУЮ



Индикатор "Автостохастик" для МТ4

Здравствуйте, Андрей.
Напишите пожалуйста индикатор по следующему алгоритму.

Трейдер в настройках индикатора задаёт значение сигнальной линии стохастика, к примеру 75.
Затем указывает погрешность, к примеру 0.5(на случай если ровно 75 не будет значения, а скорей всего так оно и будет)
Затем начальное(скокого начнём искать) значение для Периода%К, к примеру 4
После начальное(скокого начнём искать) значение для Периода%D, к примеру 2
А затем начальное значение для Сглаживания, к примеру 2

Далее индикатор должен автоматически подобрать ближайшие параметры индикатора стохастика, при которых он равен указанному в настройках значению (плюс погрешность).К примеру у нас получилось значение стохастика /14,9,7/ их то и выведем на экран.

Индикатор должен примерно выгледить так:
  • +2
  • Просмотров: 1709
  • 2 марта 2024, 12:46
  • alex30774
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
советник на индикаторе CITY-Smart Signal Tool Indy
01 марта 2024
06 марта 2024

Комментарии (11)

+
0
непонятно
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 3 марта 2024, 10:29
+
0
Что именно?
avatar

  19  alex30774 Автор Сообщений: 715

  • 3 марта 2024, 11:01
+
0
Что именно?


опишите все подробно и так чтобы не было никаких разночтений
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 7 марта 2024, 14:42
+
0
Трейдер в настройках индикатора задаёт значение сигнальной линии стохастика, к примеру 75.
Затем указывает погрешность, к примеру 0.5(на случай если ровно 75 не будет значения, а скорей всего так оно и будет)
Затем диапазон поиска значение для Периода%К, к примеру с 4 до 40
для Периода%D с 2 до 20
и для Сглаживания с 2 до 40.
Индикатор начинает проверять с минимального параметра стохастика которым согласно настройкам являются 4,2,2. Если при указанных начальных параметрах значение стохастика не равно 75, то переходим к следующему параметру 5,2,2. Если при указанных начальных параметрах значение стохастика не равно 75, то переходим к следующему параметру 6,2,2. и так далее пока не дайдём до параметра 40,2,2.
Если дойдя до параметра 40,2,2 так и не нашли стохастик со значением 75, то проверка продолжается(начинается) уже с параметра 4,3,2.Если при указанных начальных параметрах значение стохастика не равно 75, то переходим к следующему параметру 5,3,2. Если при указанных начальных параметрах значение стохастика не равно 75, то переходим к следующему параметру 6,3,2. и так далее пока не дайдём до параметра 40,3,2.
Вообщем так весь указаный диаапазон нужно проверить от 4,2,2 до 40,20,40.Начиная с минимального параметра и перемещаясь по возврастанию к максимальному, до тех пор пока не наткнёмся на значение 75.Но как я уже говорил ровно 75 вряд ли будет, поэтому и нужен дополнительный параметр погрешность.Как только попался стохастик с указаным значением(семьдесят пять), выводим на экран параметры стохастика.
Если при проверке всех параметров не попался стохастик со значение 75, то на экране появлется надпись, о том, что нет параметров.
Такой вариант является самым лучшим.

Если подобное очень сложно написать, то может в языке mql4 есть какой-нибудь генератор случайных чисел, и может как-то через попробовать написать.

avatar

  19  alex30774 Автор Сообщений: 715

  • 9 марта 2024, 18:03
+
0
Слово «скокого»
avatar

  10  njdftgh Сообщений: 209 - Shoom

  • 3 марта 2024, 17:47
+
+1
набросал такую штуку:


//+------------------------------------------------------------------+
//|                                                    AutoStoha.mq4 |
//|                                              Copyright 2024, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int main=75;

input int kp=5;
input int dp=3;
input int sl=3;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   EventSetTimer(1);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---


//--- return value of prev_calculated for next call
   return(rates_total);
  }

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   int i=0,k=0,n=0;

   int sto=0;

   for(i=kp; i<main; i++)
     {
      for(k=dp; i<22; i++)
        {
         for(n=sl; i<22; i++)
           {
            sto=int(iStochastic(NULL,0,i,k,n,0,0,0,0));

            if(sto==main)
               break;
           }
        }
     }

   Comment("\n KPeriod: ",i,
           "\n DPeriod: ",k,
           "\n Slowing: ",n,
           "\n Stoha: ",sto);
  }
//+------------------------------------------------------------------+



проверять на открытом рынке нужно будет
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 10 марта 2024, 10:59
+
0
Спасибо, потестирую сегодня на биткоине.
P.S.проверил на битке работает не коректно(брокер АМаркетс)
avatar

  19  alex30774 Автор Сообщений: 715

  • 10 марта 2024, 12:27
+
+1
на эфире и битке проверил:


//+------------------------------------------------------------------+
//|                                                    AutoStoha.mq4 |
//|                                              Copyright 2024, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

input int main=75;

input int kp=5;
input int dp=3;
input int sl=3;

int i=0,k=0,n=0,s=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   EventSetMillisecondTimer(300);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   Comment("");
   EventKillTimer();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---


//--- return value of prev_calculated for next call
   return(rates_total);
  }

//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   for(i=kp,k=dp,n=sl; i<main; i++,k++,n++)
     {
      s=int(iStochastic(NULL,0,i,k,n,0,0,0,0));

      if(s==main)
         break;
     }

   Comment("\n KPeriod: ",i,
           "\n DPeriod: ",k,
           "\n Slowing: ",n,
           "\n Stoha: ",s);
  }
//+-----------------------------------------------------------
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 10 марта 2024, 13:28
+
0
Этот вариант получше, но не фиксируются параметры индикатора(скачут каждую секунду): то паказывает 75,3,3 затем меняются на 17,15,15.А затем на 75,73,73.Вобщем не сразу понятно какой вариант верный.
P.S. Может быть тогда брать значение с предыдущего бара, что бы показания не скакали
P.S.S. Проверил на евродолларе тоже скачут: сначала паказывает 75,3,3 затем перескакивают на 75,73,73 и так каждую секунду.
Редактирован: 10 марта 2024, 14:19
avatar

  19  alex30774 Автор Сообщений: 715

  • 10 марта 2024, 14:03
+
+1
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 10 марта 2024, 18:19
+
0
Спасибо большое.
avatar

  19  alex30774 Автор Сообщений: 715

  • 10 марта 2024, 19:07

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари