Stratejik tahmin sistemleri - sayfa 39

 
-Aleksey- :
Açıklayıcı soru: Grafikteki tüm mumlar için veya son mumların belirli bir sayısı için her an gerekli olan koşullu göstergenin değerleri mi?
son olarak, belirli bir pencere tarafından ayarlanması arzu edilir.
 

İşte çalışma kodumdan bir parça. Kapanırken hiç sorun yaşamadım (biraz değiştirdim)

int i, toplam = SiparişlerToplam(), kayma = 50;

boolAns;
for (i = toplam-1; i >=0; i--) {
OrderSelect (i, SELECT_BY_POS, MODE_TRADES);
if (OrderSymbol() == Symbol()) {
if(OrderType()==OP_BUY) {
Print("SATIŞI KAPAT");
ans = yanlış;
while(Ans==yanlış) {
Ans = OrderClose(OrderTicket(),OrderLots(),Teklif, kayma, DodgerBlue);
uyku(1000);
Yeniler();
}
}
if(OrderType() == OP_SEL) {
Print("SATIŞI KAPAT");
ans = yanlış;
while(Ans==yanlış) {
Ans = OrderClose(OrderTicket(),OrderLots(),Sor, kayma, Turuncu);
uyku(1000);
Yeniler();
}
}
}
}

 
rulabs :

İşte çalışma kodumdan bir parça. Kapanırken hiç sorun yaşamadım (biraz değiştirdim)

...

Çok teşekkürler!!! Yapmaya çalışacağım.
 
Farnsworth :
Çok teşekkürler!!! Yapmaya çalışacağım.
Konu için teşekkürler. Bir şey olup olmadığını sorun.
 
Farnsworth :
son olarak, belirli bir pencere tarafından ayarlanması arzu edilir.

Ben şu şekilde uygulattım:

 //---начало блока глобальных переменных---------------
int GLOBAL_DATA_LIMIT;
bool first_run=true;
//---конец блока глобальных переменных
//++++++++++++++++++++++++++++++++++++
//---начало блока инициализации
void OnInit ()
   {
      GLOBAL_DATA_LIMIT= расчет числа данных(длины окна данных), необходимых для расчета окна условного индикатора заданной длины
      ....инициализация
  }
//---конец блока инициализации индикатора
//+++++++++++++++++++++++++++++++++++++++
//---начало блока обновления индикатора--
int OnCalculate (
                   const int rates_total,       // current size of the timeseries array
                   const int prev_calculated,   // size of the timeseries array got by reurn value the last time
                   const datetime & time[],     // Time
                   const double & open[],       // Open
                   const double & high[],       // High
                   const double & low[],         // Low
                   const double & close[],       // Close
                   const long & tick_volume[],   // Tick Volume
                   const long & volume[],       // Real Volume
                   const int & spread[]         // Spread
                )
   {
       if (rates_total< 0 )
      {
         printf ( "На графике отсутствуют исторические данные" );
         return ( 0 );
      }
       if (rates_total<GLOBAL_DATA_LIMIT)
      {
         printf ( "Недостаточно исторических данных, необходимое количество: " + string (GLOBAL_DATA_LIMIT));
         return ( 0 );
      }
       if (prev_calculated== 0 ) // срабатывает при первом запуске, или когда история поменялась
      {
         if (first_run==true) первый расчет при запуске - в момент первого тика после инициализации
         *{
             ArrayCopy (cur_price_array, close, 0 , (rates_total- 1 )-GLOBAL_DATA_LIMIT, GLOBAL_DATA_LIMIT); - копируем в массив необходимое количество значений цены
            ...
            Со скопированным массивом проводим расчет
            Отображаем результат
            ...   
            first_run=false;
         *}
         else расчет на каждом тике
         {
         в это место вставить код *(без first_run=false;), если считать на каждом тике. Если считать не на каждом тике, а по новому бару, то вставить * в функцию isNewBar
         }         
      }
      
       if (isNewBar( _Period )) расчет на каждом баре
      {
          *{
                       ArrayCopy (cur_price_array, close, 0 , (rates_total- 1 )-GLOBAL_DATA_LIMIT, GLOBAL_DATA_LIMIT); - копируем в массив необходимое количество значений цены
                      ...
                      Со скопированным массивом проводим расчет
                      Отображаем результат
                      ...
         *}
      }
       return (rates_total);
   } 
//---конец блока обновления индикатора---
 

Bu, her çubuk veya kene üzerinde m(GLOBAL_DATA_LIMIT) kopyalanan fiyat değerlerine dayalı bir veya daha fazla n gösterge değerini hesaplamak için bir şemadır.

Hesaplanan değerler penceresinin geçmiş değerleri değişmezse, hesaplamada (içeride) aşağıdaki gibi ilerleyebilirsiniz:

-yalnızca yeni değeri hesapla(bir);

- hesaplanan değer penceresini (sonuçları olan bir dizi) 1 indeks sola kaydırın;

- dizinin son dizinine sonuçlarla birlikte yeni bir değer yazın.


Belli mi bilmiyorum. Kod MQL5'te, 4-ku bilmiyorum ama benzer olmalı sanırım.

 
-Aleksey- :

...

Teşekkürler, inceleyeceğim.
 
Risk :

Yöneticiler, mutlak güç diktatörlüğe yol açar. Politik olarak doğru timbomuz bile bu deliliğe dayanamadı ve bir yere atıldı :)

En azından bazen her şeyi yerine koyacak bir karşıtlık olmalı, aksi takdirde matematiğin bölümlerini kimin ciddi bir şekilde tanımladığı açık değildir, ancak okul çocuklarının yardımı olmadan düzeni kapatamazlar. Yarın ne olacak?

Sen muhalefetsen, o zaman ben Papa'yım. Yazara söyleyecek söz vermiyorsunuz ve yazılarınızdaki içerik sıfır. Gerçek bir muhalefet var ve yapıcı bir şekilde karşı çıkıyor. Ve troller muhalif olamazlar, en saf halleriyle konuları yok ederler.
Bir sonraki yasaklamaya sunulursunuz.
 
rulabs :
Konu için teşekkürler. Bir şey olup olmadığını sorun.
bir meslektaşımla tartışırken neredeyse samimi bir gönderiyi kaçırıyordum. Sitedeki her birimiz kendimizden bir şeyler katıyoruz, bu yüzden “teşekkürlerimi” tam olarak kabul edemem - şube ilginç olursa, bu tüm katılımcıları sayesinde :o)
 

Konuyu canlı tutmak için :)

Pazartesi günü Moskova saatiyle 11:15'te, aptalca zaman açısından analiz yapmadan, gerçeği MT5'te açtım (zaten buna alışmanız gerekiyor :), gözlemlenen çiftler.

EURUSD ve GBPUSD yatay seyrettiği için açılmadı. Doğru olana bakmamız ve muhtemelen her gün düzeltmemiz gerekmesine rağmen, aptalca bir şekilde Cuma'ya kadar bekleteceğiz.

İlgilenen varsa bakabilir.

Giriş: 729566

Yatırımcı: iuj2seh