![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,
Bu göstergeyi/Araçları nasıl kodlayabileceğimi düşünüyorum.
Gün içinde bazı aralığa karar verebileceğim bir göstergeye, komut dosyasına veya buna benzer bir şeye ihtiyacım var (ör. 12/10/2012-15/10/2012 veya 15/10/2012-15/10/2012) ve yazdıktan sonra csv veya excel dosyası, TF'ye bağlı olarak grafikte görüntülenen mum için açık yüksek düşük ve kapalı (ör. sadece bir güne karar verirsem ve 1 saat TF'ye eklersem, özellikleriyle birlikte 24 mum yazar).
yardımınız için şimdiden teşekkür ederim
Uyarı Sinyali Sorunu.
Evdeki herkese merhaba, yazdığım bir MT4 koduyla ilgili küçük bir sorun var. Bu kodun üç indys, stokastik, RSI ve CCI'yi izlemesi gerekiyor. birbirini yukarı veya aşağı kesiyor ve CCİ sıfırın üstünde veya altındaysa, 3 indy'nin tamamı sinyal çizgilerinin üzerindeyse al sinyali olmalı veya 3 indys sinyal çizgilerinin altındaysa sat sinyali olmalı...... ..bu kod çalışır, ancak her uyarı olduğunda, mumun her tıkında kendini tekrar etmeye devam eder. Bu uyarının, geçerli mumda üç koşul karşılanıyorsa ve tekrar ses çıkarmıyorsa yalnızca bir kez duyulmasını sağlamak için ne yapabilirim. bu aşağıdaki koddur.
if(Period()==240){
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
çift RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double şimdiCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double şimditrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// uyarılar
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){
Alert("Buy Arrow","\n"," Geçerli saat ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){
Alert("Oku Sat",\n","Geçerli saat ",TimeToStr(CurTime()),"\n",Symbol());
}
}
kaka
Bunun nedeni, farklı sembollerin değerlerinin çok farklı olabilmesidir (örneğin, GBPJPY şu anda 126 civarında ve EURUSD yaklaşık 100 kat daha azdır - bu değerleri aynı grafikte çizdiğinizde, EURUSD'nin değeri basitçe "resmin dışındadır". çünkü metatrader GBPJPY değerlerini grafik ölçeklendirme için bir ölçüt olarak alır).
Bu konuya bir göz atın: https://www.mql5.com/en/forum/178052 . Bu iş parçacığında zaten benzer sorunlar için birkaç çözüm varTeşekkürler Mladen. Bağlantınızı takip ettim ve ihtiyacıma uygun göstergeyi buldum.
kaka
Şu şekilde deneyin:
{
static datetime lastAlerted=0;
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double nowenCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double nowtrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// alerts
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI >0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Buy Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI <0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)&&(lastAlerted!=Time[0]))
{
lastAlerted=Time[0]; Alert("Sell Arrow","\n","Current time is ",TimeToStr(CurTime()),"\n",Symbol());
}
}Evdeki herkese merhaba, yazdığım bir MT4 koduyla ilgili küçük bir sorun var. Bu kodun üç indys, stokastik, RSI ve CCI'yi izlemesi gerekiyor. birbirini yukarı veya aşağı kesiyor ve CCİ sıfırın üstünde veya altındaysa, 3 indy'nin tamamı sinyal çizgilerinin üzerindeyse al sinyali olmalı veya 3 indys sinyal çizgilerinin altındaysa sat sinyali olmalı...... ..bu kod çalışır, ancak her uyarı olduğunda, mumun her tıkında kendini tekrar etmeye devam eder. Bu uyarının, geçerli mumda üç koşul karşılanıyorsa ve tekrar ses çıkarmıyorsa yalnızca bir kez duyulmasını sağlamak için ne yapabilirim. bu aşağıdaki koddur.
if(Period()==240){
double ist_main=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_MAIN,0);
double ist_signal=iStochastic(NULL,240,8,3,3,MODE_SMA,0,MODE_SIGNAL,0);
çift RSIP1=iRSI(NULL,240,14,PRICE_CLOSE,0);
double RSIP2=iRSI(NULL,240,70,PRICE_CLOSE,0);
double b4enCCI=iCCI(NULL,240,6,PRICE_TYPICAL,1);
double şimdiCCI=iCCI(NULL,240,6,PRICE_TYPICAL,0);
double b4trCCI=iCCI(NULL,240,14,PRICE_TYPICAL,1);
double şimditrCCI=iCCI(NULL,240,14,PRICE_TYPICAL,0);
// uyarılar
if((ist_main>ist_signal)&&(RSIP1>RSIP2)&&(nowenCCI>0&&nowenCCI>b4enCCI)&&(nowtrCCI>0&&nowtrCCI>b4trCCI)){
Alert("Buy Arrow","\n","Geçerli saat ",TimeToStr(CurTime()),"\n",Symbol());
}
if((ist_main<ist_signal)&&(RSIP1<RSIP2)&&(nowenCCI<0&&nowenCCI<b4enCCI)&&(nowtrCCI<0&&nowtrCCI<b4trCCI)){
Alert("Oku Sat",\n","Geçerli saat ",TimeToStr(CurTime()),"\n",Symbol());
}
}Uyarı Sorunları
Teşekkürler mladen, deneyeceğim. LastAlert() işlevini asla not almam ve lütfen tüm bu "tranche rouse" mt4 işlevlerinin dizinini nereden alacağımı bana bildirin.![](https://c.mql5.com/forextsd/smiles/rolleyes2.png)
ana para
Dikkatli olun: bu bir fonksiyon değil, son uyarının zamanını (bar zamanını) saklamak için kullanılan statik bir değişkendir ve bu şekilde aynı çubukta birden fazla uyarıyı önler. Ne yazık ki metatrader'da LastAlert() gibi bir işlev yoktur, bu nedenle işlev eksikliğini gidermek için örnekten bir çözüm bulmalıyız.
Teşekkürler mladen, deneyeceğim. LastAlert() fonksiyonunu asla not almam ve lütfen tüm bu "tranche rouse" mt4 fonksiyonlarının dizinini nereden alacağımı bana bildirin.
Merhaba mladen.
Son 24 saatlik gün mumunun her birine 24 değişken atamam gerekiyor.
Mumla biraz hesaplama yapmam gerekiyor ve sonuç bir tamponda atanacak.
Önceki günün 24 saatlik mumlarının her biri ile çalışmak için nasıl kod yazabilirim?
Teşekkür ederim
dasio
Buna benzer bir şey kullanabilirsiniz (bu mod dizileri kullanmaz). Ayrıca, bu örnek mevcut gün için
for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)
{
//
//
// processing the hourly data ... just an example here
//
//
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); // and so on ...
}
Merhaba mladen.
Son 24 saatlik gün mumunun her birine 24 değişken atamam gerekiyor.
Mumla biraz hesaplama yapmam gerekiyor ve sonuç bir tamponda atanacak.
Önceki günün 24 saatlik mumlarının her biri ile çalışmak için nasıl kod yazabilirim?
Teşekkür ederimdasio
Buna benzer bir şey kullanabilirsiniz (bu mod dizileri kullanmaz). Ayrıca, bu örnek mevcut gün için
for (int i=iBarShift(NULL,PERIOD_H1,startTime); TimeDayOfYear(iTime(NULL,PERIOD_H1,i))==TimeDayOfYear(startTime); i--)
{
//
//
// processing the hourly data ... just an example here
//
//
double close = iClose(NULL,PERIOD_H1,i); //
double open = iOpen(NULL,PERIOD_H1,i); // and so on ...
}
teşekkür ederim mladen.
Bu örnekte:
çift kapama = iClose (NULL,PERIOD_H1,i); //
çift açık = iOpen(NULL,PERIOD_H1,i); //
Hangi mum temsil edilir ve bir sonraki muma nasıl geçebilirim? ben+1?
Teşekkür ederim
dasio
Halihazırda mevcut günün tüm saatlerinde dolaşıyor. iClose( ) ve iOpen() öğelerini 1 saatten farklı bir zaman çerçevesinden gelen bir çağrı örneği olarak yerleştirdim. Geçerli günden farklı bir güne erişmek istiyorsanız, o zaman datetime startTime = iTime ( NULL , PERIOD_D1 , 0 ); Toplanan verileri istediğiniz herhangi bir güne ayırın
teşekkür ederim mladen.
Bu örnekte:
çift kapama = iClose(NULL,PERIOD_H1,i); //
çift açık = iOpen(NULL,PERIOD_H1,i); //
Hangi mum temsil edilir ve bir sonraki muma nasıl geçebilirim? ben+1?
Teşekkür ederim