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

 
Sprut 185 :

Katıldığınız için teşekkürler.

Maalesef ObjectSet*** işlevi   görevim için çalışmadı.

OnDeinit() işlevini kullanarak sorunu kendim çözdüm.

Şimdi her şey çalışıyor - olması gerektiği gibi.

Ama sorunuzda böyle kelimeler var

Sürgün 185 :

Lütfen bir sorunu çözmeme yardım edin!  

Kod yazmayı yeni öğreniyorum ve bu konuda cehaletime müsamaha göstermenizi rica ediyorum.

 

Zaman çerçevesini değiştirirken veya gösterge menüsündeki ayarları değiştirirken, grafikteki grafik nesneleri güncelleyecek ve gösterge kapatıldığında, tüm grafik nesnelerini grafikten tamamen kaldıracak OnChartEvent işlevini anlamama yardımcı olun - bu gösterge.

Önce grafik nesneleri silmeniz ve sonra yeniden oluşturmanız gerektiğini anlıyorum. Ancak, nesneler silinirse, özelliklerine erişim artık mümkün değildir ve ardından ,   bu nesneleri yeniden yaratmak için ....... yoksa bir şey mi anlamadım ? Ya da belki başka bir yol daha vardır - grafikteki grafik nesnelerini güncellemek ?

Bunun nasıl yapılacağına dair yorumlarla bir örnek yazmanızı rica ediyorum.

Ve silmemek için, ObjectSet işlevlerinden birinin istenen nesne özelliğini değiştirmeniz yeterlidir *** .

Tüm nesneleri silmeye gelince……… Her şeyi ayrım gözetmeden silerken çok dikkatli olmalısınız… Tablodaki nesneler arasında eller veya başka bir EA/gösterge ile oluşturulmuş nesneler olabilir. Nesneleri silme seçeneğinden memnunsanız, önekle silmeye dikkat edin. Doğru ve bir önek ile oluşturmanız gerekiyor. Zor değil.

 
fonksiyonunun sonucu nedir?

iSpread?


Terminaldeki Semboller/Çubuklar'da çubuklar için bir talepte bulunursanız, yayılma değerine yaklaşık olarak benzer olduğunu görüyorum.

Aynı zamanda doğal olarak bu değerler SYMBOL_SPREAD tarafından yayınlanan gerçek değerlere karşılık gelmemektedir.

Neden böyle bir fark? Ve iSpread tarafından ne tür gerçekçi olmayan bir yayılma yapılır?

 
Aleksei Skrypnev :
fonksiyonunun sonucu nedir?

iSpread?


Terminaldeki Semboller/Çubuklar'da çubuklar için bir talepte bulunursanız, yayılma değerine yaklaşık olarak benzer olduğunu görüyorum.

Aynı zamanda doğal olarak bu değerler SYMBOL_SPREAD tarafından yayınlanan gerçek değerlere karşılık gelmemektedir.

Neden böyle bir fark? Ve iSpread tarafından ne tür gerçekçi olmayan bir yayılma yapılır?

Barda minimum yayılma.

Kontrol etmek için bir arabellek ekledim - spread[] gösterge dizisinden veri alır ve mevcut çubuk için bir yorum görüntüler - iSpread'in sonucu


Burada talimat nasıl çalıştırılır: Yayılma Kontrolü

Spread Control
Spread Control
  • www.mql5.com
Просмотр спреда
Dosyalar:
 

Selamlar!

Bana bu anı söyle: "ATR14" değişkeni neden değişmiyor? Ve değişimini görmek için nasıl yapılır?

 void OnTick ()
{

double ATR14= iATR ( NULL , PERIOD_CURRENT , 14 );

Comment (
 
       "ATR14==: " ,ATR14, "\n" );
}
 
Alexey Belyakov :

Selamlar!

Bana bu anı söyle: "ATR14" değişkeni neden değişmiyor? Ve değişimini görmek için nasıl yapılır?

Çünkü MQL5'te gösterge tutamacı (ve bu arada int tipine sahiptir) BİR KEZ oluşturulur ve bu OnInit'te yapılır.

Göstergeden veri almak için CopyBuffer kullanılır .

 
Vladimir Karputov :

Çünkü MQL5'te gösterge tutamacı (ve bu arada int tipine sahiptir) BİR KEZ oluşturulur ve bu OnInit'te yapılır.

Göstergeden veri almak için CopyBuffer kullanılır .

taksi diyelim

double   ATR14m[];   

int ATR14;

int OnInit ()
  {
ATR14= iATR ( NULL , PERIOD_CURRENT , 14 );
   return ( 0 );   
  }
  
  
void OnDeinit ( const int reason)
  {
//---  
  }


void OnTick ()
{
CopyBuffer (ATR14, 0 , 0 , 3 ,ATR14m);



Comment (

       "ATR14==: " ,ATR14, "\n" );

}



hiçbirşey değişmedi

 
Alexey Belyakov :

Selamlar!

Bana bu anı söyle: "ATR14" değişkeni neden değişmiyor? Ve değişimini görmek için nasıl yapılır?

işte bir örnek https://www.mql5.com/en/docs/indicators/iatr

Документация по MQL5: Технические индикаторы / iATR
Документация по MQL5: Технические индикаторы / iATR
  • www.mql5.com
iATR - Технические индикаторы - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Belyakov :

taksi diyelim

hiçbirşey değişmedi

Neredeyse başardın. 'ATR14m' yerine 'array_atr' dizisini çağırmanızı öneririm. Ardından ' Yorum ' çağrısında hatanızı hızlıca göreceksiniz.

 
Vladimir Karputov :

Neredeyse başardın. 'ATR14m' yerine 'array_atr' dizisini çağırmanızı öneririm. Ardından ' Yorum ' çağrısında hatanızı hızlıca göreceksiniz.

 double   array_atr[];   

int ATR14;

int OnInit ()
  {
ATR14= iATR ( NULL , PERIOD_CURRENT , 14 );
   return ( 0 );   
  }
   
void OnDeinit ( const int reason)
  {
//---  
  }

void OnTick ()
{


CopyBuffer (ATR14, 0 , 0 , 3 ,array_atr);

Comment (

       "ATR14==: " ,array_atr, "\n" );

}

Değiştirildi ve hata aldı: " 'array_atr' - geçersiz dizi erişimi "


 
Vladimir Karputov :

Neredeyse başardın. 'ATR14m' yerine 'array_atr' dizisini çağırmanızı öneririm. Ardından ' Yorum ' çağrısında hatanızı hızlıca göreceksiniz.

Bir çocuk saksısına gece vazosu denirse, bir şeylerin değişeceğini düşünüyor musunuz?

Öyle bir yanlış anlaşılma var ki, bir şey önermeye bile cesaret edemedim... Anlamak için belgeyi 50 kere okumak gerek...