Ücretsiz bir gösterge yazacağım - sayfa 18

 
Yurij Izyumov :
Kene hacmi mum üzerine nasıl dağıtılır, mumun bir aralığı ve bazen de büyük bir aralığı vardır.

Ayrıntılar hakkında fazla bir şey bilmiyorum ama bu seçeneğin yeterli olacağını düşünüyorum.

Diyelim ki bir dakikalık mum HL=100p aralığına ve belirli sayıda tik hacmi birimine sahip olsun.

Teorik olarak her birinin rastgele bir sırayla çok yönlü olduğunu alırsak, örneğin 5 dakikalık bir mum alırız ve orada zaten bir ölçüm birimi ile fiyat dağılımlarını göreceğiz.

HL_0bar/tik hacmi HL_1bar/tik hacmi HL2bar/tik hacmi vb.

yani, zaten "mum boyutu\kene hacmi" ölçü birimiyle çalışıyoruz. Aslında, çizgi bu göstergenin değerini aynı dikeydeki diğerlerine göre yansıtacaktır. Ve bunu zaten m5'teki çizelgelerde kullanabilirsiniz.

ayrıca 15 dakikalık mumlardan oluşan 15 dakikalık bir mum ile

Şu anki tanımın aslında tam olarak istediğim gibi olmadığı açık, ancak belgelere baktım - hiçbir yerde onay grafiği geçmişi yok, bu nedenle minimum mum çubuğu bir dakika.

 

iyi günler Bir uyarı ile standart bir RSI'ye ihtiyacım var. Sinyallerin rahat takibi için böyle bir fikri uygulamak mümkün mü? RSI'ye bağlı bir çöp yığını ya da mumun kapanması gerçeğiyle ilgili bir uyarı (ve tren ayrıldı ...)

mesajlı bir ses sinyali, olayın meydana geldiği çiftin bir göstergesi ile gelmelidir.

sinyal, seçilen zaman çerçevesinde bir mum oluşumu sırasında, sırasıyla üst veya alt seviyeyi geçerken, yalnızca yukarı veya aşağı geçerken ve tam olarak seviyeyi geçtiği anda gelir, mumun kapanışında değil.

Geçiş anında bir kerelik sinyalin de meydana geldiği bir seviye daha yapılması tavsiye edilir.

misal.

zaman çerçevesinde 5 milyon euro dolar fiyat düşüyor. bir noktada, RSI 30 seviyesine dokunulduğunda (örneğin, mumun 80. saniyesinde), bir uyarı sesi duyulur ve o sırada euro dolar çiftinde satın almak için bir ön sinyal olduğunu belirten bir mesaj belirir.

mum oluşumunun kalan süresi boyunca RSI bir sonraki seviyeye dokunursa (örneğin, 20), bir uyarı sesi duyulur ve o sırada euro dolar çiftinde ikinci bir satın alma sinyali olduğunu belirten bir mesaj belirir.

Mesajda, sinyalin ön veya zaten spesifik (yani tekrarlanan) olduğunun bir şekilde açık olması arzu edilir.

 
Yurij Izyumov :

yeniden yazmak için, dahil edilen tüm göstergelerin de mql5 altında olması gerekir.

B Cevap vermekte geciktiğim için üzgünüm ama GERÇEKTEN yardımınıza ihtiyacım var. Gerçek şu ki, bir makale yazıyorum ve moderatör benden mql5'te ekli dosyaların tüm kodlarını yeniden yazmamı istedi. Bir sürü dosya var, ama aynılar, bu yüzden sadece ikisinin yeniden yazılması gerekiyor, gerisini diğer dosyalarla çarpacağım.

Süresiz olarak ertelemezseniz çok minnettar olurum, çünkü makalenin yayınlanması tam da bu nedenle gecikmektedir. Ben de size tezimi tanıtacağıma söz veriyorum. Tekrar teşekkürler!

1. Peki ne yapılması gerekiyor. TDSEQUENTA_by_nikelodeon.mq5 göstergesinde sinyal iletiminden sorumlu 1 adet alış -1 satış olmak üzere bir tampon daha ekledim burada hata olmaması gerektiğini düşünüyorum. Ancak bir arabellek daha eklemeniz gerekir, burada mavi veya kırmızı bir nokta, yani sinyalin kendisi oluşturulurken, her sinyalin yeşil noktalarının sayısı bu ara belleğe yazılır. 7 numaralı arabelleği zaten ekledim, yalnızca kaydı düzenlemek için kalıyor.

2. eVOLution-dvoid.1.3 (1).mq5 göstergesinin MQL5 için tamamen yeniden yazılması gerekiyor.Bu gösterge, \Files\evolution-dvoid\dvoid-BP.csv klasöründe bulunan dosyalardan veri alır. Kullanılan csv çözünürlüğüdür fakat forum bu formatı desteklemediği için txt formatında yayınlıyorum. İndirdikten sonra, belirtilen klasöre koymanız ve uzantıyı csv olarak yeniden adlandırmanız gerekir. Ve zaten bu dosya ile hindimiz çalışmalı.

3. BuyVOLDOWNOPNDOWN.mq5 göstergesinin, diğer göstergelerin nasıl çağrıldığını göstermek için MQL5'te yeniden yazılması gerekir, çünkü orada denir.

Cluster_X ailesinin dosyalarına gelince, onları MT5 için indirmeye çalışacağım ve sonra nasıl ekleyeceğimize bakacağız. Ancak şimdi asıl mesele, sorunu yukarıdaki göstergelerle çözmek. Çok teşekkürler!!!

 
Mihail Marchukajtes :
Yazının hangi konuda olacağını sorabilir miyim?
 
Alexey Kozitsyn :
Yazının hangi konuda olacağını sorabilir miyim?
Yapay zeka sistemleri
 
Tünaydın. Delta_RSI göstergesini kullanıyorum, sürekli olarak aynı anda her iki yönde de histo çiziyorum (ekran görüntüsüne bakın) (bir hata arayın). Ve bilinen renk sinyalini sıfır üstü / altı için farklı renklere boyayabilirsiniz. Teşekkür ederim.
 

Merhaba Yurij İzyumov ! Forumlarda dolaşıp bu soruyu sorduğumda net bir cevap alamadım ... herkes kendi çözümünü sundu, ancak sadece kelimelerle ve işe yarayacağını eylemlerle onaylamadan. Bu konunun pratik uygulamasını görmek istiyorum. Ve sıradaki soru..

CodeBase'den bir gösterge var https://www.mql5.com/en/docs/series/copybuffer

Sorun, göstergenin giriş parametrelerindeki zaman çerçevesini değiştirirken, gösterge hesaplamasının yeni bir onay işareti görünene kadar ertelenmesi ve bu, hafifçe söylemek gerekirse, çok uygun olmayan çeşitli araçlarda birkaç saat kadar sürebilir. .

Bu boşluğu doldurma şansınız var mı? Teşekkür ederim!

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

Merhaba Yurij İzyumov ! Forumlarda dolaşıp bu soruyu sorduğumda net bir cevap alamadım ... herkes kendi çözümünü sundu, ancak sadece kelimelerle ve işe yarayacağını eylemlerle onaylamadan. Bu konunun pratik uygulamasını görmek istiyorum. Ve sıradaki soru..

CodeBase'den bir gösterge var https://www.mql5.com/en/docs/series/copybuffer

Sorun, göstergenin giriş parametrelerindeki zaman çerçevesini değiştirirken, gösterge hesaplamasının yeni bir onay işareti görünene kadar ertelenmesi ve bu, hafifçe söylemek gerekirse, çok uygun olmayan çeşitli araçlarda birkaç saat kadar sürebilir. .

Bu boşluğu doldurma şansınız var mı? Teşekkür ederim!

Yenile düğmesine tıklayarak OnCalculate()'e bir çağrıyı zorlayabilirsiniz. Tüm hesaplamaları OnTimer() veya OnBookEvent() içinde yapmak da mümkündür.
 

Merhaba. Bu göstergeleri kullanarak ok yapmak mümkün mü?İhalelerin şablonu ve ekran görüntüleri klasörde.İnd eklediğim için özür dilerim. klasörü indirmeme izin vermiyor

AYRILMAK YASAKTIR! ARŞİV SİLİNDİ!

 
Alexey Kozitsyn :
Yenile düğmesine tıklayarak OnCalculate()'e bir çağrıyı zorlayabilirsiniz. Tüm hesaplamaları OnTimer() veya OnBookEvent() içinde yapmak da mümkündür.

OnTimer() kullanarak uyguladım ve hiçbir şey çıkmadı. Ne yazık ki onTimer() olayı sırasında gösterge hesaplanmaz ve gecikme kaydedilir, belki yüksek sesli bir ifade ve yanlış bir şey yaptım, beni düzeltin. Teşekkür ederim!

//+------------------------------------------------------------------+
//|                                              TestCopyBuffer3.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots    1
//---- plot MA
#property indicator_label1   "MA"
#property indicator_type1   DRAW_LINE
#property indicator_color1   clrRed
#property indicator_style1   STYLE_SOLID
#property indicator_width1   1
//--- input parameters
bool                AsSeries= true ;
int                 period= 15 ;
input ENUM_TIMEFRAMES     TimeFrame= PERIOD_CURRENT ; //Период графика
ENUM_MA_METHOD      smootMode= MODE_EMA ;
ENUM_APPLIED_PRICE price= PRICE_CLOSE ;
int                 shift= 0 ;
//--- indicator buffers
double                    MABuffer[];
int                       ma_handle;
int to_copy;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,MABuffer, INDICATOR_DATA );
   Print ( "Параметр AsSeries = " ,AsSeries);
   Print ( "Индикаторный буфер после SetIndexBuffer() является таймсерией = " ,
         ArrayGetAsSeries (MABuffer));
//--- set short indicator name
   IndicatorSetString ( INDICATOR_SHORTNAME , "MA(" +period+ ")" +AsSeries);
//--- set AsSeries (depends on input parameter)
   ArraySetAsSeries (MABuffer,AsSeries);
   Print ( "Индикаторный буфер после ArraySetAsSeries(MABuffer,true); является таймсерией = " ,
         ArrayGetAsSeries (MABuffer));
//---
   ma_handle= iMA ( Symbol (),TimeFrame,period,shift,smootMode,price);
   EventSetTimer ( 1 ) ;
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//--- check if all data calculated
   if ( BarsCalculated (ma_handle)<rates_total) return ( 0 );
//--- we can copy not all data
   //int to_copy;
   if (prev_calculated>rates_total || prev_calculated<= 0 ) to_copy=rates_total;
   else
     {
      to_copy=rates_total-prev_calculated;
       //--- last value is always copied
      to_copy++;
     }
//--- try to copy
  
//--- return value of prev_calculated for next call
   return (rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
//---
   CopyBuffer (ma_handle, 0 , 0 ,to_copy,MABuffer);
   Print ( "Таймер" );
  }
//+------------------------------------------------------------------+
Neden: