Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Bloğu seçin ve shift+tab'a basın
Bölümdeki ders kitabına ekle
Açıklamadan sonra MQL5 Referansı / Teknik Göstergeler / iMA'ya özel örnek:
uygulanan_fiyat
[içinde] Kullanılan fiyat. ENUM_APPLIED_PRICE fiyat sabitlerinden herhangi biri veya başka bir gösterge tanıtıcısı olabilir.
başka bir göstergenin kolu nasıl kullanılır? ne verecek? yoksa sadece standart teknik göstergelerin değerlerinin ortalamasını almak mümkün müdür? ve gösterge_separate_window içinde özel bir gösterge çizmek ve aynı pencerede bu gösterge için hareketli bir ortalama çizmek gerekirse, iMA() bunu yapabilir mi? iMA() kullanarak iMAOnArray() sonucunu elde edebileceğinize dair belirsiz bir şüphem var, ama nasıl olduğunu bile bilmiyorum, belki yanılıyorum
Not: Belki MT5'ten çok şey istiyorum ama MT4'te yerleşik iMAOnArray() işlevi artık eksikti, ortalama değeri hesaplamak için özel bir işlev yazmak zor değil, ancak dizilerle çalışmak için standart işlevlere sahip olmak istiyorum iMAOnArray() hakkında bilgi aramak için kendi işlevimi yazmaktan daha fazla zaman harcadım
Bölümdeki ders kitabına ekle
Açıklamadan sonra MQL5 Referansı / Teknik Göstergeler / iMA'ya özel örnek:
başka bir göstergenin kolu nasıl kullanılır? ne verecek? yoksa sadece standart teknik göstergelerin değerlerinin ortalamasını almak mümkün müdür? ve gösterge_separate_window içinde özel bir gösterge çizmek ve aynı pencerede bu gösterge için hareketli bir ortalama çizmek gerekirse, iMA() bunu yapabilir mi? iMA() kullanarak iMAOnArray() sonucunu elde edebileceğinize dair belirsiz bir şüphem var, ama nasıl olduğunu bile bilmiyorum, belki yanılıyorum
Bağlantıya tıklayın ve aşağıda bir örneğin verildiği Fiyat sabitleri bölümüne girin:
Bir teknik gösterge, hesaplamaları için türü ENUM_APPLIED_PRICE numaralandırmasıyla belirtilen fiyat verilerini kullanıyorsa , herhangi bir göstergenin tutamacı (terminale gömülü veya kullanıcı tarafından yazılmış) girdi fiyat serisi olarak belirtilebilir. Bu durumda, hesaplamalar için göstergenin sıfır arabelleğinin değerleri kullanılacaktır. Bu, bir göstergenin değerlerini başka bir göstergenin değerlerinden oluşturmayı kolaylaştırır. Özel gösterge tanıtıcısı, iCustom() işlevi çağrılarak oluşturulur.
Misal:
#Emlak gösterge_separate_window
#Emlak gösterge_tamponları 2
#Emlak gösterge_alanları 2
//--- giriş parametreleri
giriş int RSIperiyodu=14; // RSI hesaplaması için dönem
giriş intSmooth =8; // RSI yumuşatma periyodu
giriş ENUM_MA_METHOD meth= MODE_SMMA ; // yumuşatma yöntemi
//---- RSI grafiğini çiz
#Emlak gösterge_etiket1 "RSI"
#Emlak gösterge_tipi1 ÇİZGİ ÇİZ
#Emlak gösterge_renk1 Kırmızı
#özellik göstergesi_style1 STYLE_SOLID
#Emlak gösterge_genişliği1 1
//---- RSI_Düzeltilmiş arsa
#özellik göstergesi_label2 " RSI_Düzeltilmiş "
#özellik göstergesi_type2 DRAW_LINE
#property Indicator_color2 Lacivert
#özellik göstergesi_style2 STYLE_SOLID
#özellik göstergesi_width2 1
//--- gösterge arabellekleri
çift RSIBuffer[]; // burada RSI değerlerini saklayacağız
çift RSI_SmoothedBuffer[]; // düzleştirilmiş RSI değerleri burada olacak
intRSIhandle ; // RSI göstergesini ele al
//+------------------------------------------- --------------------+
//| özel gösterge başlatma işlevi |
//+------------------------------------------- --------------------+
geçersiz OnInit ()
{
//--- gösterge arabellek eşlemesi
SetIndexBuffer (0,RSIBffer, INDICATOR_DATA );
SetIndexBuffer (1,RSI_SmoothedBuffer, INDICATOR_DATA );
GöstergeSetString ( INDICATOR_SHORTNAME , "iRSI" );
GöstergeSetTamsayı ( INDICATOR_DIGITS ,2);
//---
RSIhandle = iRSI ( NULL ,0,RSIperiod, PRICE_CLOSE );
//---
}
//+------------------------------------------- --------------------+
//| özel gösterge yineleme işlevi |
//+------------------------------------------- --------------------+
int OnCalculate ( const int oranlar_toplam,
const int önceki_hesaplanmış,
const int başlar,
const çift &fiyat[]
)
{
//--- son hatanın değerini sıfırla
resetLastError ();
//--- RSI gösterge verilerini RSIBffer[] dizisine alın
int kopyalanmış= CopyBuffer ( RSIhandle ,0,0,rates_total,RSIBuffer);
if (kopyalandı<=0)
{
Yazdır ( "RSI gösterge değerleri kopyalanamadı. Hata = " ,
GetLastError (), ", kopyalandı = " , kopyalandı);
dönüş (0);
}
//--- RSI gösterge değerlerine dayalı bir ortalama gösterge oluşturun
int RSI_MA_handle= iMA ( NULL ,0,Smooth,0,meth,RSIhandle);
kopyalanmış= CopyBuffer (RSI_MA_handle,0,0,rates_total,RSI_SmoothedBuffer);
if (kopyalandı<=0)
{
Yazdır ( "Düzeltilmiş RSI göstergesi kopyalanamadı. Hata = " ,
GetLastError (), ", kopyalandı =" ,kopyalandı);
dönüş (0);
}
//--- sonraki çağrı için prev_hesaplananın dönüş değeri
dönüş (oranlar_toplam);
}
Sadece bir paragraf okumadın
Normal takip eden durdurmayı aktif olarak kullanıyorum. Bu bağlamda, birkaç dilek.
1) Sütunlar menüsünde "Sondaki durma seviyesi"ni seçme özelliğini ekleyin. Bu, anladığım kadarıyla zor değil.
2) TS değerini, belirli bir pozisyon için TS seviyesini terminale yayınlama/yayınlamama özelliğiyle (kullanıcının seçimine göre) bir pozisyon özelliği olarak ekleyin. Bunun 1. maddeden çok daha ciddi olduğunu anlıyorum ve TS'nin tamamen sunucu tarafında uygulanması sunucu üzerindeki yükü ciddi şekilde artırıyor.
Kişisel olarak 2. noktanın benim için yararlı olacağı şey için):
- birkaç terminal bir hesaba bağlanır (ideal olarak - örneğin evde ve işte farklı sunucular ve sağlayıcılar aracılığıyla);
- terminallerden birinde manuel olarak bir pozisyon açın ve TS seviyesini ayarlayın;
- TS seviyesini başka bir terminalde ayarlarken, birincideki TS değişmeden kalır, çünkü Artık sondaki durdurma, istemci tarafında uygulanmaktadır. Değiştirmek istediğim şey bu ve müşterinin isteği üzerine.
Bağlantıya tıklayın ve örneğin aşağıda olduğu Fiyat sabitleri bölümüne girin:
Sadece bir paragraf okumadın
Bağlantıya tıklayın ve örneğin aşağıda olduğu Fiyat sabitleri bölümüne girin:
Sadece bir paragraf okumadın
paragrafı okumayı bitirdi, ancak örnek yalnızca standart teknik göstergeler, özel göstergeler ve iMAOnArray() işlevi hakkında bir soru kullanıyor
-özel gösterge verilerini yumuşatmak için hareketli ortalamaların kullanılıp kullanılamayacağını görmek istiyorum
- Eski işlevlere bağlantıların zarar vermeyeceğini düşünüyorum, forumda arama yapmamak için MT4 yardımında bir bölüm vardı
MQL4 Referansı - Kullanımdan Kaldırılan İşlevler
Gerçekten örnekler var, ancak genellikle onları sezgisel olarak bulamıyorsunuz, belki bu gibi durumlarda basitçe bir "örnek" bağlantı oluşturabilirsiniz - elbette IMHO çok uygun olacaktır.
paragrafı okumayı bitirdi, ancak örnek yalnızca standart teknik göstergeler, özel göstergeler ve iMAOnArray() işlevi hakkında bir soru kullanıyor
-özel gösterge verilerini yumuşatmak için hareketli ortalamaların kullanılıp kullanılamayacağını görmek istiyorum
Yukarıda alıntılanmıştır:
Bir teknik gösterge, hesaplamaları için türü ENUM_APPLIED_PRICE numaralandırmasıyla belirtilen fiyat verilerini kullanıyorsa , herhangi bir göstergenin tutamacı (terminalde yerleşik veya kullanıcı tarafından yazılmış ) girdi fiyat serisi olarak belirtilebilir.
Ayrıca makaleleri okuyun:
Topluluk ilgileniyorsa, mevcut test ve optimizasyon seçeneğini değiştirmeyi düşünebilirsiniz. Örneğin, bir geçmiş periyodunda değil, aynı anda birkaçında test/optimizasyon verilerini almam gerekiyor (örneğin, Uzman Danışmanın tekdüzeliğini değerlendirmek için). Elbette her dönem için tek tek test/optimizasyon yapmak da mümkün. Ancak, bir t / o periyodu 0,5 ila 1 saat sürerse ve 10'a ihtiyacınız varsa, o zaman 10 periyodun tümünü aynı anda (örneğin gece boyunca) çalıştırmak ve tüm sonuçları daha sonra almak çok daha uygundur. Şu anda Expert Advisor'da giriş parametresi olarak "Date from", "Date to" tipinin çalışma periyodunu ve test cihazının harici sekmesinde genel optimizasyon periyodunu belirtiyorum (Dates from/to olan optimizasyon parametrelerinden biri). Ancak bu durumda, her çalıştırmanın optimizasyon süresi esasen genel büyük optimizasyon süresinin çalışma süresine eşittir (bu, test cihazının sekmesindedir - sonuçta, işaretler sürekli gider - pratik olarak doğrulanmıştır). Şimdi, test cihazında aynı anda 2 periyot belirtmek mümkün olsaydı: içinde ortak bir büyük ve küçük bir tane, o zaman sorun çözülürdü.
Bir grafiğe gösterge eklemek için ChartIndicatorAdd ( ) işlevi vardır. Lütfen göstergeyi grafikten kaldırmak için bir işlev yapın. Ve bir nükleer bomba gibi çıktı: bomba icat edildi, ancak bomba karşıtı değil.