Göstergesiz Uzman Danışman Mümkün mü? - sayfa 9

 
Nikolai Semko :

Neden SeriesInfoInteger aracılığıyla yeni bir çubuk alıyorsunuz?
Hatırladığım kadarıyla, bu çok yavaş bir asenkron fonksiyon (belki bir şey değişti - kontrol etmedim).
Kural olarak, tüm tutarsızlıklar ve frenler, asenkron işlevlerin kullanılmasının sonucudur. Mümkünse onlardan kaçının.
Farklı bir şey deneyin. Örneğin, iTime veya iBars aracılığıyla.
Ve OnChartEvent'in kendisinin eşzamansız olduğunu ve saniyede 64 defadan fazla çağrılamayacağını unutmayın, yani. 15.625 milisaniyede maksimum bir kez.

SERIES_LASTBAR_DATE tarihine kadar yeni çubuk

Ve OnChartEvent'in kendisinin eşzamansız olduğunu ve saniyede 64 defadan fazla çağrılamayacağını unutmayın, yani. 15.625 milisaniyede maksimum bir kez.

Çin'de dedikleri gibi, mor bile olsa, asıl şey kar etmekti

 
Dmitry Fedoseev :

ne saflık...

Dmitry, bir tavsiye alabilir miyim?

 
Fast235 :

SERIES_LASTBAR_DATE tarihine kadar yeni çubuk

SERIES_LASTBAR_DATE yalnızca SeriesInfoInteger'da kullanılan bir Tanımlayıcıdır.

 
Fast235 :

Dmitry, bir tavsiye alabilir miyim?

Ne? Zaten bir tane verdim, tekrar ediyorum - göstergeleri nasıl yazacağınızı bilmiyorsanız, doğru çalışmadıklarını veya genel olarak göstergelere yaklaşımın kötü, yanlış, mantıksız olduğunu iddia etmemelisiniz.

 
Nikolai Semko :

SERIES_LASTBAR_DATE yalnızca SeriesInfoInteger'da kullanılan bir Tanımlayıcıdır.


 if (id>= CHARTEVENT_CUSTOM ) // Цикл событий по символам
     {
       static CNewBar M1;
       const int number=id- CHARTEVENT_CUSTOM ; //приведем в нормальный вид номер символа 0-7
       //--- проверим новый ли бар
       if (M1.NewBar(number, PERIOD_M1 ))
 
//+------------------------------------------------------------------+
//| Class Новый бар                                                  |
//+------------------------------------------------------------------+
class CNewBar
  {
protected:
   datetime          oldTime[TRADE_SYMBOLS];
public:
   bool              NewBar(int number,ENUM_TIMEFRAMES timeframe)
     {
      //--- создаем переменную newtime(тип время), присваиваем в нее из функции SeriesInfoInteger дату открытия последнего бара
      datetime newTime=datetime(SeriesInfoInteger(Symbols[number],timeframe,SERIES_LASTBAR_DATE));
      if(newTime!=oldTime[number] && newTime) // проверка на появление нового бара (новое время не равно старому и в newtime есть значение(true))
        {
         oldTime[number]=newTime; //обновим время прошлого бара
         return(true); // вернем функции NewBar true, появился новый бар
         //if(MQLInfoInteger(MQL_DEBUG))
         //   Print("Новый бар",newTime,"старый бар",oldTime); // в режиме отладки, будет выводится сообщение о значениях времен баров
        }
      //--- иначе,
      return(false); // нового бара еще нет
     };
   //---- конструктор класса
//                     CNewBar() {oldTime=NULL;}; // вызывается при создании Объекта, проинициализация тут не нужна, что-бы сразу прошел новый бар
  };
 
İşte NewBar - bu, birden fazla girişimin gerçekleştirilmediği anlamına gelir.
 
Dmitry Fedoseev :
İşte NewBar - bu, birden fazla girişimin gerçekleştirilmediği anlamına gelir.

ne kastedildiği belli değil

gördüğünüz gibi, sembol numarası yeni bar sınıfına doğru bir şekilde iletilir ve orada doğru bir şekilde işlenir.
 
Fast235 :


 if (id>= CHARTEVENT_CUSTOM ) // Цикл событий по символам


Ve bu nedir? Bunun geleneksel bir göstergeyle ne ilgisi var? Makaleleri okumak ve doğru yapmayı öğrenmek yerine anlaşılmaz bir şekilde şekillendirin. Çünkü böyle bir saflık - göstergeler "doğru çalışmıyor". Hepsi deli gibi yaratıcı.

 
Fast235 :

ne kastedildiği belli değil

Ve anlamayacaksın. NewBar bir teşhistir.