Nasıl kodlanır? - sayfa 317

 

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());

}

}

 
mladen:
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 var

Teşekkürler Mladen. Bağlantınızı takip ettim ve ihtiyacıma uygun göstergeyi buldum.

kaka

 

Şu şekilde deneyin:

if(Period()==240)

{

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());

}

}
Mastercash:
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.

 

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.

Mastercash:
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

datetime startTime = iTime(NULL,PERIOD_D1,0);

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 ...

}

dasio:
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
 
mladen:
dasio

Buna benzer bir şey kullanabilirsiniz (bu mod dizileri kullanmaz). Ayrıca, bu örnek mevcut gün için

datetime startTime = iTime(NULL,PERIOD_D1,0);

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

dasio:
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
Neden: