Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1238

 
Alexey Viktorov :

Peki ya satırın ilk kısmı ve bir bütün olarak soru?

Biz programcıyız. Başucundaki dolu ve boş bardaklar ve tüm bunlar...

Ancak, üç olası senaryoyu ve bunlar sırasında ana gösterge hesaplama döngüsünde neler olduğunu açıkladım:

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5

Artyom Trishkin , 2020.08.06 15:17

Rates_total - prev_calculates çok verimli bir yapıdır.

  • Sıfıra eşitse, mevcut çubuk üzerinde kene ile hesaplama anlamına gelir.
  • 1'e eşitse, yeni bir çubuk ve iki çubuk hesaplanacağı anlamına gelir - geçmiş ve şimdiki
  • 1'den fazla ise, ya ilk lansman ya da geçmiş verilerde bir değişiklik anlamına gelir.
Limiti hesaplıyoruz. Ve limitten sıfıra veya sıfıra eşit olan döngüde, gösterge verilerini hesaplıyoruz. Peki, limit = oranları_toplam - önceki_hesaplamaları hesaplarken hangi sınırın eşit olduğunu kendiniz hesaplayın.

Dördüncü durum da oldukça olasıdır - sıfırdan az. Ancak for(int i=limit; i>=0; i--) ile hesaplanan döngüde hiçbir şekilde işlenmez ...

Çok az insan sadece düşünmek ister - genellikle sadece kopyala-yapıştır yaparlar. Buna göre, ilk başlatma ve geçmiş değişikliği limit>1 olduğundadır; bu, böyle bir durumda ilk başlatma hakkında yazmanız ve ön_hesaplananın sıfır olup olmadığını kontrol etmeniz gerektiği anlamına gelir.

 
Сергей Таболин :

Alexey, ilgileniyorum))) Ama hatayı görmüyorum! Ve öğrenmek ayıp değildir. Ve eğer biri daha akıllı veya daha deneyimliyse, o zaman bunda da yanlış bir şey görmüyorum.

Az önce büyük bir mum boyutu giriş parametresine sahip bir gösterge başlattım. Daha az mum olması için

Tüm şamdan fiyatları, gösterge tamponlarından hesaplanır ve yazdırılır. Hala doğru. Ve çizim yoktu ve hayır. Ve nedenini anlamıyorum...

sana teklif ettim

Alexey Viktorov :

……… N. sayıdan sonra çubukları vurgulayarak başlayın veya en az bir son kapanan. Bunu denediniz mi? İşlendi mi?

ve bir kez daha, en az bir son kapalı çubuğu vurgulayarak başlamanızı öneririm. Olumlu bir sonuç elde ettiğinizde, ancak o zaman hesaplamalara ve koşullara geçin.

 
Alexey Viktorov :

sana teklif ettim

ve bir kez daha, en az bir son kapalı çubuğu vurgulayarak başlamanızı öneririm. Olumlu bir sonuç elde ettiğinizde, ancak o zaman hesaplamalara ve koşullara geçin.

Korkarım seni anlamıyorum... Hangi barı seçmeyi öneriyorsun? Hangisi benim için şekillendi? Yoksa bir çizelgede mi?

Eğer grafikteyse, onlara a priori ihtiyacım yok. Herhangi bir TF için gösterge aynı kabul edilir.

Önceki hesaplama H1'deydi ve şimdi H4'te. Sonuç bire bir.

 2020.08 . 08 11 : 06 : 14.580 newCandles (USDJPY,H4)  ~~~~ Предварительный расчёт индикатора.
2020.08 . 08 11 : 06 : 14.789 newCandles (USDJPY,H4)   2019.01 . 02 06 : 00 : 00 >>> Свеча 00000 >> open = 109.419 hihg = 109.462 low = 105.388 close = 105.388 > Сформирована за 122162 тика.
2020.08 . 08 11 : 06 : 15.230 newCandles (USDJPY,H4)   2019.01 . 03 00 : 41 : 15 >>> Свеча 00001 >> open = 105.388 hihg = 109.388 low = 105.268 close = 109.388 > Сформирована за 1336258 тиков.
2020.08 . 08 11 : 06 : 19.056 newCandles (USDJPY,H4)   2019.01 . 17 21 : 50 : 34 >>> Свеча 00002 >> open = 109.388 hihg = 112.398 low = 105.388 close = 105.388 > Сформирована за 11546466 тиков.
2020.08 . 08 11 : 06 : 20.788 newCandles (USDJPY,H4)   2019.08 . 09 18 : 57 : 55 >>> Свеча 00003 >> open = 105.388 hihg = 109.388 low = 104.453 close = 109.388 > Сформирована за 5400916 тиков.
2020.08 . 08 11 : 06 : 22.592 newCandles (USDJPY,H4)   2019.11 . 07 17 : 57 : 24 >>> Свеча 00004 >> open = 109.388 hihg = 112.225 low = 105.384 close = 105.384 > Сформирована за 5555641 тик.
2020.08 . 08 11 : 06 : 22.725 newCandles (USDJPY,H4)   2020.03 . 06 11 : 47 : 26 >>> Свеча 00005 >> open = 105.384 hihg = 105.732 low = 101.377 close = 101.377 > Сформирована за 272724 тика.
2020.08 . 08 11 : 06 : 22.822 newCandles (USDJPY,H4)   2020.03 . 09 15 : 37 : 48 >>> Свеча 00006 >> open = 101.377 hihg = 105.378 low = 101.187 close = 105.378 > Сформирована за 314847 тиков.
2020.08 . 08 11 : 06 : 23.736 newCandles (USDJPY,H4)   2020.03 . 10 21 : 05 : 27 >>> Свеча 00007 >> open = 105.378 hihg = 109.385 low = 103.094 close = 109.385 > Сформирована за 2045775 тиков.
2020.08 . 08 11 : 06 : 27.124 newCandles (USDJPY,H4)   2020.03 . 19 04 : 13 : 11 >>> Свеча 00008 >> open = 109.385 hihg = 111.711 low = 105.385 close = 105.385 > Сформирована за 10250092 тика.
2020.08 . 08 11 : 06 : 27.296 newCandles (USDJPY,H4)  ~~~~ Предварительный расчёт индикатора закончен.
 
Сергей Таболин :

Korkarım seni anlamıyorum... Hangi barı seçmeyi öneriyorsun? Hangisi benim için şekillendi? Yoksa bir çizelgede mi?

Eğer grafikteyse, onlara a priori ihtiyacım yok. Herhangi bir TF için gösterge aynı kabul edilir.

Önceki hesaplama H1'deydi ve şimdi H4'te. Sonuç bire bir.

Aleksey size ilk başta göstergenizi en azından mum çizdirmeniz gerektiğini söyledi. Nasıllarsa öyle. En azından mevcut çubukta. Bu nasıl yapılır - anlamaya yönelik ilk adımın geçtiğini düşünün. Ancak, farklı parametreleri yazarak ve sıralayarak değil, kendi zihninizle ortaya çıkması arzu edilir.

Ve burada "önceden gerekli / gerekli değil"? Gerçekten buna ihtiyacınız var - çünkü sadece dört değerden bir mum çizemezsiniz.

 
Artyom Trishkin :

Alexey, ilk başta göstergenizi en azından mum çizdirmeniz gerektiğini söyledi. Nasıllarsa öyle. En azından mevcut çubukta. Bu nasıl yapılır - anlamaya yönelik ilk adımın geçtiğini düşünün. Ancak, farklı parametreleri yazarak ve sıralayarak değil, kendi zihninizle ortaya çıkması arzu edilir.

Ve burada "önceden gerekli / gerekli değil"? Gerçekten buna ihtiyacınız var - çünkü sadece dört değerden bir mum çizemezsiniz.

Anladım. Yapacağım. ...

 
Merhaba forumcular. Lütfen bana sinyallerin seri alımını nasıl yapacağımı söyle. Örneğin, 4 saatlik zaman diliminden ilkini alıyoruz, ardından saatlik, 15 dakika ve işleme giriş sadece minimumda mı? CodeBase'den ödünç alınan kod
 //+------------------------------------------------------------------+
//| Search trading signals                                           |
//+------------------------------------------------------------------+
bool  SearchTradingSignals( void )
  {
    if (m_prev_bars==m_last_deal_in)  // on one bar - only one deal
       return ( true );
//---
    double  ma[];
    MqlRates  rates_1[],rates_2[],rates_3[],rates_4[];
    ArraySetAsSeries (ma, true );
    ArraySetAsSeries (rates_1, true );
    ArraySetAsSeries (rates_2, true );
    ArraySetAsSeries (rates_3, true );
    ArraySetAsSeries (rates_4, true );
    int  start_pos= 0 ,count= 3 ;
    if (!iGetArray(handle_iMA, 0 ,start_pos,count,ma) ||
       CopyRates (m_symbol.Name(),Inp_Timeframe_1,start_pos,count,rates_1)!=count ||
       CopyRates (m_symbol.Name(),Inp_Timeframe_2,start_pos,count,rates_2)!=count ||
       CopyRates (m_symbol.Name(),Inp_Timeframe_3,start_pos,count,rates_3)!=count ||
       CopyRates (m_symbol.Name(),Inp_Timeframe_4,start_pos,count,rates_4)!=count)
     {
       return ( false );
     }
    int  size_need_position= ArraySize (SPosition);
    if (size_need_position> 0 )
       return ( true );

    if ((rates_1[ 0 ].open<rates_1[ 0 ].close) && (rates_2[ 0 ].open<rates_2[ 0 ].close) &&
      (rates_3[ 0 ].open<rates_3[ 0 ].close) && (rates_4[ 0 ].open<rates_4[ 0 ].close) && ma[ 2 ]<ma[ 1 ] && ma[ 1 ]<ma[ 0 ])
     {
       if (!InpReverse)
        {
          if (InpTradeMode!=sell)
           {
             ArrayResize (SPosition,size_need_position+ 1 );
            SPosition[size_need_position].pos_type= POSITION_TYPE_BUY ;
             if (InpPrintLog)
                Print ( __FILE__ , " " , __FUNCTION__ , ", OK: " , "Signal BUY" );
             return ( true );
           }
        }
       else
        {
          if (InpTradeMode!=buy)
           {
             ArrayResize (SPosition,size_need_position+ 1 );
            SPosition[size_need_position].pos_type= POSITION_TYPE_SELL ;
             if (InpPrintLog)
                Print ( __FILE__ , " " , __FUNCTION__ , ", OK: " , "Signal SELL" );
             return ( true );
           }
        }
     }
    if ((rates_1[ 0 ].open>rates_1[ 0 ].close) && (rates_2[ 0 ].open>rates_2[ 0 ].close) &&
      (rates_3[ 0 ].open>rates_3[ 0 ].close) && (rates_4[ 0 ].open>rates_4[ 0 ].close) && ma[ 2 ]>ma[ 1 ] && ma[ 1 ]>ma[ 0 ])
     {
       if (!InpReverse)
        {
          if (InpTradeMode!=buy)
           {
             ArrayResize (SPosition,size_need_position+ 1 );
            SPosition[size_need_position].pos_type= POSITION_TYPE_SELL ;
             if (InpPrintLog)
                Print ( __FILE__ , " " , __FUNCTION__ , ", OK: " , "Signal SELL" );
             return ( true );
           }
        }
       else
        {
          if (InpTradeMode!=sell)
           {
             ArrayResize (SPosition,size_need_position+ 1 );
            SPosition[size_need_position].pos_type= POSITION_TYPE_BUY ;
             if (InpPrintLog)
                Print ( __FILE__ , " " , __FUNCTION__ , ", OK: " , "Signal BUY" );
             return ( true );
           }
        }
     }
//---
    return ( true );
  }
//+------------------------------------------------------------------+

Four Timeframes 2
Four Timeframes 2
  • www.mql5.com
На одном из таймфреймов (задается через параметр 'MA Trend ') создаётся трендовый индикатор iMA (Moving Average, MA). Именно этот индикатор будет работать в качестве трендового фильтра. Тренд определяется так: MA на трёх барах (#2, #1 и #0) имеет одно направление. Советник проверяет направление бара #0 (это самый правый бар, который Вы видите...
 
Merhaba. Hem mql5 diline hem de MT5 platformuna hakim olmaya karar verdim. Test cihazı sorusu. Alıntılara göre. Weltrade'den platforma bir çift audcad koydum. EA'mda küçük bir bilgi panom var. Görselleştirme modunda, spreadlerin doğru olmadığını görüyorum (çok küçük, eurusd spreadlerine benzer). Şirketin (Veltrade) teknik desteğiyle iletişime geçtim - MT4 ve MT5 için farklı spreadler var mı? Aynı olduklarını söylediler. O zaman test cihazında böyle bir uyumsuzluk nasıl anlaşılır? Daha ileri. Genetik kodla optimize edilmeye çalışıldı. İşlemci yükü %100'dür ve birkaç dakikalık çalışmadan sonra bilgisayar kesilir (fenom II x4 955 işlemci (4 çekirdek, 3.2 GHz), soğutucu bir marjla değerlidir). İki seferden sonra artık riske atmamaya karar verdim. Bu nasıl anlaşılır? Ardından, görselleştirme olmadan test ederken, işlemlerle ilgili hiçbir bilgi yoktur, yalnızca bir grafik vardır. Acaba böyle mi yoksa ben mi yanlış yapıyorum. Evet, bilgi içeriği ile görselleştirme modunda biraz sıkı. Aslında en çok spreadlerin uyumsuzluğundan endişe ediyorum. Kısacası, ilk izlenim tam bir hayal kırıklığıdır. Ama henüz çözemediğim şeyi bırakıyorum.
 
Youri Lazurenko :
Merhaba. Hem mql5 diline hem de MT5 platformuna hakim olmaya karar verdim. Test cihazı sorusu. Alıntılara göre. Weltrade'den platforma bir çift audcad koydum. EA'mda küçük bir bilgi panom var. Görselleştirme modunda, spreadlerin doğru olmadığını görüyorum (çok küçük, eurusd spreadlerine benzer). Şirketin (Veltrade) teknik desteğiyle iletişime geçtim - MT4 ve MT5 için farklı spreadler var mı? Aynı olduklarını söylediler. O zaman test cihazında böyle bir uyumsuzluk nasıl anlaşılır? Daha ileri. Genetik kodla optimize edilmeye çalışıldı. İşlemci yükü %100'dür ve birkaç dakikalık çalışmadan sonra bilgisayar kesilir (fenom II x4 955 işlemci (4 çekirdek, 3.2 GHz), soğutucunun bir marjı vardır). İki seferden sonra artık riske atmamaya karar verdim. Bu nasıl anlaşılır? Ardından, görselleştirme olmadan test ederken, işlemlerle ilgili hiçbir bilgi yoktur, yalnızca bir grafik vardır. Acaba böyle mi yoksa ben mi yanlış yapıyorum. Evet, bilgi içeriği ile görselleştirme modunda biraz sıkı. Aslında en çok spreadlerin uyumsuzluğundan endişe ediyorum. Kısacası, ilk izlenim tam bir hayal kırıklığıdır. Ama henüz çözemediğim şeyi bırakıyorum.

Gerçek kenelere dayalı testler ayarlayın. O zaman yayılmanın geçerliliği hakkındaki tüm şüphelerinizi kaybedersiniz.


 
Alexey Viktorov :

Gerçek kenelere dayalı testler ayarlayın. O zaman yayılmanın geçerliliği hakkındaki tüm şüphelerinizi kaybedersiniz.


Teşekkürler, şimdi deneyeceğim. Optimizasyon için ne önerirsiniz? Ben daha çok hız ile ilgileniyorum. Kalite daha sonra test sırasında ayarlanabilir.

Not: Tavsiye ettiğiniz gibi yaptım, spreadler aynı. Ondan önce, özellikle hesap türünü kontrol ettim. audcad 4.1'deki spesifikasyona göre (yüzer). Aynı hesapta (demo grafiği) 4.7 (yüzer). MT5 test cihazında maksimum 2,8'dir (daha da aşağı kayar).

 
Youri Lazurenko :

Teşekkürler, şimdi deneyeceğim. Optimizasyon için ne önerirsiniz? Ben daha çok hız ile ilgileniyorum. Kalite daha sonra test sırasında ayarlanabilir.

Hiçbir şey tavsiye edemem. Optimizasyon kullanmıyorum. Ben bunu şarlatanlık olarak görüyorum.