[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 10
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
Söyleyin bana, bir pozisyon açarken / bekleyen bir emir verirken veya sonrasında zararı durdur / kârı hemen alma olasılığını programlı olarak belirlemek mümkün müdür?
Durdurma ve kar ayarlama düzeylerini önceden kontrol edin.
MarketInfo() işlevinde kullanılan istek tanımlayıcıları. Aşağıdaki değerlerden biri olabilir:
Herkese merhaba! Ben sadece Expert Advisors yazmayı öğreniyorum, sıradan standart göstergelerdeki ilk Expert Advisor'ların çoğu gibi, şimdi yazdım, şimdi görevimi karmaşıklaştırdım, ancak kodun nasıl görüneceğini bilmiyorum. Genel olarak, şartlar oluştuğunda, bir pozisyon açıldığında ve kapandığında, diyelim ki aynı koşulları korurken bir alım için yeni bir tane açılmayacak şekilde nasıl yapılır, ancak sadece zıt koşullar ortaya çıktığında açılır. , vb. Teşekkürler!!!
orada yardımda neredeyse hazır örnek hazır örnek
Durdurma ve kar ayarlama düzeylerini önceden kontrol edin.
Bu listede belirli hesap türleri için kontrol yoktur. NDD Hesapları için Ticaret Kurallarından bir paragraf:
3.3. Müşteri terminali aracılığıyla bir Uzman Danışman kullanılarak bir pozisyon açılırsa, Müşteri Zarar Durdurma ve/veya Kâr Alma Emirleri seviyelerini belirleyemez. Müşteri bu emirleri vermek isterse, 5.16 - 5.22 ve 9.13 - 9.16 maddeleri uyarınca mevcut bir pozisyonu değiştirerek bunu yapabilir.
Bunu programlı olarak kontrol etmenin mümkün olup olmadığını merak ediyorum. Anladığım kadarıyla, hayır. Programda, öncelikle brokerin belirlediği koşulları dikkate alarak pozisyon açma / bekleyen emir verme işlevini yazmanız gerekir.Bu listede belirli hesap türleri için kontrol yoktur. NDD Hesapları için Ticaret Kurallarından bir paragraf:
Her nasılsa, sipariş verme kuralları tamamen açık değil, neyin mümkün olup neyin olmadığını demoda oynamayı deneyin. Anladığım kadarıyla, hiçbir şey programlı olarak bir emir vermenizi ve ardından onu değiştirmenizi engellemiyor.Bir pozisyon açtıktan sonra bağlantınızı kesip durmadan bırakmadığınız sürece, hak bir şekilde garip.
Bunu programlı olarak kontrol etmenin mümkün olup olmadığını merak ediyorum. Anladığım kadarıyla, hayır. Programda, öncelikle brokerin belirlediği koşulları dikkate alarak pozisyon açma / bekleyen emir verme işlevini yazmanız gerekir.Bu listede belirli hesap türleri için kontrol yoktur. NDD Hesapları için Ticaret Kurallarından bir paragraf:
Sorun yok. Hatta (kişisel kullanım için olmasa bile, çünkü hangi hesaplarda (ticaret koşullarını ve kimden) kullanacağınızı kendiniz biliyorsunuz), ancak sipariş vermesi için bir danışman verirseniz ve müşterinin kendisi henüz hangi hesaplara ve nerede olacağına karar vermemişse aynı anda alma ve durdurma ayarlayabilme özelliğine sahip hesap türlerinde bile kullanın, daha sonra varsayılan olarak, her tür siparişi kurarken bu seviyelerin sıfır değerlerine sahip bir danışman yaparsınız, daha sonra bunların modifikasyonu ile (çalışacaktır) hem orada hem de orada), elbette, hiç kimse, belirli bir ofiste her türlü emir ve durdurma ve alım seviyelerinin ayarlanması ve daha sonra değiştirilmesi için herhangi bir seçenekle alım satım işlemleri yaparken kontrol gerekliliklerini ve kısıtlamalarını iptal etmedi.
Her nasılsa, sipariş verme kuralları tamamen açık değil, neyin mümkün olup neyin olmadığını demoda oynamayı deneyin. Anladığım kadarıyla, hiçbir şey programlı olarak bir emir vermenizi ve ardından onu değiştirmenizi engellemiyor.Bir pozisyon açtıktan sonra bağlantınızı kesip durmadan bırakmadığınız sürece, hak bir şekilde garip.
))) Değil. Beni hiç anlamadın. "Programlı kurulum" hakkında değil, programlı olarak belirleme hakkında yazdım. Bazı hesap türlerinde hemen bir pozisyon açamazsınız ve benim için tercih edilen / daha güvenli olan stoplar / alımlar belirleyemezsiniz. mql5'te yanılmıyorsam bunu belirlemek mümkün görünüyor. Bu anı tanımlayabilmek ve tanıma bağlı olarak hangi işlevi kullanacağımı seçebilmek istiyorum.
Sorun yok. Hatta (kişisel kullanım için olmasa bile, çünkü hangi hesaplarda (ticaret koşullarını ve kimden) kullanacağınızı kendiniz biliyorsunuz), ancak sipariş vermesi için bir danışman verirseniz ve müşterinin kendisi henüz hangi hesaplara ve nerede olacağına karar vermemişse aynı anda alma ve durdurma ayarlayabilme özelliğine sahip hesap türlerinde bile kullanın, daha sonra varsayılan olarak, her tür siparişi kurarken bu seviyelerin sıfır değerlerine sahip bir danışman yaparsınız, daha sonra bunların modifikasyonu ile (çalışacaktır) hem orada hem de orada), elbette, hiç kimse, belirli bir ofiste her türlü emir ve durdurma ve alım seviyelerinin ayarlanması ve daha sonra değiştirilmesi için herhangi bir seçenekle alım satım işlemleri yaparken kontrol gerekliliklerini ve kısıtlamalarını iptal etmedi.
Evet, bir çözüm olduğunda sorun yoktur. Sadece sahip olduklarınızı kullanmanız ve doğru kullanmanız gerekiyor.))
Roma. ve ivandurak cevapladığınız için çok TEŞEKKÜRLER, ancak benim için hala anlaşılması zor, bunun nasıl yapılacağına dair başka bir forumda bir öneri buldum, ancak henüz normal koduma uygulayamıyorum
int BuyTrue, SellTrue;// bize hizmet edecek değişkenleri yukarıdaki flaglar olarak tanımlıyoruz
....
//--- Satın Alma Koşulu
if (BuyTrue==0 && ... ve artı diğer koşullarınız) // Poz açma koşulu
{
....
SiparişGönder(....); // sipariş açma işlevi
BuyTrue=1; // BuyTrue=1 ise, bir poz açma koşulu tam olarak karşılanmayacaktır.
// bu nedenle, tekrarlanan bir satın alma sinyali ile bir anlaşma açılmayacak
SellTrue=0; // SellTrue=0 ise, bir poz açma koşulu tamamen karşılanacaktır
// bu nedenle bir sonraki anlaşma sadece Satış olacak
....
}
//--- Satış Şartı
if (SellTrue==0 && ... ve artı diğer koşullarınız) // Poz açma koşulu
{
....
SiparişGönder(....); // sipariş açma işlevi
SellTrue=1; // SellTrue=1 ise, bir poz açma koşulu tam olarak karşılanmayacaktır.
// bu nedenle, Sat'ta tekrarlanan bir sinyalle anlaşma açılmayacak
BuyTrue=0; // BuyTrue=0 ise, bir poz açma koşulu tamamen karşılanacaktır
// bu nedenle bir sonraki anlaşma sadece Satın Al olacaktır.
....
}
Ticaret açılış kodum
toplam=SiparişToplam();
if(toplam<1)
{
// açık sipariş tanımlanmadı
if(AccountFreeMargin()<(1000*Lots))
{
Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());
dönüş(0);
}
// uzun pozisyon (SATIN AL) olasılığını kontrol edin
if(MACD1<0 && MACD2<MACD1 && MACD2>MACD3 && MathAbs(MACD1)>(MACDOpenLevel*Point))
{
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Yeşil);
if(bilet>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SATIN AL emri açıldı : ",OrderOpenPrice());
}
else Print("SATIN AL emri açılırken hata oluştu : ",GetLastError());
dönüş(0);
}
// kısa pozisyon (SAT) olasılığını kontrol et
if(MACD1>0 && MACD2>MACD1 && MACD1>(MACDOpenLevel*Point))
{
bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Kırmızı);
if(bilet>0)
{
if(OrderSelect(bilet,SELECT_BY_TICKET,MODE_TRADES)) Print("SAT emri açıldı : ",OrderOpenPrice());
}
else Print("SATIŞ emrini açarken hata: ",GetLastError());
dönüş(0);
}
dönüş(0);
}
Roma. ve ivandurak Cevapladığınız için çok TEŞEKKÜRLER, ancak benim için hala anlaşılması zor, başka bir forumda bunun nasıl yapılacağına dair bir öneri buldum, ancak henüz normal koduma uygulayamıyorum
int BuyTrue, SellTrue;// bize hizmet edecek değişkenleri yukarıdaki flaglar olarak tanımlıyoruz
....
//--- Satın Alma Koşulu
if (BuyTrue==0 && ... ve artı diğer koşullarınız) // Poz açma koşulu
{
....
SiparişGönder(....); // sipariş açma işlevi
BuyTrue=1; // BuyTrue=1 ise, bir poz açma koşulu tam olarak karşılanmayacaktır.
// bu nedenle, tekrarlanan bir satın alma sinyali ile anlaşma açılmayacak
SellTrue=0; // SellTrue=0 ise, bir poz açma koşulu tamamen karşılanacaktır
// bu nedenle bir sonraki anlaşma sadece Satış olacak
....
}
//--- Satış Şartı
if (SellTrue==0 && ... ve artı diğer koşullarınız) // Poz açma koşulu
{
....
SiparişGönder(....); // sipariş açma işlevi
SellTrue=1; // SellTrue=1 ise, bir poz açma koşulu tam olarak karşılanmayacaktır.
// bu nedenle, Sat'ta tekrarlanan bir sinyalle anlaşma açılmayacak
BuyTrue=0; // BuyTrue=0 ise, bir poz açma koşulu tamamen karşılanacaktır
// bu nedenle bir sonraki anlaşma sadece Satın Al olacaktır.
....
}
Ticaret açılış kodum
toplam=SiparişToplam();
if(toplam<1)
{
// açık sipariş tanımlanmadı
if(AccountFreeMargin()<(1000*Lots))
{
Print("Paramız yok. Serbest Marj = ", AccountFreeMargin());
dönüş(0);
}
// uzun pozisyon (SATIN AL) olasılığını kontrol edin
if(MACD1<0 && MACD2<MACD1 && MACD2>MACD3 && MathAbs(MACD1)>(MACDOpenLevel*Point))
{
bilet=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Yeşil);
if(bilet>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SATIN AL emri açıldı : ",OrderOpenPrice());
}
else Print("SATIN AL emri açılırken hata oluştu : ",GetLastError());
dönüş(0);
}
// kısa pozisyon (SAT) olasılığını kontrol et
if(MACD1>0 && MACD2>MACD1 && MACD1>(MACDOpenLevel*Point))
{
bilet=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"macd sample",16384,0,Kırmızı);
if(bilet>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SAT emri açıldı : ",OrderOpenPrice());
}
else Print("SATIŞ emrini açarken hata: ",GetLastError());
dönüş(0);
}
dönüş(0);
}
İlk olarak, kodunuzu Ctrl+Alt+M ile düzenleyiciye yapıştırın (veya menünün üst kısmından SRC'ye basın), aksi takdirde bu kötü, bu anlaşılabilir - her şey birleşir... :-)))
İkincisi, ders kitabını, özellikle size önerilen bağlantıdaki bilgileri okuyun, kodun altında bunun bir açıklaması var ve açıklamanın en sonunda sadece boyanmış - yukarıda / aşağıda bir fiyat nasıl rapor edilir MA bir kez (bu ticaret koşulu için bir kerelik girişle bir analojiniz olacak - bayrakların kullanımı ve tümü), MAGIC'inizi OLUŞTURMADAN önce ... :-)))
not veya bir Google aramasında şunu yazın: site:mql4.com kodu nasıl doğru şekilde eklenir