MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 443

 
Alexey Viktorov : Açarken ve kapatırken kayma.

Alexey! MT5 bugün genellikle ayrıntılı hale geldi - TP'nin yorumundaki kopyalar:


 
STARIJ :

Teşekkürler Alexey!!! Ben de öyle düşündüm - ama nasıl kontrol edilir? ne olduğunu nasıl anladın? Ve neden gerçek hayatta yoklar? Belki eski olduğu ve demo yeni bir hesap olduğu için?

tp fiyatı ile emir kapanış fiyatı arasındaki farkı _Puan'a bölün ve bunu emir yorumundaki girişle karşılaştırın. Aynen öyle öğrendim. Rastgele tesadüf süresiz ve istikrarlı bir şekilde devam edemez. Gerçekte, görünüşe göre böyle bir kayma yok. Sahip olduğum halde. İşte tam olarak bunu anladım. İlk başta kapanışın tp olduğunu ve kapanış fiyatının yeşil renkte vurgulanmadığını fark ettim.

 

Merhaba, lütfen yardım edin.

Herhangi bir zamanda, üzerinde bir gösterge okunun bulunduğu çubuğun numarasını bilmek istiyorum.

Örnekte ok onuncu çubukta ise tamponu doldurmaya çalıştım.

int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
//---
   if (rates_total< 2 ) return ( 0 );
   int limit=rates_total-prev_calculated;
   if (limit> 1 )
     {
      limit=rates_total- 2 ;
       ArrayInitialize (BufferUP, EMPTY_VALUE );
       ArrayInitialize (BufferDN, EMPTY_VALUE );
     }
   for ( int i=limit; i>= 0 ; i--)
     {
       for ( int il=i+ 1 ;il<=i+ 300 ;il++)
        {
         if ( NormalizeDouble ( iCustom ( NULL , 0 , "Arrow v.3" , 0 ,il), Digits )!= EMPTY_VALUE
            )
           {
            num_buy=il;
             break ;
           }
        }
       //
       if (num_buy== 10 )
        {
         BufferUP[i+ 1 ]=low[i+ 1 ]-distance*MyPoint;

        }

       for ( int il=i+ 1 ;il<=i+ 300 ;il++)
        {
         if ( NormalizeDouble ( iCustom ( NULL , 0 , "Arrow v.3" , 1 ,il), Digits )!= EMPTY_VALUE
            )
           {
            num_sell=il;
             break ;
           }
        }
       if (num_sell== 10 )
        {
         BufferDN[i+ 1 ]=high[i+ 1 ]+distance*MyPoint;
         
         
        }

       Comment (num_buy, "num_sell" ,num_sell);
     }
//--- return value of prev_calculated for next call

   return (rates_total);
  }

nerede yanlış?

 
mila.com : Merhaba, lütfen yardım edin.
Herhangi bir zamanda, üzerinde bir gösterge okunun bulunduğu çubuğun numarasını bilmek istiyorum.
Örnekte ok onuncu çubukta ise tamponu doldurmaya çalıştım.
nerede yanlış?

Genellikle kontrol ederken - başlarım ve sonuca bakarım. Ve işte kodun sadece bir parçası. Burada her şey çok küçük, görmek zor - editörde daha büyük

 if ( NormalizeDouble ( iCustom ( NULL , 0 , "Arrow v.3" , 0 ,il), Digits )!= EMPTY_VALUE )
{
    num_buy=il;
    break ;  // Это выход из цикла. Остальные бары лишаются чести быть просмотренными. Ошибка здесь?
}
 

Merhaba, göstergenin verileri bir dosyaya kaydetmesini nasıl sağlayacağımı söyle

yalnızca RSI göstergesi Williams'ın Yüzde Aralığı yerine


//| uzman başlatma işlevi |

//+------------------------------------------- --------------------+

int başlangıç()

{

//----

int iRSI;

iRSI=FileOpen("File.txt", FILE_CSV|FILE_WRITE , '\t');

//------------------------------------------------ //

//------------------------------------------------ -//

if(iRSI>0)

{

FileWrite(iRSI, [0]);

FileClose(iRSI);

}

//----

dönüş(0);

}

 
STARIJ :

Burada her şey çok küçük.

Tarayıcı yakınlaştırma özelliğine sahiptir)

YILDIZ :
Ошибка здесь?


Ne yazık ki, tek hata bu değil.

Geçerli çubuktan yorumda doğru değer görüntülenir, şimdi num_buy 9

Neden tarihte bir durum yok?

 if (num_buy== 10 )

işaretlendi, danışmanda çubuktaki ok 10 olduğunda bir pozisyon açar

 for ( int il= 1 ;il<= 300 ;il++)
        { 
         if ( NormalizeDouble ( iCustom ( NULL , 0 , "Arrow v.3" , 0 ,il), Digits )!= EMPTY_VALUE )
            
           {
            num_buy=il;
             break ;
           }
        }
         if (num_buy== 10 )
           {
            B_OrderSend();
           }

Ok çubuk 10'dayken göstergeye nasıl nokta konur?

 
mila.com :

Tarayıcı yakınlaştırma özelliğine sahiptir)


Ne yazık ki, tek hata bu değil.

Geçerli çubuktan yorumda doğru değer görüntülenir, şimdi num_buy 9

Neden tarihte bir durum yok?

işaretli, danışmanda çubuktaki ok 10 olduğunda bir pozisyon açar

Ok çubuk 10'dayken göstergeye nasıl nokta konur?

Yani karşınıza çıkan ilk boş olmayan gösterge değeriyle karşılaştığınız anda döngüyü burada kesiyorsunuz. Burada on'a kadar ve ulaşmıyor.

 
Artyom Trishkin :

Yani karşınıza çıkan ilk boş olmayan gösterge değeriyle karşılaştığınız anda döngüyü burada kesiyorsunuz. Burada on'a kadar ve ulaşmıyor.

Göstergede arayı kaldırdım; STARIJ tarafından tavsiye edilen

grafikte hala bir nokta yok ve yorumlarda üçüncü ve dördüncü okların numaralarını yazıyor ama birinci ve ikinciyi (geçerli tarihe en yakın) görmüyor.

 
mila.com :

Göstergede arayı kaldırdım; STARIJ tarafından tavsiye edilen

grafikte hala nokta yok

Ve danışmana bıraktılar. Ve ne yapar? Göstergenin ilk noktasını bulur ve... kopar

 
Artyom Trishkin :

Ve danışmana bıraktılar. Ve ne yapar? Göstergenin ilk noktasını bulur ve... kopar

danışman, olasılığın kendisini kontrol etmek için yaptı, doğru açılıyor ve göstergede "Ok v.3" göstergesinin en yakın iki tamponunun değerlerini hiç görmüyor