![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Merhaba, cci<-150 olduğunda uyarı veren mq4'e bir gösterge ekledim
Tık tık bazında uyarı verir; Sadece mumun kapanışında uyarı vermesi için herhangi biri onu değiştirebilir mi?
Bu durumda, yalnızca 5m'lik bir mumun sonunda cci < -150 olduğunda uyarılmak isterim.
Şimdiden teşekkürler
tamam, 2. soru, bence bu kolay:
Fiyat kapanışı MA'yı geçtiğinde beni uyarmak için bir kullanıcı göstergesi oluşturuyorum
MA göstergesini içe aktarmak için iCustom kullanıyorum
ve sonra fiyatı nasıl kullanacağımı bilmiyorum; CLOSE ve PRICE_CLOSE denedim ama sonuç alamadım:
eğer (KAPALI?>ma1)
adxdeğeri= -1;
eğer (PRICE_CLOSE?>ma1)
adxdeğeri= -1;
Ayrıca, uyarının yalnızca 5m'lik bir çubuğun sonunda çalmasını ve kene bazında çalışmamasını istiyorum: başka neyi değiştirmeliyim (bu soru önceki mesajımdaki sorudur)
teşekkürler
Merhaba Codersguru,
Renkler değiştiğinde uyarı vermesi için Osma Color'a bir uyarı kodlamama yardım eder misiniz?
teşekkürler
Duncan
//+------------------------------------------- -------------------+
//| OsMA_color.mq4 |
//| Rafael |
//| marynarz15@wp.pl |
//+------------------------------------------- -------------------+
# mülkiyet telif hakkı "Rafael"
#özellik bağlantısı "marynarz15@wp.pl"
//---- gösterge ayarları
#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 2
#özellik göstergesi_color1 Kireç
#özellik göstergesi_renk2 Kırmızı
//---- gösterge parametreleri
harici int FastEMA=12;
harici int YavaşEMA=26;
harici int SignalSMA=9;
//---- gösterge tamponları
çift ind_buffer1a[];
çift ind_buffer1b[];
çift ind_buffer2[];
çift ind_buffer3[];
//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//---- Sayım için 2 ek tampon kullanılır.
Gösterge Tamponları(4);
//---- çizim ayarları
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexDrawBegin(0,SignalSMA);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 gösterge arabelleği eşlemesi
if(!SetIndexBuffer(0,ind_buffer1a) &&
!SetIndexBuffer(1,ind_buffer1b) &&
!SetIndexBuffer(2,ind_buffer2) &&
!SetIndexBuffer(3,ind_buffer3))
Print("gösterge arabellekleri ayarlanamıyor!");
//---- DataWindow ve gösterge alt pencere etiketi için isim
IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
//---- başlatma tamamlandı
dönüş(0);
}
//+------------------------------------------- -------------------+
//| Osilatörün Hareketli Ortalaması |
//+------------------------------------------- -------------------+
int başlangıç()
{
int limiti;
int counted_bars=IndicatorCounted();
//---- olası hataları kontrol et
if(counted_bars<0) return(-1);
//---- son sayılan çubuk yeniden sayılacak
if(counted_bars>0) counted_bars--;
limit=Barlar-sayılan_barlar;
//---- 1. ek tamponda sayılan macd
for(int i=0; i<limit; i++)
ind_buffer2=iMA(NULL,0,HızlıEMA,0,MODE_EMA,PRICE_CLOSE,i)
-iMA(NULL,0,YavaşEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- 2. ek tamponda sayılan sinyal hattı
for(i=0; i<limit; i++)
ind_buffer3=iMAOnArray(ind_buffer2,Barlar,SignalSMA,0,MODE_SMA,i);
//---- Ana döngü
çift değer=0;
for(i=0; i<limit; i++)
{
ind_buffer1a=0.0;
ind_buffer1b=0.0;
değer=ind_buffer2-ind_buffer3;
if (değer>0) ind_buffer1a=değer;
if (değer<0) ind_buffer1b=değer;
}
//---- tamamlamak
dönüş(0);
}
//+------------------------------------------- -------------------+
Merhaba
kelebek desenini tanıyan bir göstergem var ama MT3 için yazılmış biri bana bir iyilik yapıp MQL4'e çevirebilir mi?
iki pdf ekledim kalıbın özü ve kurallardan bahsedilmiş
merhaba
selam beyler,
hepiniz bu yazarın adını biliyor olabilirsiniz ama bunu asla bilmiyordunuz
onun yöntemi yazılıma kodlanmış.
Pesavento, diğerleri arasında bu harika kitapları yazdı:
* Örüntü Tanıma ile Fibonacci Oranları
* Hisse Senedi Alım Satım için Karlı Modeller
* Astro-Döngüler: Tüccarların Bakış Açısı
bu arada ENSIGN yazılımının bir sonraki bağlantıda görebileceğiniz orijinal Pesavento Patterns çalışma aracına da sahip olduğunu biliyorum.
biri ENSIGN'dan MetaTrader 4'e aktarabilirse bu harika olur.
http://www.ensignsoftware.com/help/pesavento.htm
tekrar merhaba
gartley 222 modelinin kodunu iki platformda buldum.
eğer biri bunu MetaTrade 4'e çevirebilirse süper olur!
işte kodlar:
1. Gartley 222 modeli için TradeStation kodu, Aaron Behle ve Mark Conway tarafından yazılan "Gartley 222 Ticareti" bölümünde bulunur, s. 38:
Girişler:
Uzunluk(100),
Mukavemet(8),
Tolerans(0.10),
BoğaRenk(Mavi),
AyıRenk(Kırmızı);
Değişkenler:
F1(0.618),
F2(0.786),
F3(1.27),
F4(1.618),
P1Bar(-1),
P2Bar(-1),
T1Bar(-1),
T2Bar(-1),
P1(0.0),
P2(0.0),
T1(0.0),
T2(0.0),
PTValid(Yanlış),
HLValid(Yanlış),
InZone(Yanlış),
GD(0.0),
XA(0.0),
AB(0.0),
M.Ö.(0.0),
CD(0.0),
AD(0.0),
C1(Yanlış),
C2(Yanlış),
C3(Yanlış),
C4(Yanlış),
ABdXA(0.0),
BCdAB(0.0),
CDdBC(0.0),
ADdXA(0.0),
TL1(-1),
TL2(-1),
TL3(-1),
TL4(-1),
TL5(-1),
TL6(-1);
P1Bar = SwingHighBar(1, Yüksek, Mukavemet, Uzunluk);
P2Bar = SwingHighBar(2, Yüksek, Mukavemet, Uzunluk);
T1Bar = SwingLowBar(1, Düşük, Mukavemet, Uzunluk);
T2Bar = SwingLowBar(2, Düşük, Mukavemet, Uzunluk);
P1Bar -1 ise ve
P2Bar -1 ve
T1Bar -1 ve
T2Bar -1 Sonra Başlayın
{Bir yükseliş testi 222}
{Oluk X T2'dir}
T2 = Düşük[T2Bar];
{Tepe A, P2'dir}
P2 = Yüksek[P2Bar];
{Oluk B, T1'dir}
T1 = Düşük[T1Bar];
{Tepe C, P1'dir}
P1 = Yüksek[P1Bar];
{D satın alma noktasıdır}
GD = Düşük;
PTValid = P1Bar < T1Bar ve T1Bar < P2Bar ve P2Bar < T2Bar;
HLValid = P1 T2 ve P1 > T1;
InZone = GD T2 ve P2 >= En Yüksek(Yüksek, T2Bar);
PTValid ve HLValid ve InZone ise Başlayın
XA = P2 - T2;
AB = P2 - T1;
BC = P1 - T1;
CD = P1 - GD;
AD = P2 - GD;
ABdXA = AB / XA; {AB, XA'nın %61,8'i olmalıdır}
C1 = ABdXA > F1 - Tolerans ve ABdXA < F1 + Tolerans;
BCdAB = BC / AB; {BC, AB'nin %61.8-78.6'sı olmalıdır}
C2 = BCdAB > F1 - Tolerans ve BCdAB < F2 + Tolerans;
CDdBC = CD / BC; {CD, BC'nin %127-161,8'i olmalıdır}
C3 = CDdBC > F3 - Tolerans ve CDdBC < F4 + Tolerans;
ADdXA = AD / XA; {AD, XA'nın %78,6'sı olmalıdır}
C4 = ADdXA > F2 - Tolerans ve ADdXA < F2 + Tolerans;
C1 ve C2 ve C3 ve C4 ise Başlayın
TL1 = TL_New(Tarih[T2Bar], Saat[T2Bar], T2, Tarih[P2Bar], Saat[P2Bar], P2);
TL1 >= 0 ise Başlayın
TL_SetColor(TL1, BullColor);
TL_SetStyle(TL1, Tool_Solid);
TL_SetSize(TL1, 2);
Son;
TL2 = TL_New(Tarih[P2Bar], Saat[P2Bar], P2, Tarih[T1Bar], Saat[T1Bar], T1);
TL2 >= 0 ise Başlayın
TL_SetColor(TL2, BullColor);
TL_SetStyle(TL2, Tool_Solid);
TL_SetSize(TL2, 2);
Son;
TL3 = TL_New(Tarih[T1Bar], Saat[T1Bar], T1, Tarih[P1Bar], Saat[P1Bar], P1);
TL3 >= 0 ise Başlayın
TL_SetColor(TL3, BullColor);
TL_SetStyle(TL3, Tool_Solid);
TL_SetSize(TL3, 2);
Son;
TL4 = TL_New(Tarih[P1Bar], Saat[P1Bar], P1, Tarih, Saat, GD);
TL4 >= 0 ise Başlayın
TL_SetColor(TL4, BullColor);
TL_SetStyle(TL4, Tool_Solid);
TL_SetSize(TL4, 2);
Son;
TL5 = TL_New(Tarih[T1Bar], Saat[T1Bar], T1, Tarih, Saat, GD);
TL5 >= 0 ise Başlayın
TL_SetColor(TL5, BullColor);
TL_SetStyle(TL5, Tool_Dotted);
Son;
TL6 = TL_New(Tarih[T2Bar], Saat[T2Bar], T2, Tarih, Saat, GD);
TL6 >= 0 ise Başlayın
TL_SetColor(TL6, BullColor);
TL_SetStyle(TL6, Tool_Dotted);
Son;
Son;
Son;
{Ayı 222 için test edin}
{Tepe X, P2'dir}
{Oluk A T2'dir}
{Tepe B, P1'dir}
{Çukur C T1'dir}
{GD kısa noktadır}
GD = Yüksek;
PTValid = T1Bar < P1Bar ve P1Bar < T2Bar ve T2Bar < P2Bar;
HLValid = T1 > T2 ve P1 < P2 ve T1 < P1;
InZone = GD > P1 ve GD < P2 ve T2 <= En Düşük(Düşük, P2Bar);
PTValid ve HLValid ve InZone ise Başlayın
XA = P2 - T2;
AB = P1 - T2;
BC = P1 - T1;
CD = GD - T1;
AD = GD - T2;
ABdXA = AB / XA; {AB, XA'nın %61,8'i olmalıdır}
C1 = ABdXA > F1 - Tolerans ve ABdXA < F1 + Tolerans;
BCdAB = BC / AB; {BC, AB'nin %61.8-78.6'sı olmalıdır}
C2 = BCdAB > F1 - Tolerans ve BCdAB < F2 + Tolerans;
CDdBC = CD / BC; {CD, BC'nin %127-161,8'i olmalıdır}
C3 = CDdBC > F3 - Tolerans ve CDdBC < F4 + Tolerans;
ADdXA = AD / XA; {AD, XA'nın %78,6'sı olmalıdır}
C4 = ADdXA > F2 - Tolerans ve ADdXA < F2 + Tolerans;
C1 ve C2 ve C3 ve C4 ise Başlayın
TL1 = TL_New(Tarih[P2Bar], Saat[P2Bar], P2, Tarih[T2Bar], Saat[T2Bar], T2);
TL1 >= 0 ise Başlayın
TL_SetColor(TL1, BearColor);
TL_SetStyle(TL1, Tool_Solid);
TL_SetSize(TL1, 2);
Son;
TL2 = TL_New(Tarih[T2Bar], Saat[T2Bar], T2, Tarih[P1Bar], Saat[P1Bar], P1);
TL2 >= 0 ise Başlayın
TL_SetColor(TL2, BearColor);
TL_SetStyle(TL2, Tool_Solid);
TL_SetSize(TL2, 2);
Son;
TL3 = TL_New(Tarih[P1Bar], Saat[P1Bar], P1, Tarih[T1Bar], Saat[T1Bar], T1);
TL3 >= 0 ise Başlayın
TL_SetColor(TL3, BearColor);
TL_SetStyle(TL3, Tool_Solid);
TL_SetSize(TL3, 2);
Son;
TL4 = TL_New(Tarih[T1Bar], Saat[T1Bar], T1, Tarih, Saat, GD);
TL4 >= 0 ise Başlayın
TL_SetColor(TL4, BearColor);
TL_SetStyle(TL4, Tool_Solid);
TL_SetSize(TL4, 2);
Son;
TL5 = TL_New(Tarih[P1Bar], Saat[P1Bar], P1, Tarih, Saat, GD);
TL5 >= 0 ise Başlayın
TL_SetColor(TL5, BearColor);
TL_SetStyle(TL5, Tool_Dotted);
Son;
TL6 = TL_New(Tarih[P2Bar], Saat[P2Bar], P2, Tarih, Saat, GD);
TL6 >= 0 ise Başlayın
TL_SetColor(TL6, BearColor);
TL_SetStyle(TL6, Tool_Dotted);
Son;
Son;
Son;
Son;
2.Varlık Laboratuvarı kodu:
prosedür Gartley222
(
VFactor: yüzer;
Tolerans: yüzer;
Yeniden inceleme: tamsayı;
HoldBar'lar: tamsayı;
VolMin: tam sayı
);
başlamak
var ATRValue, VP, Reversal: float;
var F1, F2, F3, F4, P1, P2, T1, T2: kayan nokta;
var Bar, P1Bar, P2Bar, T1Bar, T2Bar, p: tamsayı;
var XA, AB, BC, CD, AD, D, XD, DT, ABdXA, BCdAB, CDdBC, ADdXA: kayan nokta;
var PTValid, HLValid, InZone, C1, C2, C3, C4: boole;
var BT, BS, ST, SS: kayan nokta;
{Fibonacci Sabitleri}
F1 := 0.618;
F2 := 0.786;
F3 := 1.27;
F4 := 1.618;
InstallTimeBasedExit(HoldBars);
Bar için := BarCount()'a Geri Dönük - 1 do
başlamak
ApplyAutoStops(Bar);
ATRValue := ATR(Çubuk, Geri İnceleme);
SetShareSize( 1000 * Int( 10 / ATRValue ) );
VP := 100 * ATRValue / FiyatKapat(Bar);
{Dorukları ve çukurları bulun}
Ters Çevirme := Int(VPFactor * VP);
P1 := Peak(Bar, #Yüksek, F1 * Ters);
P1Bar := PeakBar(Bar, #Yüksek, F1 * Ters);
P2 := Tepe(P1Bar, #Yüksek, Ters);
P2Bar := PeakBar(P1Bar, #Yüksek, Ters);
T1 := Çukur(Bar, #Düşük, F1 * Ters);
T1Bar := TroughBar(Bar, #Düşük, F1 * Ters);
T2 := Çukur(T1Bar, #Düşük, Ters);
T2Bar := TroughBar(T1Bar, #Düşük, Ters);
{Bir yükseliş testi 222}
{Oluk X T2'dir}
{Tepe A, P2'dir}
{Oluk B, T1'dir}
{Tepe C, P1'dir}
{D satın alma bölgesidir}
D := FiyatDüşük(Bar);
PTValid := (P1Bar > T1Bar) ve (T1Bar > P2Bar) ve (P2Bar > T2Bar);
HLValid := (P1 T2) ve (P1 > T1);
InZone := (D T2);
if (Piyasa Konumu = 0) ve
(SMA(Bar, #Volume, Lookback) >= VolMin) ve
(PTValid) ve (HLValid) ve (InZone) ardından
başlamak
XA := P2 - T2;
AB := P2 - T1;
BC := P1 - T1;
XD := P2 - (F2 * XA);
CD := P1 - XD;
AD := P2 - XD;
ABdXA := AB / XA; {AB, XA'nın %61,8'i olmalıdır}
C1 := (ABdXA > F1 - Tolerans) ve (ABdXA < F1 + Tolerans);
BCdAB := BC / AB; {BC, AB'nin %61.8-78.6'sı olmalıdır}
C2 := (BCdAB > F1 - Tolerans) ve (BCdAB < F2 + Tolerans);
CDdBC := CD / BC; {CD, BC'nin %127-161,8'i olmalıdır}
C3 := (CDdBC > F3 - Tolerans) ve (CDdBC < F4 + Tolerans);
ADdXA := AD / XA; {AD, XA'nın %78,6'sı olmalıdır}
C4 := (ADdXA > F2 - Tolerans) ve (ADdXA < F2 + Tolerans);
C1 ve C2 ve C3 ve C4 ise
başlamak
DrawLine(P2Bar, P2, T2Bar, T2, 0, #Mavi, #Solid);
DrawLine(T1Bar, T1, P2Bar, P2, 0, #Mavi, #Katı);
DrawLine(P1Bar, P1, T1Bar, T1, 0, #Mavi, #Solid);
DrawLine(Çubuk, D, P1Bar, P1, 0, #Mavi, #Katı);
DrawLine(Çubuk, D, T1Bar, T1, 0, #Mavi, #Noktalı);
DrawLine(Çubuk, D, T2Bar, T2, 0, #Mavi, #Noktalı);
AnnotateBar('B', Çubuk, Doğru, #Mavi, 10);
BuyAtLimit(Bar, XD, 'G222 LE');
DT := F1 * CD;
BT := XD + DT;
BS := T2;
son;
son;
{Ayı 222 için test edin}
{Tepe X, P2'dir}
{Oluk A T2'dir}
{Tepe B, P1'dir}
{Çukur C T1'dir}
{D kısa bölgedir}
D := FiyatYüksek(Bar);
PTValid := (T1Bar > P1Bar) ve (P1Bar > T2Bar) ve (T2Bar > P2Bar);
HLValid := (T1 > T2) ve (P1 < P2) ve (T1 < P1);
InZone := (D > P1) ve (D < P2);
if (Piyasa Konumu = 0) ve
(PriceClose( Bar ) >= 5) ve
(SMA(Bar, #Volume, Lookback) >= VolMin) ve
(PTValid) ve (HLValid) ve (InZone) ardından
başlamak
XA := P2 - T2;
AB := P1 - T2;
BC := P1 - T1;
XD := T2 + (F2 * XA);
CD := XD - T1;
AD := XD - T2;
ABdXA := AB / XA; {AB, XA'nın %61,8'i olmalıdır}
C1 := (ABdXA > F1 - Tolerans) ve (ABdXA < F1 + Tolerans);
BCdAB := BC / AB; {BC, AB'nin %61.8-78.6'sı olmalıdır}
C2 := (BCdAB > F1 - Tolerans) ve (BCdAB < F2 + Tolerans);
CDdBC := CD / BC; {CD, BC'nin %127-161,8'i olmalıdır}
C3 := (CDdBC > F3 - Tolerans) ve (CDdBC < F4 + Tolerans);
ADdXA := AD / XA; {AD, XA'nın %78,6'sı olmalıdır}
C4 := (ADdXA > F2 - Tolerans) ve (ADdXA < F2 + Tolerans);
C1 ve C2 ve C3 ve C4 ise
başlamak
DrawLine(T2Bar, T2, P2Bar, P2, 0, #Kırmızı, #Solid);
DrawLine(P1Bar, P1, T2Bar, T2, 0, #Kırmızı, #Solid);
DrawLine(T1Bar, T1, P1Bar, P1, 0, #Kırmızı, #Solid);
DrawLine(Çubuk, D, T1Bar, T1, 0, #Kırmızı, #Katı);
DrawLine(Bar, D, P1Bar, P1, 0, #Kırmızı, #Noktalı);
DrawLine(Çubuk, D, P2Bar, P2, 0, #Kırmızı, #Noktalı);
AnnotateBar('S', Çubuk, Yanlış, #Kırmızı, 10);
ShortAtLimit(Çubuk, XD, 'G222 SE');
DT := F1 * CD;
ST := XD - DT;
SS := P2;
son;
son;
LastPositionActive ise
başlamak
MarketPosition = 1 ise başla
SellAtLimit(Bar+1, BT, #Tümü, 'G222 LX+');
SellAtStop(Bar+1, BS, #Tümü, 'G222 LX-');
son;
MarketPosition = -1 ise başla
CoverAtLimit(Bar+1, ST, #Tümü, 'G222 LX+');
CoverAtStop(Bar+1, SS, #Tümü, 'G222 LX-');
son;
son;
son;
son;
Gartley222(2.0, 0.1, 20, 7, 2000000);
SMCMA ve WCMA nedir ???
Bu 2 şey hakkında herhangi bir şey bilen var mı ve bunları Meta Trader 4 için nereden alıp kullanacağız
1. SMCMA
2. WCMA
Bunların bir çeşit MA olduğunu bilebildiğim tek şey
( Hareketli Ortalamalar) ama nereden alınır ve nasıl kullanılır?
Hoşçakal
Zero_Forex
Bir EA'da diğer döviz çiftlerini mi kullanıyorsunuz?
Alım veya satım yapmak isteyip istemediğinize karar vermenize yardımcı olması için bir Uzman Danışmanın diğer döviz çifti çizelgelerini kontrol etmesini nasıl sağlayacağını bilen var mı? Örneğin, bir EA'nın gbp-chf'de alıp satmayacağına karar vermesi için kriterlerin bir parçası olarak usd-chf'ye bakmasını nasıl sağlayabilirim? Şimdiye kadar beğendiğim bir EA'm var, ancak diğer ilgili çiftleri kontrol etmek için programa yazsam daha iyi olacağını düşünüyorum. Codersguru veya yardımcı olabilecek herhangi biri, lütfen bana bildirin.
Teşekkürler!
Merhaba millet,
Bazı kod parçalarına yardım etmemi isteyen çok sayıda özel mesajım var.
MQL4 ile ilgili sorularınızı buraya yazabilirsiniz, ben de cevaplamak için elimden geleni yapacağım.Merhaba Kodlayıcı.
Her 5 Dakika çubuğu için yalnızca bir kez uyarı sesi olması mümkün müdür?
Koşul sağlandığında bir uyarının yalnızca bir kez çalması mümkün müdür?
Sonra kapatın.
Daha sonra bir sonraki barın açılması üzerine göstergeyi yenilemek için tekrar ses vermeye hazır.
Ardından 0,0005 koşulu tekrar karşılanana kadar tekrar kapatın.
Sonra tekrar açın ve böyle devam edin......
Aşağıdaki gösterge, Tetiklendiğinde çubuk başına birçok uyarı verebilir.
Aşağıya bakınız.
//+------------------------------------------- -------------------+
//| Suyu.mq4 |
//| Perky_z |
//| http://fxovereasy.atspace.com/index |
//+------------------------------------------- -------------------+
#özellik telif hakkı "şımarık"
#özellik bağlantısı "http://fxovereasy.atspace.com/index"
//---- gösterge ayarları
#özellik göstergesi_separate_window
#özellik göstergesi_tamponları 2
#özellik göstergesi_color1 KireçYeşil
#özellik göstergesi_color2 FireBrick
//---- gösterge parametreleri
extern bool DoAlerts = false;
extern int AlertFromPips = 5;
dış int Periyod=7;
dış çift Seviye=5;
extern bool JuiceLevelsVisible = true;
extern int JuiceStartPips = 5;
extern int JuiceStepPips = 5;
extern int JuiceLevelsNumber = 4;
dış renk JuiceLevelColor = Gümüş;
//---- gösterge tamponları
çift OsMAUpBuffer[];
çift OsMADownBuffer[];
çift OsMAValue;
çift akımJuiceLevel;
//+------------------------------------------- -------------------+
//| Özel gösterge başlatma işlevi |
//+------------------------------------------- -------------------+
int init()
{
//---- Sayım için 2 ek tampon kullanılır.
Gösterge Tamponları(2);
//---- çizim ayarları
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexDrawBegin(0,Seviye);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 2 gösterge arabelleği eşlemesi
if(!SetIndexBuffer(0,OsMAUpBuffer) &&
!SetIndexBuffer(1,OsMADownBuffer))
Print("gösterge arabellekleri ayarlanamıyor!");
//---- DataWindow ve gösterge alt pencere etiketi için isim
GöstergeShortName("Suyu("+Periyod+","+Seviye+")");
//---- başlatma tamamlandı
dönüş(0);
}
int SetLevelLines()
{
string levelLabel;
if(JuiceLevelsVisible)
{
SetLevelStyle(STYLE_DASH,1,JuiceLevelColor);
for(int i=1; i<= JuiceLevelsNumber; i++)
{
currentJuiceLevel = (JuiceStartPips + (i-1)*JuiceStepPips)*Point;
SetLevelValue(i,currentJuiceLevel);
levelLabel = "Seviye "+i+": "+currentJuiceLevel;
SetIndexLabel(i,levelLabel);
}
}başka
{
for(i=1; i<= JuiceLevelsNumber; i++)
{
SetLevelValue(i,0.0);
}
}
}
//+------------------------------------------- -------------------+
//| Osilatörün Hareketli Ortalaması |
//+------------------------------------------- -------------------+
int başlangıç()
{
//if ( Nokta != 15) Uyarı ("Meyve Suyu Yalnızca 15 Dakikalık Grafik için Tavsiye Edilir!!");
int limit,i;
int counted_bars=IndicatorCounted();
çift Suyu;
bool TurnOnAlert = doğru;
//---- olası hataları kontrol et
if(counted_bars<0) return(-1);
//---- son sayılan çubuk yeniden sayılacak
if(counted_bars>0) counted_bars--;
limit=Barlar-sayılan_barlar;
Seviye = Seviye*Puan;
if (Period()==5) Düzey=Seviye/2;
SetLevelLines();
//---- Ana döngü
for(i=0; i<limit; i++)
{
Juice=iStdDev (NULL,0,Periyod,MODE_EMA,0,PRICE_CLOSE,i)-Level;
if(Meyve suyu>0){
OsMAUpBuffer=Suyu;
OsMADownBuffer=0;
}else if(Suyu<0){
OsMADownBuffer=Suyu;
OsMAUpBuffer=0;
}başka{
OsMAUpBuffer=0;
OsMADownBuffer=0;
}
}
if (DoAlerts)
{
if (Juice > AlertFromPips*Point && Period() == 5)
{
eğer (TurnOnAlert)
{
Alert("Yukarıdaki meyve suyu",AlertFromPips*Point," için ", Symbol());
PlaySound("Tick.wav");
TurnOnAlert = yanlış;
}
}
başka
{
TurnOnAlert = doğru;
}
}
//---- tamamlamak
dönüş(0);
}
//+------------------------------------------- -------------------+
Yardımınız çok takdir edilecektir.
Çok teşekkürler.
Leigh.