MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 720 1...713714715716717718719720721722723724725726727...1953 Yeni yorum Roman Sharanov 2018.12.28 04:21 #7191 Tüm çizimleri mumların üstüne değil de göstergede arka plan olarak nasıl ayarlayacağımı söyleyebilir misiniz? Artyom Trishkin 2018.12.28 04:24 #7192 Roman Sharanov : Tüm çizimleri mumların üzerine değil de göstergede arka plan olarak nasıl ayarlayacağımı söyleyebilir misiniz? Grafik özelliği ayarını kullanın: ChartSetInteger(chart_id, CHART_FOREGROUND ,değer); Sadece göstergeler için değil. Kos Mos 2018.12.29 08:20 #7193 Merhaba! Bir Pulse Flat histogram göstergesi var, onu histogramlardan lineer olana dönüştürmek istiyorum. Nereden başlamalı? //+------------------------------------------------------------------+ //| FM Signal Filter.mq4 | //| Copyright © 2008 | //| enhanced version | //+------------------------------------------------------------------+ #property copyright "Copyright © 2008 Arney Derick" #property link "http://metatrader.com/" #property indicator_separate_window #property indicator_buffers 6 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_color3 DarkBlue #property indicator_color4 Maroon #property indicator_color5 Lime #property indicator_color6 Yellow //---- input parameters extern int bolPrd= 20 ; extern double bolDev= 2.0 ; extern int keltPrd= 20 ; extern double keltFactor= 1.5 ; extern int momPrd= 12 ; //---- buffers double upB[]; double upB2[]; double loB[]; double loB2[]; double upK[]; double loK[]; int i,j,slippage= 3 ; double breakpoint= 0.0 ; double ema= 0.0 ; int peakf= 0 ; int peaks= 0 ; int valleyf= 0 ; int valleys= 0 , limit= 0 ; double ccis[ 61 ],ccif[ 61 ]; double delta= 0 ; double ugol= 0 ; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle ( 0 , DRAW_HISTOGRAM , EMPTY , 3 ); SetIndexBuffer ( 0 ,upB); SetIndexEmptyValue ( 0 , EMPTY_VALUE ); SetIndexStyle ( 1 , DRAW_HISTOGRAM , EMPTY , 3 ); SetIndexBuffer ( 1 ,loB); SetIndexEmptyValue ( 1 , EMPTY_VALUE ); SetIndexStyle ( 4 , DRAW_ARROW , EMPTY , 3 ); SetIndexBuffer ( 4 ,upK); SetIndexEmptyValue ( 4 , EMPTY_VALUE ); SetIndexArrow ( 4 , 159 ); SetIndexStyle ( 5 , DRAW_ARROW , EMPTY , 1 ); SetIndexBuffer ( 5 ,loK); SetIndexEmptyValue ( 5 , EMPTY_VALUE ); SetIndexArrow ( 5 , 159 ); SetIndexStyle ( 2 , DRAW_HISTOGRAM , EMPTY , 3 ); SetIndexEmptyValue ( 2 , EMPTY_VALUE ); SetIndexBuffer ( 2 ,upB2); SetIndexStyle ( 3 , DRAW_HISTOGRAM , EMPTY , 3 ); SetIndexEmptyValue ( 3 , EMPTY_VALUE ); SetIndexBuffer ( 3 ,loB2); //---- return ( 0 ); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return ( 0 ); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars= IndicatorCounted (); int shift,limit; double diff,d,dPrev,std,bbs; if (counted_bars< 0 ) return (- 1 ); if (counted_bars> 0 ) counted_bars--; limit= Bars - 31 ; if (counted_bars>= 31 ) limit= Bars -counted_bars- 1 ; for (shift=limit;shift>= 0 ;shift--) { //d=iMomentum(NULL,0,momPrd,PRICE_CLOSE,shift); d=LinearRegressionValue(bolPrd,shift); dPrev=LinearRegressionValue(bolPrd,shift+ 1 ); if (d> 0 ) { if ((dPrev> 0 ) && (dPrev>d)){ upB2[shift]=d; upB[shift]= 0 ; } else { upB[shift]=d; upB2[shift]= 0 ; } //upB[shift]=0; loB[shift]= 0 ; loB2[shift]= 0 ; } else { if ((dPrev< 0 ) && (dPrev<d)){ loB2[shift]=d; loB[shift]= 0 ; } else { loB[shift]=d; loB2[shift]= 0 ; } upB[shift]= 0 ; upB2[shift]= 0 ; //loB[shift]=d; } diff= iATR ( NULL , 0 ,keltPrd,shift)*keltFactor; std = iStdDev ( NULL , 0 ,bolPrd, MODE_SMA , 0 , PRICE_CLOSE ,shift); bbs = bolDev * std / diff; if (bbs< 1 ) { upK[shift]= 0 ; loK[shift]= EMPTY_VALUE ; } else { loK[shift]= 0 ; upK[shift]= EMPTY_VALUE ; } } return ( 0 ); } //+------------------------------------------------------------------+ double LinearRegressionValue( int Len, int shift) { double SumBars= 0 ; double SumSqrBars= 0 ; double SumY = 0 ; double Sum1 = 0 ; double Sum2 = 0 ; double Slope= 0 ; SumBars=Len *(Len- 1 )* 0.5 ; SumSqrBars=(Len- 1 )*Len *( 2 *Len- 1 )/ 6 ; for ( int x= 0 ; x<=Len- 1 ;x++) { double HH = Low [x+shift]; double LL = High [x+shift]; for ( int y=x; y<=(x+Len)- 1 ; y++) { HH = MathMax (HH, High [y+shift]); LL = MathMin (LL, Low [y+shift]); } Sum1 += x* ( Close [x+shift]-((HH+LL)/ 2 + iMA ( NULL , 0 ,Len, 0 , MODE_EMA , PRICE_CLOSE ,x+shift))/ 2 ); SumY += ( Close [x+shift]-((HH+LL)/ 2 + iMA ( NULL , 0 ,Len, 0 , MODE_EMA , PRICE_CLOSE ,x+shift))/ 2 ); } Sum2=SumBars*SumY; double Num1 = Len * Sum1 - Sum2; double Num2 = SumBars * SumBars-Len * SumSqrBars; if (Num2!= 0.0 ) { Slope=Num1/Num2; } else { Slope= 0 ; } double Intercept=(SumY-Slope*SumBars)/Len; double LinearRegValue=Intercept+Slope *(Len- 1 ); return (LinearRegValue); } //+------------------------------------------------------------------+ Kos Mos 2018.12.29 08:35 #7194 DRAW-HISTOGRAM'ı DRAW_LINE ile değiştirdi ve çizgiyi 0 seviyesinde çizen son 2 tamponu sildi ve olan buydu. oldu - oldu Dosyalar: 26.png 27 kb 27.png 29 kb Artyom Trishkin 2018.12.29 08:37 #7195 Kos Mos : DRAW-HISTOGRAM'ı DRAW_LINE ile değiştirdi ve çizgiyi 0 seviyesinde çizen son 2 tamponu sildi ve olan buydu. oldu - oldu Anladım :) Kos Mos 2018.12.29 08:44 #7196 Artyom Trishkin : Anladım :) Evet))), korkunç görünüyor, çünkü 4 tampon kaldı, anladığım kadarıyla 2 veya 1 olması gerekiyor, doğru mu düşünüyorum?! Konstantin Lebedev 2018.12.30 17:59 #7197 Örneğin, son gün değil, mumların nasıl yazılacağını size kim söyleyecek, ancak önceki gün, vb. kılavuz. İşte geçen günden bir örnek: #özellik göstergesi_chart_window extern bool Show_LABELS=true; harici int Shift_Prev_LABEL=10; // sayı yatay ofset anlamına gelir çift DHi,DLo; //---- Öncesi DHi =iYüksek(NULL, PERIOD_D1 ,1); DLo =iLow(NULL,PERIOD_D1,1); if (Show_LABELS==true) { if(ObjectFind("Pre_Day_Max")!=0) { ObjectCreate("Prev_max_day", OBJ_TEXT, 0, Time[Shift_Prev_LABEL+196], DHi); ObjectSetText("Prev_Day_Max", "Önceki_D1"+DoubleToStr(DHi,Rakamlar)+" ", 9, "Arial", Macenta); } başka { ObjectMove("Prev_day_max", 0, Time[Shift_Prev_LABEL+196], DHi); } if(ObjectFind("Pre_Day_Min")!=0) { ObjectCreate("Gün Öncesi_Dakika", OBJ_TEXT, 0, Zaman[Shift_Prev_LABEL+196], DLo); ObjectSetText("Önceki_Day_Dk", "Önceki_D1"+DoubleToStr(DLo,Rakamlar)+" ", 9, "Arial", LawnGreen); } başka { ObjectMove("Prev_Day_Min", 0, Time[Shift_Prev_LABEL+196], DLo); } } Kodu init, deinite ve start'a yazmadım. çift DHi,DLo; // Görünüşe göre buradan başlaman gerekiyor, ama tam olarak ne olduğunu bilmiyorum ve sonra her şeyi kendim yazardım. Pivot göstergeleri [ARŞİV] Forumu kirletmemek için Forumu kirletmemek için herhangi Kos Mos 2018.12.30 19:11 #7198 Artyom Trishkin : Anladım :) Hey ! Lütfen bana çizginin sağlam olması için nasıl yapacağımı söyle. Aleksey Vyazmikin 2018.12.30 20:09 #7199 koctja : DHi =iYüksek(NULL, PERIOD_D1 ,1); DLo =iLow(NULL,PERIOD_D1,1); çift DHi,DLo; // Görünüşe göre buradan başlaman gerekiyor, ama tam olarak ne olduğunu bilmiyorum ve sonra her şeyi kendim yazardım. Yardımla başlayın! Sayıyı sadece gerekli çubuk kaydırma ile değiştirmek yeterlidir iHigh(NULL, PERIOD_D1 , 1 ); Aleksey Vyazmikin 2018.12.30 20:11 #7200 Kos Mos : Hey ! Lütfen bana çizginin sağlam olması için nasıl yapacağımı söyle. "indicator_style" ile ilgili yardımı okuyun gösterge_stilN int ENUM_LINE_STYLE değerinden bir değerle belirtilen grafik serisindeki çizgi stili. N - 1'den başlayarak numaralandırma grafik dizisi sayısı 1...713714715716717718719720721722723724725726727...1953 Yeni yorum
Tüm çizimleri mumların üzerine değil de göstergede arka plan olarak nasıl ayarlayacağımı söyleyebilir misiniz?
Grafik özelliği ayarını kullanın: ChartSetInteger(chart_id, CHART_FOREGROUND ,değer);
Sadece göstergeler için değil.
Merhaba! Bir Pulse Flat histogram göstergesi var, onu histogramlardan lineer olana dönüştürmek istiyorum. Nereden başlamalı?
DRAW-HISTOGRAM'ı DRAW_LINE ile değiştirdi ve çizgiyi 0 seviyesinde çizen son 2 tamponu sildi ve olan buydu.
oldu - oldu
DRAW-HISTOGRAM'ı DRAW_LINE ile değiştirdi ve çizgiyi 0 seviyesinde çizen son 2 tamponu sildi ve olan buydu.
oldu - oldu
Anladım :)
Anladım :)
Evet))), korkunç görünüyor, çünkü 4 tampon kaldı, anladığım kadarıyla 2 veya 1 olması gerekiyor, doğru mu düşünüyorum?!
Örneğin, son gün değil, mumların nasıl yazılacağını size kim söyleyecek, ancak önceki gün, vb. kılavuz. İşte geçen günden bir örnek:
#özellik göstergesi_chart_window
extern bool Show_LABELS=true;
harici int Shift_Prev_LABEL=10; // sayı yatay ofset anlamına gelir
çift DHi,DLo;
//---- Öncesi
DHi =iYüksek(NULL, PERIOD_D1 ,1);
DLo =iLow(NULL,PERIOD_D1,1);
if (Show_LABELS==true)
{
if(ObjectFind("Pre_Day_Max")!=0)
{
ObjectCreate("Prev_max_day", OBJ_TEXT, 0, Time[Shift_Prev_LABEL+196], DHi);
ObjectSetText("Prev_Day_Max", "Önceki_D1"+DoubleToStr(DHi,Rakamlar)+" ", 9, "Arial", Macenta);
}
başka
{
ObjectMove("Prev_day_max", 0, Time[Shift_Prev_LABEL+196], DHi);
}
if(ObjectFind("Pre_Day_Min")!=0)
{
ObjectCreate("Gün Öncesi_Dakika", OBJ_TEXT, 0, Zaman[Shift_Prev_LABEL+196], DLo);
ObjectSetText("Önceki_Day_Dk", "Önceki_D1"+DoubleToStr(DLo,Rakamlar)+" ", 9, "Arial", LawnGreen);
}
başka
{
ObjectMove("Prev_Day_Min", 0, Time[Shift_Prev_LABEL+196], DLo);
}
}
Kodu init, deinite ve start'a yazmadım.
çift DHi,DLo; // Görünüşe göre buradan başlaman gerekiyor, ama tam olarak ne olduğunu bilmiyorum ve sonra her şeyi kendim yazardım.
Anladım :)
Hey ! Lütfen bana çizginin sağlam olması için nasıl yapacağımı söyle.
DHi =iYüksek(NULL, PERIOD_D1 ,1);
DLo =iLow(NULL,PERIOD_D1,1);
çift DHi,DLo; // Görünüşe göre buradan başlaman gerekiyor, ama tam olarak ne olduğunu bilmiyorum ve sonra her şeyi kendim yazardım.
Yardımla başlayın! Sayıyı sadece gerekli çubuk kaydırma ile değiştirmek yeterlidir iHigh(NULL, PERIOD_D1 , 1 );
Hey ! Lütfen bana çizginin sağlam olması için nasıl yapacağımı söyle.
"indicator_style" ile ilgili yardımı okuyun
gösterge_stilN
int
ENUM_LINE_STYLE değerinden bir değerle belirtilen grafik serisindeki çizgi stili. N - 1'den başlayarak numaralandırma grafik dizisi sayısı