[ARŞİV!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 4. - sayfa 134
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
BÜYÜK TEŞEKKÜRLER!
Sürümünüzde gösterge çalışıyor!
Aynı zamanda, üç küçük problem ortaya çıktı, onları MQL4 ders kitabını kullanarak çözmeye çalıştım, gösterge örneklerini gözden geçirdim, ancak hiçbir şey çıkmadı.
Arzu, zaman ve ruh haliniz varsa, NEDENİ bulmama yardım edin:
1. Göstergeyi ayarlarken, satır 0 (sıfır) değerini alır ve yalnızca ilk tikin gelmesiyle en üstteki değişkenin değerini alır veya gösterge parametreleri penceresini açmanız ve hemen kapatmanız gerekir;
2. init() içinde bir satır olmasına rağmen üst parametre 4. karaktere kadar hesaplanır.
GöstergeDigits(Rakam+1);
ve çizgi
top=WindowPriceMax(win_idx);
onunla değiştirdim
top=NormalizeDouble((WindowPriceMax(win_idx))),Rakamlar+1);
yardımcı olmuyor! Ve gösterge penceresinin ölçeğinin sayısal değerleri 5 basamaklıdır.
3. Göstergenin kaldırılması ile yorum grafikten kaldırılmaz.
kod
--------
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
double ExtMapBuffer1[],
ExtMapBuffer2[];
//--------------------------------
int init()
{
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,ExtMapBuffer2);
IndicatorShortName("MACD_max-min_v2");
IndicatorDigits(Digits+1);
return(0);
}
//--------------------------------
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(),limit,win_idx;
double top;
if(counted_bars>0)counted_bars--;
limit=Bars-counted_bars;
win_idx=WindowFind("MACD_max-min_v2");
for(int i=0;i<limit;i++)
{
ExtMapBuffer1[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
ExtMapBuffer2[i]=iMACD(0,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i);
}
// top=WindowPriceMax(win_idx);
top=NormalizeDouble((WindowPriceMax(win_idx)),Digits+1);
Comment( "\n"," top = ",top);
ObjectDelete("max");
if(ObjectFind("max")!=win_idx)
{
ObjectCreate("max",OBJ_HLINE,win_idx,Time[0],top);
ObjectSet("max",OBJPROP_COLOR,Yellow);
ObjectSet("max",OBJPROP_WIDTH,0);
}
return(0);
}
//+------------------------------------------------------------------+
not
Yorum dizesini temizlemek için deinit() içine Comment(""); ekleyin.
Teknik düzenleme - danışmanlarınızın yaptığı gibi, kodu yapıştırmak için üst çubuktaki SRC düğmesini kullanın. Okumak çok daha kolay olacak.
not
Yorum dizesini temizlemek için deinit() içine Comment(""); ekleyin.
Diziler, Comment() işlevine geçirilemez. Diziler, eleman eleman yazdırılmalıdır.
Çift veri, noktadan sonra 4 ondalık basamakla verilir . Sayıları daha hassas bir şekilde görüntülemek için DoubleToStr() işlevini kullanmanız gerekir.
bool, datetime ve color türleri sayı olarak yazdırılacaktır.
Datetime verilerini bir dize olarak çıkarmak için TimeToStr() işlevini kullanın.
Çıktı bilgilerini birden çok satıra ayırmak için yeni satır karakteri "\n" veya "\r\n" kullanabilirsiniz.
Alert() ve Print() işlevlerine de bakın .
Fiyat yatay çizgiyi geçti....
Ve bu çizgi nasıl tarif edilmelidir?
Merhaba,
İşte yaşadığım sorun.
PERIOD_H1 üzerinde çalışın.
Saatin sonunda kapatmak için şunu yapıyorum:
Saat başında bir pozisyon açmak için bunu yapıyorumAma testte böyle çıkıyor
Anlayamıyorum, nerede yanlış yapıyorum?
Her zaman böyle olmuyor ama oluyor.
Cevap verene teşekkürler :)
Bundan bahsetmiyorum, ama uzmanın asıldığı yerin ne farkı var? Doğru yazılmışsa, nerede asılı olduğu önemli değil: en azından Moğol borsa tablosuna asın, ancak içeride 1 dakika boyunca eurodolar üzerinde çalışacak şekilde ayarlanmışsa, öyle yapacaktır. Ve programlamak hiç de zor değil, kural olarak sadece birkaç satırı değiştirin.
Açıklama için çok teşekkürler!
Tek endişem, her dakika çubuğunun açılışında test cihazında bir dakikalık değişikliklerin simüle edilmesidir.
Open[0]'ı iOpen (NULL,1,0) olarak değiştirmeye çalışacağım ve bir dakikalık çubuğun açılışını kontrol etmek için bir işlev ekleyeceğim.
Kodu düzelttiğim birkaç dakika geçti, M5'teki test cihazında denedim ve bu durumda test cihazının kayıtlı olmalarına rağmen 1 dakikalık çubukları açmadığından ve yalnızca her 5 dakikada bir değiştirdiğinden emin oldum. korkmak. Tüm kenelerdeki modda, biraz daha iyi, çünkü daha sık değiştirdim. Ancak M1'de yalnızca bar açılışında, hem Open[0] hem de iOpen(NULL,1,0) ile aynı şekilde çalışır, bunun için size yine de minnettarım!
Artık her zaman yeşil iOpen kullanacağım çünkü. Kırmızı Açık olmadan yapabileceğinizi görüyorum. Kârın yeşil rengi kırmızıdan daha hoştur. (:))
Merhaba,
İşte yaşadığım sorun.
PERIOD_H1 üzerinde çalışın.
Saatin sonunda kapatmak için şunu yapıyorum:
Saat başında bir pozisyon açmak için bunu yapıyorumAma testte böyle çıkıyor
Anlayamıyorum, nerede yanlış yapıyorum?
Her zaman böyle olmuyor ama anları var.
Cevap verene teşekkürler :)
Bir arkadaş önerdi:
TimeCurrent() yerine
TimeSeconds(TimeCurrent())
Ve işe yaradı.