Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 2263

 
Tretyakov Rostyslav #:
Какие улучшения Вы хотите увидеть?

Вот нашел скрипт. Поставил код в советник и приступил к тестированию. Возможно это то, что я искал. Посмотрите код.

//+------------------------------------------------------------------+
//|                                               MaxMinFractals.mq4 |
//|              Copyright 2015, Artem A. Trishkin, Skype artmedia70 |
//|                       https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, Artem A. Trishkin, Skype artmedia70"
#property link      "https://login.mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int      NumberFractalsForFind=25;
int numberFractalsForFind=(NumberFractalsForFind<1)?1:NumberFractalsForFind;
//--- global variables   
double priceMax=DBL_MIN;   // Максимальная цена найденных фракталов
double priceMin=DBL_MAX;   // Минимальная цена найденных фракталов
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int numberUpFr=0, // количество проверенных верхних фракталов
       numberDnFr=0, // количество проверенных нижних фракталов
       barMaxFr=0,   // бар максимального верхнего фрактала
       barMinFr=0;   // бар максимального нижнего фрактала
   //---
   for(int i=0; i<Bars; i++) {
      double frUp=iFractals(NULL,PERIOD_CURRENT,MODE_UPPER,i);
      double frDn=iFractals(NULL,PERIOD_CURRENT,MODE_LOWER,i);
      if(frUp!=0 && numberUpFr<numberFractalsForFind) {
         numberUpFr++;
         if(frUp>priceMax) {
            priceMax=frUp;
            barMaxFr=i;
            //Print("barMaxFr="+IntegerToString(barMaxFr)+", numberUpFr="+IntegerToString(numberUpFr)+", frUp="+DoubleToString(frUp,Digits)+", priceMax="+DoubleToString(priceMax,Digits));
            }
         }
      if(frDn!=0 && numberDnFr<numberFractalsForFind) {
         numberDnFr++;
         if(frDn<priceMin) {
            priceMin=frDn;
            barMinFr=i;
            //Print("barMinFr="+IntegerToString(barMinFr)+", numberDnFr="+IntegerToString(numberDnFr)+", frDn="+DoubleToString(frDn,Digits)+", priceMin="+DoubleToString(priceMin,Digits));
            }
         }
      }
   Alert("Из верхних максимальная цена (priceMax): "+DoubleToString(priceMax,Digits)+" на баре "+IntegerToString(barMaxFr)+", время бара: "+TimeToString(Time[barMaxFr])+"\n"+
         "Из нижних минимальная цена (priceMin): "+DoubleToString(priceMin,Digits)+" на баре "+IntegerToString(barMinFr)+", время бара: "+TimeToString(Time[barMinFr]));
  }
//+------------------------------------------------------------------+
 
Vyacheslav.K #:

Вот нашел скрипт. Поставил код в советник и приступил к тестированию. Возможно это то, что я искал. Посмотрите код.

1. Ищет один раз при запуске - заполняется значение  numberUpFr и все...

2. Ищет не на последних н-баров, а среди последних н-фракталов.

 
Tretyakov Rostyslav #:
Какие улучшения Вы хотите увидеть?

Да, это то, что мне нужно. Вам большое спасибо за то, что откликнулись. 

С уважением, Вячеслав.

 
Tretyakov Rostyslav #:

1. Ищет один раз при запуске - заполняется значение  numberUpFr и все...

2. Ищет не на последних н-баров, а среди последних н-фракталов.

По первому пункту, я откровенно не понял роль  numberUpFr, в коде советника это значение наверное не нужно.

int numberFractalsForFind=(NumberFractalsForFind<1)?1:NumberFractalsForFind;

Подскажите, пожалуйста, как в этой части подправить код. 

По второму пункту - принял к сведению, в моем случае это не критично, буду считать в фракталах.

 
Vyacheslav.K #:

По первому пункту, я откровенно не понял роль  numberUpFr, в коде советника это значение наверное не нужно.

Подскажите, пожалуйста, как в этой части подправить код. 

По второму пункту - принял к сведению, в моем случае это не критично, буду считать в фракталах.

numberUpFr считает кол-во найденных UP фракталов, если убрать то будет пересчитывать все фракталы

 
Tretyakov Rostyslav #:

numberUpFr считает кол-во найденных UP фракталов, если убрать то будет пересчитывать все фракталы

Ясно, Вам спасибо! Тестирование показало соответствие написанному коду, с этим вопросом я разобрался. Теперь осталось разобраться с кодом по отрисовке линий хай-лоу дней, недель и месяцев.

С уважением, Вячеслав.

 
Здравствуйте ! Давно заметил, что версии МТ5 от MetaQuote регулярно обновляясь, всегда новее всех МТ5 остальных брокеров, как очевидное они совершеннее старых версий МТ5 других брокеров и подумал, а что если попробовать обновляемые версии МТ5 MetaQuote и у всех остальных брокеров, которых тестирую сейчас самыми разными версиями своих экспертов. Однако все попытки прописать в обновляемые версии МТ5 ссылки на МТ5 сервера других брокеров, так и не получились... Что то я не знаю. Просветите пожалуйста дедушку, как вместо старых версий МТ5 брокеров пользоваться свежими версиями МТ5 MetaQuote ? СПАСИБО ! 
 
Rustam Ayupov #:
Здравствуйте ! Давно заметил, что версии МТ5 от MetaQuote регулярно обновляясь, всегда новее всех МТ5 остальных брокеров, как очевидное они совершеннее старых версий МТ5 других брокеров и подумал, а что если попробовать обновляемые версии МТ5 MetaQuote и у всех остальных брокеров, которых тестирую сейчас самыми разными версиями своих экспертов. Однако все попытки прописать в обновляемые версии МТ5 ссылки на МТ5 сервера других брокеров, так и не получились... Что то я не знаю. Просветите пожалуйста дедушку, как вместо старых версий МТ5 брокеров пользоваться свежими версиями МТ5 MetaQuote ? СПАСИБО ! 

Зарегистрируйте демо счёт от MQ и подключившись к нему автоматом получите обновление, если оно уже есть.

Но не забывайте о том, что это бета версии, а у брокеров только релизы. И если у вас случится чего-то, брокер спросит версию, или сам увидит, то сошлётся на неадекватность беты.

 
Rustam Ayupov #:
Здравствуйте ! Давно заметил, что версии МТ5 от MetaQuote регулярно обновляясь, всегда новее всех МТ5 остальных брокеров, как очевидное они совершеннее старых версий МТ5 других брокеров и подумал, а что если попробовать обновляемые версии МТ5 MetaQuote и у всех остальных брокеров, которых тестирую сейчас самыми разными версиями своих экспертов. Однако все попытки прописать в обновляемые версии МТ5 ссылки на МТ5 сервера других брокеров, так и не получились... Что то я не знаю. Просветите пожалуйста дедушку, как вместо старых версий МТ5 брокеров пользоваться свежими версиями МТ5 MetaQuote ? СПАСИБО ! 

Кто у Вас брокер?

 
Vladimir Borisov #:

Как то так...

лучшее решение, которое вы можете реализовать сами и быстро)