| Советник по теории вероятностей |
Здравствуйте. Надеюсь, я не один тут, кто не верит в бестолковые усреднители или Мартины.
Нужен советник по количественному анализу вероятностей. Пытался сделать сам, но ничего не выходит.
Суть в том, чтобы брать последнюю тысячу баров, проходить по ней скользящим окном в 50 баров через цикл for, если изменение цены положительное и выше 400 пипсов, добавляем счётчик бычьих ситуаций bullcount++. Если изменение цены отрицательное, и выше 200 пипсов, добавляем счётчик медвежьих ситуаций bearcount++.
Затем, вычисляем вероятность. Делим общее количество ситуаций, складывая два счётчика, на количество бычьих ситуаций — и получаем вероятность бычьего тейка. Делим общее количество ситуаций на количество медвежьих ситуаций — получаем вероятность медвежьего тейка.
Пример: из 1000 баров окном в 50, было 9 бычьих ситуаций тейка, 9/20=0.45,*100=45% вероятности взять бычий тейк.
Гипотеза в том, что рынок инертен. Его состояние скользит по времени. И ещё это практически случайное блуждание, практически рандом, практически подброшенная монетка. Но возможно, если мы получим хоть небольшой сдвиг вероятности, эта монетка будет выгнута в нашу сторону…
-
0
- Просмотров: 1898
- 1 сентября 2023, 04:20
- Shtenco
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!
Комментарии (6)
<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:2415 verta81 Сообщений: 489
35 AM2 Сообщений: 16672 - Андрей
9 Shtenco Автор Сообщений: 238
9 Shtenco Автор Сообщений: 238
6 HoaNguyen Сообщений: 147 - HoaNguyen
9 Shtenco Автор Сообщений: 238
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий