Kodlama yardımı - sayfa 22

 

cevabın için teşekkürler robert

böyle bir gösterge panosu mükemmel olurdu, ancak bb sıkmalı bir pano bulamadım ve mevcut panoları bb sıkmalı algılamak için nasıl değiştireceğime dair hiçbir fikrim yok

kendi fikrim çok basitti, şöyle görünüyordu:

int Current;

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start() {

int USDCHF, GBPUSD, EURUSD, AUDUSD;

double upperBB_USDCHF = iBands("USDCHF", 0, 20, 2, 0, PRICE_CLOSE, MODE_UPPER, Current + 0);

double upperKC_USDCHF = iCustom("USDCHF", 0, "Keltner Channels", 20, 0, Current + 0);

double lowerBB_USDCHF = iBands("USDCHF", 0, 20, 2, 0, PRICE_CLOSE, MODE_LOWER, Current + 0);

double lowerKC_USDCHF = iCustom("USDCHF", 0, "Keltner Channels", 20, 2, Current + 0);

if(upperBB_USDCHFlowerKC_USDCHF)

Comment(": BollingerSqueeze for USDCHF");

return(0);

}

//+------------------------------------------------------------------+

o zaman bu sadece birkaç farklı çift için, ama dediğim gibi 'Yorum' her zaman yenileniyor

edit: tamam düzelttim, artık yardıma gerek yok

 
crexsking:
Merhaba Mladen ve tüm diğer üyeler,

Grafik desenini "büyük mum hareketi" (Aç[0]-Kapat[0] > 32 pip veya tam tersi) ni ticaret eurusd (FXOpen'de H1 <--- en doğru mum boyutu n modeli) ile takas ediyorum...

Yani, kesinlikle hiçbir gösterge yoktu. Sadece ticaret felsefesi.

Bu mantıkla ilgili bir EA kodlamaya çalışıyorum ama sanırım orada bir şeyler eksik... lütfen yardım edin!!!

"Bir şey eksik" ne demek ki:

-"büyük mum" gerçekleşmeden önce istiyorum... sistem her mum için son 4 mumu < 20 pips (aç - kapat veya tam tersi) hesapladı.

Oysa.. ne oldu benim mql4 kodlamam büyük mumdan önceki son 4 mumu okumuyor... kafam çok karışık..

Olması gereken şudur:

1. Büyük Mum Zamanı :-

- 3pm,4pm,5pm(London Open) ..n.. 8pm,9pm,10pm(US Open) <---- tüm zamanlar ben malezya olarak verilmiştir, bu yüzden bilgisayarınızı GMT 8.00++ olarak değiştirin

2. Büyük Mum boyutu: -

- 32 pip n yukarıda (yan önce 20 pip aşağıda ise)

- 42 pip n yukarıda (yan önce 20 pip n yukarıda ise)

3. Yan pazar: -

- Son minimum 4 saat için 50 pip'in altında n farklı renkte olmalıdır.

4. Geçersiz veya tehlikeli Piyasa (piyasa iptali): <--- bu piyasa koşulu gerçekleşirse işlem yapılmaz

1. Londra Açık B,B,B,B yukarı veya S,S,S,S aşağı doğru yana doğru. <--- B,B,B,B = Mumlar Satın al, satın al, satın al, satın al... sürekli

2. Büyük mum günlük zon maksimumda kapanır. <---- 75 pip minimum yüksek düşük

3. Büyük mum akşam 10'da meydana gelir. <----- GMT 8++ veya Malezya saati

4. Büyük mum çok büyük ve 80 pipten fazla.

5. Londra açılışından önce 50 pipten fazla mum var.

6. Tokyo seansında yukarı yönlü bir piyasa şekli ve Londra açılışında yukarı doğru büyük mum (aşağı için tersi)

Kodlama sorunları eklenir: -

extern double trigger = 32;

extern double sideway = 20;

extern int hour1 = 6;

extern int hour2 = 7;

extern int hour3 = 8;

extern int hour4 = 9;

extern int hourCB = 10;

extern int hourTRADE = 11;

extern int TradeTimeStart = 0;

extern int TradeTimeEnd = 23;

//---Variables

double currentPrice = 0.00000;

static datetime barStart;

string openTrades = "none";

int ticket;

int i = 0;

double lotSize;

double CBB = 0;

double CBS = 0;

double CBBT;

double CBST;

double PreviousCBB;

double PreviousCBS;

double CS1B;

double CS2B;

double CS3B;

double CS4B;

double CS5B;

double CS6B;

double CS1S;

double CS2S;

double CS3S;

double CS4S;

double CS5S;

double CS6S;

double CS1BT;

double CS2BT;

double CS3BT;

double CS4BT;

double CS1ST;

double CS2ST;

double CS3ST;

double CS4ST;

double PreviousCS1B;

double PreviousCS2B;

double PreviousCS3B;

double PreviousCS4B;

double PreviousCS1S;

double PreviousCS2S;

double PreviousCS3S;

double PreviousCS4S;

double GroupSW1B;

double GroupSW2B;

double GroupSW3B;

double GroupSW4B;

double GroupSW5B;

double GroupSW6B;

double GroupSW1S;

double GroupSW2S;

double GroupSW3S;

double GroupSW4S;

double GroupSW5S;

double GroupSW6S;

string permit = "suspended";

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start(){

CBB=(Close[1]-Open[1])/Point;

CBS=(Open[1]-Close[1])/Point;

CBBT=(hourCB==Hour());

CBST=(hourCB==Hour());

PreviousCBB = (CBB == CBBT);

PreviousCBS = (CBS == CBST);

CS1B=(Close[7]-Open[7])/Point;

CS2B=(Close[6]-Open[6])/Point;

CS3B=(Close[5]-Open[5])/Point;

CS4B=(Close[4]-Open[4])/Point;

CS5B=(Close[3]-Open[3])/Point;

CS6B=(Close[2]-Open[2])/Point;

CS1S=(Open[7]-Close[7])/Point;

CS2S=(Open[6]-Close[6])/Point;

CS3S=(Open[5]-Close[5])/Point;

CS4S=(Open[4]-Close[4])/Point;

CS5S=(Open[3]-Close[3])/Point;

CS6S=(Open[2]-Close[2])/Point;

CS1BT=(hour1==Hour());

CS2BT=(hour2==Hour());

CS3BT=(hour3==Hour());

CS4BT=(hour4==Hour());

CS1ST=(hour1==Hour());

CS2ST=(hour2==Hour());

CS3ST=(hour3==Hour());

CS4ST=(hour4==Hour());

PreviousCS1B = (CS1B == CS1BT);

PreviousCS2B = (CS2B == CS2BT);

PreviousCS3B = (CS3B == CS3BT);

PreviousCS4B = (CS4B == CS4BT);

PreviousCS1S = (CS1S == CS1ST);

PreviousCS2S = (CS2S == CS2ST);

PreviousCS3S = (CS3S == CS3ST);

PreviousCS4S = (CS4S == CS4ST);

GroupSW1B = (CS3B<sideway&&CS4S<sideway&&CS5B<sideway&&CS6S=trigger);

GroupSW1S = (CS3S<sideway&&CS4B<sideway&&CS5S<sideway&&CS6B=trigger);

currentPrice = iClose(NULL,0,0);

Comment("Price Continuation\n",

"Status: ",status()

);

//----Trade Algorithm

//trade hours value...

if(TradeTimeStart <= Hour() && Hour() <= TradeTimeEnd){

if(openTrades == "none" && permit == "approved"){

requestLongOrder();

requestShortOrder();

}

else{

requestPermit();

}

}

if(openTrades == "long"){

manageLongTrade();

}

if(openTrades == "short"){

manageShortTrade();

}

return(0);

}

//---FUNCTIONS---

//--

void requestLongOrder(){

if(hourTRADE==Hour() && GroupSW1B){

//--

Lots = CalcLots ();

ticket = OrderSend(Symbol(),OP_BUY,Lots,Ask,3,currentPrice-stopLoss,currentPrice+takeProfit,"My order ",06010,0,Green);

if(ticket<0){

//add email/sms alert here with GetLastError();

}

if(ticket>0){

openTrades = "long";

permit = "suspended";

}

}

}

void requestShortOrder(){

if(hourTRADE==Hour() && GroupSW1S){

//--

Lots = CalcLots ();

ticket = OrderSend(Symbol(),OP_SELL,Lots,Bid,3,currentPrice+stopLoss,currentPrice-takeProfit,"My order ",06010,0,Red);

if(ticket<0){

//add email/sms alert here with GetLastError();

}

if(ticket>0){

openTrades = "short";

permit = "suspended";

}

}

}

* Ekran görüntüsü ekli olarak ne olması gerektiği.

Lütfen yardım et...

Teşekkürler...

Saygılarımızla,

sürtüşme

Merhaba Crexsking,

Düşünebildiğim tek şey, böyle bir şey koymaya başladıktan sonra 5 haneli broker için dönüştürmeniz gerekebilir.

çift pipMultiplier = 1; (init'ten önce)

int başlangıç()

{

if (Rakamlar==3 || Rakamlar==5)

pipÇarpan = 10;

başka pipMultiplier = 1;

Ve sonra her Noktadan sonra bu Point*pipMultiplier gibi bir şey.

 

Yorumlar Nasıl Çözüldü?

Deorn:
cevabın için teşekkürler robert

böyle bir gösterge panosu mükemmel olurdu, ancak bb sıkmalı bir pano bulamadım ve mevcut panoları bb sıkmalı algılamak için nasıl değiştireceğime dair hiçbir fikrim yok

kendi fikrim çok basitti, şöyle görünüyordu:

========

o zaman bu sadece birkaç farklı çift için, ama dediğim gibi 'Yorum' her zaman yenileniyor

edit: tamam düzelttim, artık yardıma gerek yok

Merhaba Deorn,

Meydan okumanı çözdüğünü duymak harika. "Yorum" yenilemesini düzeltmek için ne yaptığınızı paylaşmak ister misiniz...?

Kodlamanızla iyi eğlenceler...!

Robert

 
cosmiclifeform:
Merhaba Deorn,

Meydan okumanı çözdüğünü duymak harika. "Yorum" yenilemesini düzeltmek için ne yaptığınızı paylaşmak ister misiniz...?

Kodlamanızla iyi eğlenceler...!

Robert

Dediğiniz gibi 'objectcreate' ile yaptım

M5'ten aylık 10 farklı çiftte zaman dilimleri için fark ettim:

Keltner Kanalları 'Keltner Kanalları' tam adıyla gereklidir, Faktör 1.5 ile 20 ayarlarını seçiyorum

ikisi de iki normal göstergedir

Onu koymak için boş bir pencere seçerdim

ve çirkin programlama için üzgünüm, bu benim ilk göstergem, ama işi yapıyor

selamlar

 
mrtools:
Merhaba Crexsking,

Düşünebildiğim tek şey, böyle bir şey koymaya başladıktan sonra 5 haneli broker için dönüştürmeniz gerekebilir.

çift pipMultiplier = 1; (init'ten önce)

int başlangıç()

{

if (Rakamlar==3 || Rakamlar==5)

pipÇarpan = 10;

başka pipMultiplier = 1;

Ve sonra her Noktadan sonra bu Point*pipMultiplier gibi bir şey.

Merhaba mrtools n teşekkürler...

Yapacağım ama ondan önce sorabilir miyim.. 5 haneli brokerlerle dönüştürmek için ilişki nedir?

Yani... bundan önce sistem yan piyasanın son 4 mumunda boğa veya ayı mumunu tanıyamıyor.

Bu kodu koyarsam, sistem onu tanır mı?

zavallı ingilizcem için özür dilerim...

Saygılarımızla,

Crexsking

 
crexsking:
Merhaba mrtools n teşekkürler...

Yapacağım ama ondan önce sorabilir miyim.. 5 haneli brokerlerle dönüştürmek için ilişki nedir?

Yani... bundan önce sistem yan piyasanın son 4 mumunda boğa veya ayı mumunu tanıyamıyor.

Bu kodu koyarsam, sistem onu tanır mı?

zavallı ingilizcem için özür dilerim...

Saygılarımızla,

sürtüşme

Crexsking, pips'e getirecektir, yani örneğin açılış için .91135 ve kapanış için .90685'e sahipseniz, fark .0045'tir, eğer 5 haneli komisyoncu noktasındaysanız, 450'ye eşittir çünkü .00001'e bölünür, ancak dönüştürme doğru bir şekilde 45 pip yapar, çünkü daha sonra .0001 veya .00001 x 10'a bölersiniz. Ve boğa veya ayı mumunu tanıma konusunda gerçekten söyleyemem çünkü kodunuzda başka bir yanlış görmüyorum.

 

Big Player's Coding..yardım edin lütfen...

\\---- Düzenlendi

Tamam yapıldı...

Sorun çözüldü.

Saygılarımızla,

Crexsking

 

Yardıma ihtiyacınız var

Tüm ana kodlama için merhaba, yardımınıza ihtiyacım var lütfen:

Mum grubu üzerinde alt ve üst sınırlar (kapalı - açık) küçük yatay çizgiler oluşturmak istersem kodlamaya ne dersiniz? Değer (kapalı - açık)*100000 = polaritesiz ve her zaman pozitif. Benim mum harici içerik sayısı.

Misal:

extern int (kapat - aç)*100000 = 10; // Ortalaması (kapat - aç) <= 10

extern int Maksimum mum sayısı = 3;

"Yatay çizgi üst sınırı" = gruptaki en yüksek açma/kapama değerinden alınır

"Yatay çizgi alt sınırı" = gruptaki en yüksek açma/kapama değerinden alınır

En iyi dileklerimle,

Teşekkür ederim

Dosyalar:
 

...

Korkarım tam olarak ne demek istediğini anlamıyorum. yani sorunuzun sadece bir kısmını cevaplıyorum.

5 basamaklı bir komisyoncudaki 5 basamaklı bir sembolün farkını 100000 ile çarparsanız, ypu istenen değeri alacak, ancak sembol örneğin JPY çarpılarından biriyse, bu değerleri çok aşan değerler alacaksınız. . Ayrıca, 4 haneli bir brokerde de daha büyük değerlere sahip olacaksınız. Bunu önlemek için en iyi yol pip farkını hesaplamaktır. Bunu şu şekilde yapabilirsiniz:
double pipMultiplier = 1;

if (Digits==3 || Digits==5) pipMultiplier = 10;

//

//

// calculate the difference in pips

//

//

double difference = MathAbs((Close[shift] - Open[shift])/(Point*pipMultiplier));[/PHP]

Ve sembol veya komisyoncudan bağımsız olarak her zaman piplerde olacaktır.

Minimum ve maksimum olarak, aşağıdaki gibi bir kodla bir dizi çubuğun en düşük düşük ve en yüksek yüksek değerlerini öğrenebilirsiniz (bu örnek, bahsettiğiniz gibi 3 çubuk aralığına bakacak şekilde ayarlanmıştır):
[PHP]çift en yüksek = Yüksek;

çift en düşük = Düşük;

paijowijaya:
Tüm ana kodlama için merhaba, yardımınıza ihtiyacım var lütfen:

Mum grubu üzerinde alt ve üst sınırlar (kapalı - açık) küçük yatay çizgiler oluşturmak istersem kodlamaya ne dersiniz? Değer (kapalı - açık)*100000 = polaritesiz ve her zaman pozitif. Benim mum harici içerik sayısı.

Misal:

extern int (kapat - aç)*100000 = 10; // Ortalaması (kapat - aç) <= 10

extern int Maksimum mum sayısı = 3;

"Yatay çizgi üst sınırı" = gruptaki en yüksek açma/kapama değerinden alınır

"Yatay çizgi alt sınırı" = gruptaki en yüksek açma/kapama değerinden alınır

En iyi dileklerimle,

Teşekkür ederim
 
mladen:
Korkarım tam olarak ne demek istediğini anlamıyorum. yani sorunuzun sadece bir kısmını cevaplıyorum. 5 basamaklı bir komisyoncudaki 5 basamaklı bir sembolün farkını 100000 ile çarparsanız, ypu istenen değeri alacak, ancak sembol örneğin JPY çarpılarından biriyse, bu değerleri çok aşan değerler alacaksınız. . Ayrıca, 4 haneli bir brokerde de daha büyük değerlere sahip olacaksınız. Bunu önlemek için en iyi yol pip farkını hesaplamaktır. Bunu şu şekilde yapabilirsiniz:
double pipMultiplier = 1;

if (Digits==3 || Digits==5) pipMultiplier = 10;

// calculate the difference in pips

double difference = MathAbs((Close[shift] - Open[shift])/(Point*pipMultiplier));[/PHP]

:
[PHP]çift en yüksek = Yüksek;

çift en düşük = Düşük;

Büyük sürpriz Soruma cevap verdiğiniz için çok mutluyum Usta Mladen,

Ama üzgünüm hala kafam karıştı, tam kodlama verir misiniz? Değer * 100000 Okumalarda kolay olsun istedim, 0,0002 (virgülden sonra 4 hane) değil, ama daha kolay bir yolunuz varsa, yolunuzu takip edeceğim. Özünde, üç mum bulunduğunda (denge bölgesi veya alıcılar = satıcılar veya yan yol bölgesi, her TF'nin farklı mum sayısı) küçük olan (değeri Kapat - Açık arasındaki farktan alınır) yatay bir çizgi çizmek istiyorum. yüklediğim resimdeki gibi. Yani çizgi yardımıyla grafikteki arz ve talebi biliyorum. Ya da sahip olduğunuz böyle bir gösterge var mı?

En iyi dileklerimle,

Teşekkürler Usta Mladen