Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 1003
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
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 )
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 )
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!
Bu, 50. seviyeyi aşağıdan yukarıya geçmenin şartıdır.
Bu, 50. seviyeyi aşağıdan yukarıya geçmenin şartıdı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
}