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

Рейтинг 2093



РЕКОМЕНДУЮ



Советник по теории вероятностей

Здравствуйте. Надеюсь, я не один тут, кто не верит в бестолковые усреднители или Мартины.

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

Суть в том, чтобы брать последнюю тысячу баров, проходить по ней скользящим окном в 50 баров через цикл for, если изменение цены положительное и выше 400 пипсов, добавляем счётчик бычьих ситуаций bullcount++. Если изменение цены отрицательное, и выше 200 пипсов, добавляем счётчик медвежьих ситуаций bearcount++.

Затем, вычисляем вероятность. Делим общее количество ситуаций, складывая два счётчика, на количество бычьих ситуаций — и получаем вероятность бычьего тейка. Делим общее количество ситуаций на количество медвежьих ситуаций — получаем вероятность медвежьего тейка.

Пример: из 1000 баров окном в 50, было 9 бычьих ситуаций тейка, 9/20=0.45,*100=45% вероятности взять бычий тейк.

Гипотеза в том, что рынок инертен. Его состояние скользит по времени. И ещё это практически случайное блуждание, практически рандом, практически подброшенная монетка. Но возможно, если мы получим хоть небольшой сдвиг вероятности, эта монетка будет выгнута в нашу сторону…
  • 0
  • Просмотров: 1466
  • 1 сентября 2023, 04:20
  • Shtenco
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
Следующая запись в группе  
Индикатор рисует 5 линий
31 августа 2023
01 сентября 2023

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

+
0
самый простой вариант:
<code>//+------------------------------------------------------------------+
//|                                           Probability theory.mq4 |
//|                                               Copyright 2022     |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
extern int CountBars       = 1000;        // кол-во баров истории
extern int ClasterBars     = 50;          // кластер
extern int Pips            = 400;         // дельта
int bullcount,bearcount;
double bull,bear;
datetime t=0; 
double delta_min,delta_max;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   CheckBars();
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CheckBars()
  {
   bullcount=0;
   bearcount=0;
   delta_min=100000;
   delta_max=-1;
   for(int i=CountBars-ClasterBars; i>=0; i-=ClasterBars)
     {
      if(Close[i+ClasterBars]>Open[i] && Close[i+ClasterBars]-Open[i]>=Pips*Point)
        bullcount++;
      if(Close[i+ClasterBars]<Open[i] && Open[i]-Close[i+ClasterBars]>=Pips*Point)
        bearcount++;
      if(MathAbs(Close[i+ClasterBars]-Open[i]>delta_max))
        delta_max=MathAbs(Close[i+ClasterBars]-Open[i]);
      if(MathAbs(Close[i+ClasterBars]-Open[i]<delta_min))
        delta_min=MathAbs(Close[i+ClasterBars]-Open[i]);
     }
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(t!=Time[0])
     {
      CheckBars();
      t=Time[0];
     }
   if(bullcount>0 && bearcount>0)
     {
      bull=NormalizeDouble(bullcount*100/(bullcount+bearcount),2);
      bear=NormalizeDouble(bearcount*100/(bullcount+bearcount),2);
     }
   Comment("\n bullcount = ",bullcount,
           "\n bearcount = ",bearcount,
           "\n Вероятности взять бычий тейк = ",bull," %",
           "\n Вероятности взять медвежий тейк = ",bear," %",
           "\n Максимальная дельта кластера в ",ClasterBars," баров"," = ",(int)(delta_max/Point),
           "\n Минимальная дельта кластера в ",ClasterBars," баров"," = ",(int)(delta_min/Point));    
  }
//+------------------------------------------------------------------+

</code>

Редактирован: 1 сентября 2023, 15:24
avatar

  13  verta81 Сообщений: 357

  • 1 сентября 2023, 14:46
+
0
на 4-е
avatar

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

  • 1 сентября 2023, 18:01
+
0
Спасибо большое! А то у меня не выходит. Я даже сейчас этот код на МТ5 попытался перенести, у меня везде нули в вероятностях, и так уже кодов 5-6 выходят нули
avatar

  9  Shtenco Автор Сообщений: 238

  • 1 сентября 2023, 18:33
+
0
Сделал советник. Это немного не то. Он в реал тайм счётчик ставит. А нужно чтобы проходил по всей истории баров в 10 000 циклом
avatar

  9  Shtenco Автор Сообщений: 238

  • 1 сентября 2023, 20:19
+
0
Đây không phải là giáo dịch định lượng. Nó là chủ quan và bạn sẽ chỉ có kết quả thua lỗ. Đừng cho mình là người thông minh
avatar

  6  HoaNguyen Сообщений: 131 - HoaNguyen

  • 2 сентября 2023, 13:35
+
0
Я ничего из себя не строю. Сам я использую машинное обучение и градиентный бустинг. Это только для проверки идеи подбора тейков и стопов брутфорсом
avatar

  9  Shtenco Автор Сообщений: 238

  • 3 сентября 2023, 00:06

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