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
Merhaba,
standart stepMA 9 göstergesini histogram olarak ayrı bir pencerede buna değiştirdim ama satın alma sinyallerinin neden standart göstergeyle senkronize edilmediğini bilmiyorum (satış sinyalleri). Yenisiyle, orijinal göstergeden bir çubuk geride oluşurlar. Niye ya? Göstergenin grafik yönünü belirleyen kodun yalnızca bir kısmını değiştirdim.
stepma_9_histo_mtf.mq4
stepma_9.0.mq4
Merhaba,
standart stepMA 9 göstergesini histogram olarak ayrı bir pencerede buna değiştirdim ama satın alma sinyallerinin neden standart göstergeyle senkronize edilmediğini bilmiyorum (satış sinyalleri). Yenisiyle, orijinal göstergeden bir çubuk geride oluşurlar. Niye ya? Göstergenin grafik yönünü belirleyen kodun yalnızca bir kısmını değiştirdim.
stepma_9_histo_mtf.mq4
stepma_9.0.mq4
thefxpros
Bu, çizgilerin nasıl çizildiğinin bir sonucudur.
Bir çizgi çizdiğinizde, çizgiyi görünür hale getirmek için 1 çubuk geri çizmeye başlamanız gerekir (aksi takdirde bir nokta olurdu ve grafikte hiç görünmezdi). Bu ikisini deneyin ve şimdi karşılaştırın
Merhaba,
Takip eden bir durdurmanın işe yarayacağı gibi bir ticaret açacak bir EA arıyordum.
Diyelim ki bir enstrümanda düzeltme bekliyorum. İşlemimi mümkün olduğunca yüksek (veya düşük) fiyat üzerinden açmak isterim. Yani böyle bir EA ile, ticaret parametrelerimi belirleyebilirim ve bu EA, fiyatı takip eden bir durdurmaya benzer şekilde takip etmeye devam edecek. Bir geri dönüş olduğunda, ticaret vurulur ve açılır.
Hiç böyle bir EA gördünüz mü?
teşekkürler
Herkese selam
kod yapmaya çalışıyorum ama neden ticaret açamıyorum
for (int iTS = 0; iTS < 2000; iTS++) {
int varZonStart = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "00:00");
int varZonEnd = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "10:00");
int JamStart=TimeHour(varZonStart);
int JamEnd=TimeHour(varZonEnd);
if (JamStart>JamEnd) {
varCurrentTime = decDateTradeDay(varCurrentTime);
//if (TimeDayOfWeek(varCurTime) < 1) varCurTime = decDateTradeDay(varCurTime);
if (TimeDayOfWeek(varCurrentTime) > 5) varCurrentTime = decDateTradeDay(varCurrentTime);
}
varZonStart = StrToTime(TimeToStr(varCurrentTime, TIME_DATE) + " " + "00:00");
int varShiftStart = iBarShift(NULL, 0, varZonStart - 60 * Period());
int varShiftEnd = iBarShift(NULL, 0, varZonEnd);
varHighest = High;
varLowest = Low;
varCurrentTime = decDateTradeDay(varCurrentTime); //set 1 hari kebelakang
if (TimeDayOfWeek(varCurrentTime) < 1) varCurrentTime = decDateTradeDay(varCurrentTime); //jika minggu mundur lagi
if (TimeDayOfWeek(varCurrentTime) > 5) varCurrentTime = decDateTradeDay(varCurrentTime); //jika sabtu mundur lagi
}
for (int iTSh = 0; iTSh < 2000; iTSh++) {
for (int iTSl = 0; iTSl < 2000; iTSl++) {
if(((varHighest-varLowest)/Pip)<=5) varHL=(varHighest+varLowest)/2;
}
}
double isg10a = iOpen(Symbol(),PERIOD_M15,1);
double isg10b = iClose(Symbol(),PERIOD_M15,1);
int static isg10c = -1;
for (iTS = 0; iTS < 2000; iTS++) {
if(isg10avarHL)isg10c =0;
if(isg10a>varHL&&isg10b<varHL)isg10c =1;
}
if (isg10c==0) To code Buy
else if (isg10c==1) To code Sel
else no trade
Jim Her şeyi yeniden yazmak yerine, çubukları hesaplamak için bir sınır ekledi ve ardından tüm bu çubuklar yeniden hesaplandı. Bu, yenileme sorununu çözmelidir (jutlar, BarsTocalculate'i makul bir seviyede tutar - çok büyük değil, çok küçük bir değerde tutar. Varsayılan olarak 1000 kullandım ve bu şekilde sorun yok gibi görünüyor). Denemek
sevgili mladen,
Çabalarınız ve çok hızlı yardımınız için çok teşekkürler.
deneyeceğim.
Münih'ten çok şey
Lütfen bu ses göstergesini mt4 cihazıma eklemek için yükseltmeme yardım edin
Merhaba gurular lütfen bu ses göstergesindeki hataları düzeltmeme yardım edin. Son zamanlarda mt4 grafiğime eklenemediğini fark ettim. Dosyadaki hataları düzeltmek için mümkün olan her şeyi yaptım ama boşuna. Büyük mt4 yükseltmesi nedeniyle olduğundan şüpheleniyorum. Mt4 klasörümdeki diğer tüm göstergeler, hem eski hem de daha yeni sürümlerin tümü iyi çalışıyor. Bir yıl önce çalışıyordu, en son kullandım. Henüz bir programcı değilim.
Lütfen ekteki dosyaya bakınız
Merhaba MLaden ve Mrtools,
umarım iyisindir
RSX hakkında bir onayınıza ihtiyacım var.
RSX'i hesaplamak için daha basit bir formül kullandığınızı görüyorum:
__________________________
double Kg = (3.0)/(2.0+Uzunluk);
çift Hg = 1.0-Kg;
if (eğim[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);
if (ArrayRange(wrkBuffer,0) != Barlar) ArrayResize(wrkBuffer,Barlar);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,Fiyat,i);
if (i==(Bars-1)) { for (int c=0;c<12;c++)wrkBuffer[r][c] = 0; devam etmek; }
//
//
//
//
//
double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
çift moa = MathAbs(anne);
için (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*anne + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mom = 1.5*wrkBuffer[r][kk+0] - 0,5 * wrkBuffer[r][kk+1];
wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];
wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; moa = 1.5*wrkBuffer[r][kk+6] - 0,5 * wrkBuffer[r][kk+7];
}
eğer (moa != 0)
rsx = MathMax(MathMin((anne/ay+1.0)*50.0,100.00),0.00);
yoksa rsx = 50;
______________________
Sadece RSX'in bu formülle nasıl hesaplandığını anladığınızdan emin olmak için
İlk satır ile:
mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
aslında wrkBuffer[r][12] fiyatın basit hareketli ortalamasıdır , normal bir RSI'da olduğu gibi ödülü not edin?
Doğru ? Ama bu SMA'nın hangi dönemi olduğunu anlamıyorum (Muhtemelen Uzunluk değil)?
Ve sonra, eğer satırları iyi anladıysam:
için (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*anne + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1];
mom = 1.5*wrkBuffer[r][kk+0] - 0,5 * wrkBuffer[r][kk+1];
Aslında, yukarıdaki ilk anneyle birlikte, annenin 3 katını (arka arkaya) hesaplar (mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];)
Doğru mu ?
Ve bundan sonra RSX=((mom/moa)+1)*50 ile "klasik" olur
Bir kodlayıcı olarak (başka bir platformda) bir sonraki cevabınız için teşekkür ederim, kodların nasıl çalıştığını anlamaktan hoşlandığımı biliyorsunuz.
İyi günler
Zilliq
Merhaba MLaden ve Mrtools,
umarım iyisindir
RSX hakkında bir onayınıza ihtiyacım var.
RSX'i hesaplamak için daha basit bir formül kullandığınızı görüyorum:
__________________________
double Kg = (3.0)/(2.0+Uzunluk);
çift Hg = 1.0-Kg;
if (eğim[limit]==-1) CleanPoint(limit,rsxDa,rsxDb);
if (ArrayRange(wrkBuffer,0) != Barlar) ArrayResize(wrkBuffer,Barlar);
for(i=limit, r=Bars-i-1; i>=0; i--, r++)
{
wrkBuffer[r][12] = iMA(NULL,0,1,0,MODE_SMA,Fiyat,i);
if (i==(Bars-1)) { for (int c=0;c<12;c++)wrkBuffer[r][c] = 0; devam etmek; }
//
//
//
//
//
double mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
çift moa = MathAbs(anne);
için (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*anne + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1]; mom = 1.5*wrkBuffer[r][kk+0] - 0,5 * wrkBuffer[r][kk+1];
wrkBuffer[r][kk+6] = Kg*moa + Hg*wrkBuffer[r-1][kk+6];
wrkBuffer[r][kk+7] = Kg*wrkBuffer[r][kk+6] + Hg*wrkBuffer[r-1][kk+7]; moa = 1.5*wrkBuffer[r][kk+6] - 0,5 * wrkBuffer[r][kk+7];
}
eğer (moa != 0)
rsx = MathMax(MathMin((anne/ay+1.0)*50.0,100.00),0.00);
yoksa rsx = 50;
______________________
Sadece RSX'in bu formülle nasıl hesaplandığını anladığınızdan emin olmak için
İlk satır ile:
mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];
aslında wrkBuffer[r][12] fiyatın basit hareketli ortalamasıdır, normal bir RSI'da olduğu gibi ödülü not edin?
Doğru ? Ama bu SMA'nın hangi dönemi olduğunu anlamıyorum (Muhtemelen Uzunluk değil)?
Ve sonra, eğer satırları iyi anladıysam:
için (int k=0; k<3; k++)
{
int kk = k*2;
wrkBuffer[r][kk+0] = Kg*anne + Hg*wrkBuffer[r-1][kk+0];
wrkBuffer[r][kk+1] = Kg*wrkBuffer[r][kk+0] + Hg*wrkBuffer[r-1][kk+1];
mom = 1.5*wrkBuffer[r][kk+0] - 0,5 * wrkBuffer[r][kk+1];
Aslında, yukarıdaki ilk anneyle birlikte, annenin 3 katını (arka arkaya) hesaplar (mom = wrkBuffer[r][12]-wrkBuffer[r-1][12];)
Doğru mu ?
Ve bundan sonra RSX=((mom/moa)+1)*50 ile "klasik" olur
Bir kodlayıcı olarak (başka bir platformda) bir sonraki cevabınız için teşekkür ederim, kodların nasıl çalıştığını anlamaktan hoşlandığımı biliyorsunuz.
İyi günler
Zilliq"aslında wrkBuffer[r][12] fiyatın basit hareketli ortalamasıdır, ödülü normal bir RSI'da olduğu gibi not edin?"
Hayır. Bu ortalamanın hesaplama periyodu 1'dir, yani kullanılan "ortalama"nın fiyatına eşittir. İstenen fiyatı almanın en hızlı yolu olan metatader'da (aynı şeyi yaparak "case" yapısını yazmaya çalışırsanız, bunun rsx kodunda kullanılan yoldan çok daha yavaş olduğunu göreceksiniz)
"Aslında, yukarıdaki ilk anneyle birlikte, annenin 3 katını (arka arkaya) hesaplar"
Hayır. Her yeni yinelemede hangi değerleri kullandığını görün. mom ve moa döngü sürecinde sürekli olarak değiştirilir ve yeniden kullanılır (değişen formda)
Çok teşekkürler Mladen,
wrkBuffer[r][12]'nin fiyata eşit olduğunu iyi anladıysam çok garip, ama hesabı hızlandırmak için 1 periyotlu hareketli bir ortalama kullanıyorsunuz. Bu çok meraklı...
İkincisi, sanırım/sanırım söylemeye çalıştığım şey bu
anneyi fiyatın momentumu olarak hesaplar
Ve Kg ve Hg ile başka bir anneyi hesaplar. Yeni bir anne yaratmaya alışkın olan yeni bir anne verir ve bu böyle devam eder, 3 kez
Bunun gibi "daha kolay" (anlamayı kolaylaştırmak için) bir şey
anne
anne1=kg*anne
anne2=kg*anne1
anne3=kg*anne2
Ve sonunda mom3 ve moa3 kullanır
Haklıyım ?
Çok teşekkürler Mladen,
wrkBuffer[r][12]'nin fiyata eşit olduğunu iyi anladıysam çok garip, ama hesabı hızlandırmak için 1 periyotlu hareketli bir ortalama kullanıyorsunuz. Bu çok meraklı...
İkincisi, sanırım/sanırım söylemeye çalıştığım şey bu
anneyi fiyatın momentumu olarak hesaplar
Ve Kg ve Hg ile başka bir anneyi hesaplar. Yeni bir anne yaratmaya alışkın olan yeni bir anne verir ve bu böyle devam eder, 3 kez
Bunun gibi "daha kolay" (anlamayı kolaylaştırmak için) bir şey
anne
anne1=kg*anne
anne2=kg*anne1
anne3=kg*anne2
Ve sonunda mom3 ve moa3 kullanır
Haklıyım ?Zilliq,
evet öyle yapılıyor