Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1003

 
 

Lütfen bana aşağıdakileri nasıl uygulayacağımı söyleyin:

Özel çizgiler grafikte çizilir, "n" sayısı olsun. Fiyat satırlardan birine yaklaştığında fiyat değeri nasıl alınır?

Şimdiden teşekkürler!

 

Herkese merhaba) lütfen yardım edin - Amaç (fiyat "çizgi" den (100 puan) daha yüksekse (100 puan) ""o zaman alırız"") nasıl ifade edilir (fiyat herhangi bir değerden 100 puan daha yüksektir) ve başka bir soru şu anda hareketli ortalamanın fiyatını nasıl bulacağınız ???

Şimdiden teşekkürler )

 
Tema97 :

Herkese merhaba) lütfen yardım edin - Amaç (fiyat "çizgi" den (100 puan) daha yüksekse (100 puan) ""o zaman alırız"") nasıl ifade edilir (fiyat herhangi bir değerden 100 puan daha yüksektir) ve başka bir soru şu anda hareketli ortalamanın fiyatını nasıl bulacağınız ???

Şimdiden teşekkürler )

Tema, belgeleri okuyun, iMa, grafik nesnelerin yanı sıra orada açıklanmıştır. ObjectGetDouble fonksiyonu var hattın fiyatını alın (uygun parametrelerle)
 

Lütfen bir acemi kişiye, bir emri kapattıktan sonra, açılış için işlem koşullarını korurken, tekrar açmaktan nasıl kaçınacağını anlatın.

Örneğin: stokastik seviye 50'yi yukarı doğru geçerse, Satın Al'ı açın. Stokastik tersine döndüğünde veya 80. seviyeye ulaştığında veya kar alarak kapanır. Ancak aynı zamanda, açılış için ticaret koşulları korunur! Onlar. stokastik 50'nin üzerinde kalır ve Buy yeniden açılır!

double S_1=iStochastic(NULL,0,K,D,yavaşlama,MODE_SMA,price_field,MODE_MAIN,0);

double S_2=iStochastic(NULL,0,K,D,yavaşlama,MODE_SMA,price_field,MODE_MAIN,1);

eğer(S_1>50)

{

Opn_B=doğru;

}

if(S_1<S_2||S_1>80)

{

Cls_B=doğru;

}

MQL eğitiminde sunulan basit bir Uzman Danışman şemasına ticaret kriterleri ekliyorum. Lütfen bu sorunu önlemek için hangi işlevin kullanılması gerektiğini söyleyin. Teşekkür ederim!

 
if (S_1 > 50 && S_2 < 50 )

Bu, 50. seviyeyi aşağıdan yukarıya geçmenin şartıdır.

 
AlexeyVik :

Bu, 50. seviyeyi aşağıdan yukarıya geçmenin şartıdır.

Çok teşekkürler! Şimdi deneyeceğim.
 
Grafiği kapatmadan bir göstergeyi (veya ona eklenmiş Uzman Danışmanı) bir grafikten nasıl "ayırabilirim"?
 
Gerçek zamanlı olarak çalışan AccountEquity() göstergesini grafiğe koymak mümkün müdür? Nereden alınır?
 

Merhaba! Lütfen bana söyle. MQL4 Eğitiminde sunulan Expert Advisor'da ticaret kriterlerini değiştiriyorum. Herhangi bir kriter altında, bir stop loss ayarlamaya çalışırken, program 130 hatası veriyor: Satın Al'da yanlış duraklar. Lütfen nedenini açıklar mısınız?

// M15 için sayısal değerler

harici çift StopLoss =0; // Açılan sipariş için SL

harici çift Kar Al =0; // Açılan sipariş için TR

dış int K = 5;

harici int D = 3;

harici int yavaşlama = 3;

harici int fiyat_alanı = 0;


harici int Düzey_1 = 80; // Stokastik seviye

harici int Düzey_2 = 20;

harici int Period_MA_2=31; // MA dönemi 2

harici çift Rastvor =28,0; // MA arasındaki mesafe

dış çift Lot =0.01; // Sabit kodlanmış sayı çok

harici çift Artılar =0.07; // Serbest öz sermaye yüzdesi

bool İş=doğru; // Expert Advisor çalışacak.

dize Symb; // Finansın adı. alet

//------------------------------------------------ --------------- 2 --

int başlangıç()

{

int

K_seviyesi,

Toplam, // Penceredeki sipariş sayısı

İpucu=-1, // Tür seçili. siparişler (B=0,S=1)

bilet; // Sipariş numarası

çift S_1,

S_2,

MA_1_t, // Değer. MA_1 geçerli

MA_2_t, // Değer. MA_2 akımı

Parti, // Miktar seçilen sırayla lotlar

Lts, // Miktar açık düzende çok

Min_Lot, // Minimum lot sayısı

Adım, // Parti büyüklüğü değiştirme adımı

Ücretsiz, // Mevcut ücretsiz fonlar

One_Lot, // Bir lotun maliyeti

Fiyat, // Seçilen siparişin fiyatı

SL, // seçilen sıranın SL'si

TP; // seçilen siparişin TP'si

bool

Ans =false, // Kapattıktan sonra sunucu yanıtı

Cls_B=false, // Satın Al'ı kapatmak için kriterler

Cls_S=false, // Satışı kapatmak için kriterler

Opn_B=false, // Buy'u açma kriterleri

Opn_S=yanlış; // Sell'i açmak için kriterler

//------------------------------------------------ --------------- 3 --

// Ön işleme

if(Barlar < Period_MA_2) // Yeterli bar yok

{

Alert("Pencerede yeterli çubuk yok. Expert Advisor çalışmıyor.");

dönüş; // başlangıçtan çık()

}

if(İş==yanlış) // Kritik hata

{

Alert("Kritik hata. Expert Advisor çalışmıyor.");

dönüş; // başlangıçtan çık()

}

//------------------------------------------------ --------------- 4 --

// Siparişler için muhasebe

Sembol=Sembol(); // fin.instr'nin adı.

toplam=0; // Sipariş sayısı

for(int i=1; i<=OrdersTotal(); i++) // Sipariş üzerinden döngü

{

if (OrderSelect(i-1,SELECT_BY_POS)==true) // Sonraki Varsa

{ // Siparişlerin analizi:

eğer (OrderSymbol()!=Symb)devam ederse; // Bizim Fincemiz değil. alet

if (OrderType()>1) // Beklemede

{

Alert("Bekleyen bir sipariş algılandı. Expert Advisor çalışmıyor.");

dönüş; // başlangıçtan çık()

}

Toplam++; // Pazar sayacı kalabalık

if (Toplam>1) // Birden fazla sipariş yok

{

Alert("Çoklu piyasa emirleri. Expert Advisor çalışmıyor.");

dönüş; // başlangıçtan çık()

}

Bilet=SiparişTicket(); // Seçilen numara. ord.

Tip=SiparişTürü(); // Seçilen siparişin türü.

Fiyat =SiparişAçıkFiyat(); // Fiyat seçildi. ord.

SL =SiparişStopLoss(); // Seçilen siparişin SL'si.

TP=OrderTakeProfit(); // Seçilen siparişin TP'si.

Parti=SiparişLots(); // Parti sayısı

}

}

//------------------------------------------------ --------------- 5 --

// Ticaret kriterleri

S_1=iStochastic(NULL,0,K,D,yavaşlıyor,MODE_SMA,price_field,MODE_MAIN,0);


S_2=iStochastic(NULL,0,K,D,yavaşlıyor,MODE_SMA,price_field,MODE_MAIN,1);


if(S_1 > 50 && S_2 < 50)


{


Opn_B=doğru;


}


if(S_1<S_2||(S_1 < 80 && S_2 > 80))


{


Cls_B=doğru;


}

if(S_1 < 50 && S_2 > 50)


{


Opn_S=doğru;


}


if(S_1>S_2||(S_1 > 20 && S_2 < 20))


{


CLs_S=doğru;


}

//------------------------------------------------ --------------- 6 --

// Kapanış siparişleri

while(true) // Sipariş kapatma döngüsü.

{

if (Tip==0 && Cls_B==true) // Satın alma emri açıldı..

{ //ve bir kapatma kriteri var

Alert("Satın Alımı Kapatmaya Çalışıyor ",Ticket,". Yanıt bekleniyor..");

Yeniler(); // Veriyi güncelle

Ans=SiparişKapat(Bilet,Lot,Teklif,2); // Satın Al'ı Kapat

if (Ans==true) // Anladım :)

{

Alert("Sipariş kapandı",Bilet);

kırmak; // Kapatma döngüsünden çık

}

if (Fun_Error(GetLastError())==1) // Hata İşleme

devam etmek; // Yeniden dene

dönüş; // başlangıçtan çık()

}

if (Tip==1 && Cls_S==true) // Satış emri açıldı..

{ // ve bir kapatma kriteri var

Alert("Satılmaya çalışılıyor",Ticket,". Cevap bekleniyor..");

Yeniler(); // Veriyi güncelle

Ans=SiparişKapat(Bilet,Parti,Sor,2); // Satışı Kapat

if (Ans==true) // Anladım :)

{

Alert("Satış emri kapandı",Bilet);

kırmak; // Kapatma döngüsünden çık

}

if (Fun_Error(GetLastError())==1) // Hata İşleme

devam etmek; // Yeniden dene

dönüş; // başlangıçtan çık()

}

kırmak; // iken çık

}

//------------------------------------------------ --------------- 7 --

// Sipariş maliyeti

Yeniler(); // Veriyi güncelle

Min_Lot=MarketInfo(Symb,MODE_MINLOT); // Min. miktar çok

Serbest=HesapFreeMargin(); // Kullanılabilir fonlar

One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);// 1 lot maliyeti

Adım =MarketInfo(Symb,MODE_LOTSTEP); // Adım yeniden boyutlandırıldı

if (Lot > 0) // Lot belirtilirse,

lts=Çok; // onlarla çalışıyoruz

else // % ücretsiz öz sermaye

Lts=MathFloor(Serbest*Prots/Bir_Lot/Adım)*Adım;// Açmak için

if(Lts < Min_Lot) Lts=Min_Lot; // Minimumdan az değil

if (Lts*One_Lot > Free) // Lot, bedavadan daha pahalıdır.

{

Alert("Yeterli para yok", Lts," lot");

dönüş; // başlangıçtan çık()

}

//------------------------------------------------ --------------- sekiz --

// Emirleri açma

while(true) // Sipariş kapatma döngüsü.

{

if (Total==0 && Opn_B==true) // Emirleri aç. hayır +

{ // açık kriter satın almak

Yeniler(); // Veriyi güncelle

Alert("Satın Alım Açmaya Çalışıyorum. Cevap Bekleniyor..");

Ticket=OrderSend(Symb,OP_BUY,Lts,Ask,2,StopLoss,TakeProfit);//Open Buy

if (Bilet > 0) // Başarılı :)

{

Alert("Sipariş açık",Bilet);

dönüş; // başlangıçtan çık()

}

if (Fun_Error(GetLastError())==1) // Hata İşleme

devam etmek; // Yeniden dene

dönüş; // başlangıçtan çık()

}

if (Total==0 && Opn_S==true) // Emirleri aç. hayır +

{ // açık kriter Satmak

Yeniler(); // Veriyi güncelle

Alert("Sat açmaya çalışıyorum. Cevap bekleniyor..");

Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,2,StopLoss,TakeProfit);//Open Sel

if (Bilet > 0) // Başarılı :)

{

Alert("Sipariş açık",Bilet);

dönüş; // başlangıçtan çık()

}

if (Fun_Error(GetLastError())==1) // Hata İşleme

devam etmek; // Yeniden dene

dönüş; // başlangıçtan çık()

}

kırmak; // iken çık

}

//------------------------------------------------ --------------- dokuz --

dönüş; // başlangıçtan çık()

}


//------------------------------------------------ -------------- on --

int Fun_Error(int Error) // Hata İşleme Fonksiyonu

{

geçiş (Hata)

{ // Önlenebilir hatalar

case 4: Alert("Ticaret sunucusu meşgul. Tekrar deneyelim..");

uyku(3000); // Basit bir çözüm

dönüş(1); // Fonksiyon çıkışı

case 135:Alert("Fiyat değişti. Tekrar deneyelim..");

Yeniler(); // Veriyi güncelle

dönüş(1); // Fonksiyon çıkışı

case 136:Alert("Fiyat yok. Yeni bir onay işareti bekleniyor..");

while(RefreshRates()==false) // Bir sonraki onay işaretine kadar

Uyku(1); // Döngüde gecikme

dönüş(1); // Fonksiyon çıkışı

case 137:Alert("Aracı meşgul. Tekrar deniyor..");

uyku(3000); // Basit bir çözüm

dönüş(1); // Fonksiyon çıkışı

case 146:Alert("Ticaret alt sistemi meşgul. Tekrar deneniyor..");

Uyku(500); // Basit bir çözüm

dönüş(1); // Fonksiyon çıkışı

// Kritik hatalar

durum 2: Alert("Genel hata.");

dönüş(0); // Fonksiyon çıkışı

case 5: Alert("Eski terminal versiyonu.");

iş=yanlış; // artık çalışma

dönüş(0); // Fonksiyon çıkışı

case 64: Alert("Hesap bloke edildi.");

iş=yanlış; // artık çalışma

dönüş(0); // Fonksiyon çıkışı

case 133:Alert("Ticaret yasaktır.");

dönüş(0); // Fonksiyon çıkışı

case 134:Alert("İşlemi tamamlamak için yeterli para yok.");

dönüş(0); // Fonksiyon çıkışı

varsayılan: Alert("Bir hata oluştu",Hata); // Diğer seçenekler

dönüş(0); // Fonksiyon çıkışı

}

}

//------------------------------------------------ -------------- on bir --

int New_Stop(int Parametre) // Durdurmayı kontrol edin.

{

int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Min. mesafe

if (Parametre < Min_Dist) // İzin verilenden az ise

{

Parametre=Min_Dist; // İzin verilebilir olarak ayarlayın.

Alert("Durma emri mesafesi artırıldı.");

}

dönüş(Parametre); // geri dönüş değeri

}