Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 538
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret 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
Merhaba beyler, profesyoneller Programlamaya yeni başlayanları reddetmeyin, doğru yazım için koda bakın. Kim onunla başa çıkmak için çok tembel değil. Bu benim ilk büyük kod yazma deneyimim.Çok para birimi olduğu için test cihazında test edemiyorum.Ama ticaret sistemi buna değer. Kod ve göstergelerin bulunduğu dosya arşive eklenmiştir .
Mevduat para biriminde belirtilen kar veya zarar değerlerine ulaşıldığında hesaptaki tüm pozisyonları kapatan (birkaç sembol için açıyorum), ancak pozisyonları göründüğünde hemen kapatan basit bir Uzman Danışman yazmaya çalışıyorum ( (((
Neyin yanlış olduğunu anlamıyorum:
Buna bir bak.
dış int kar = 30;
harici int Magic=0;
int CurProfit;
extern bool CurSymbolOnly = false;
int start() // Özel. başlatma işlevi
{
//tüm siparişlerin kar sayacı
çift p1;
int i1, kk1=SiparişlerToplam(), pr1=0;
(i1=0; i1<kk1; i1++) için
{
if ( OrderSelect (i1, SELECT_BY_POS, MODE_TRADES))
{
if (!CurSymbolOnly || OrderSymbol()==Symbol())
{
p1=MarketInfo(OrderSymbol(), MODE_POINT);
if (p1==0) if (StringFind(OrderSymbol(), Symbol())<0) p1=0,0001; başka p1=0.01;
if (OrderType()==OP_BUY)
{
pr1+=NormalizeDouble((OrderClosePrice()-OrderOpenPrice())/p1, 0);
}
if (OrderType()==OP_SEL)
{
pr1+=NormalizeDouble((OrderOpenPrice()-OrderClosePrice())/p1, 0);
}
}
}
}
CurProfit=pr1;
///////////////////////////////////////////// //////////////////////////////////////////// // /////////////////////////////////////////
///////////////////////////////////////////// //////////////////////////////////////////// // /////////////////////////////////////////
if (kâr<=pr1)
{
ClosePosWithMaxProfitInCurrency();
}
dönüş(0);
}
///////////////////////////////////////////// //////////////////////////////////////////// // /////////////////////////////////////////
/// en pahalıdan en ucuza doğru kapatır
void ClosePosWithMaxProfitInCurrency(string sy="", int op=-1, int mn=-1)
{
doublepr=0;
int i5, k=SiparişToplam(), np=-1;
if (sy=="0") sy=Symbol();
(i5=k-1; i5>=0; i5--) için
{
if (Sipariş Seçimi(i5, SELECT_BY_POS, MODE_TRADES))
{
if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op))
{
if (mn<0 || OrderMagicNumber()==dk)
{
if (pr<OrderProfit()+OrderSwap())
{
pr=OrderProfit()+OrderSwap();
np=i5;
}
}
}
}
}
eğer (np>=0)
{
if (OrderSelect(np, SELECT_BY_POS, MODE_TRADES))
{
{for (int i=SiparişlerToplam()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUY ) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),9);
if (OrderType()==OP_SELL) OrderClose (OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),9);
}
}
}
}
dolaplojnie();
}
///////////////////////////////////////////// //////////////////////////////////////////// // /////////////////////////////////////////
// ertelemeleri kapat
boşluk dolabı()
{
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_BUYLIMIT ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELLLIMIT) OrderDelete(OrderTicket());
}
}
Alış ve satış için ilgili sembol dizileri ve emir sayısı (açık pozisyonlar) oluşturmak için sizin için tek bir fonksiyon buldum, demoda birkaç pozisyon açarak bir komut dosyası ile test edin.
Tabii ki, bana ayrılan zaman için teşekkür ederim, ama benim için hala zor, sıkıcılık için özür dilerim. Açıkla bana neyi, nerede, nasıl? Parmaklarda dedikleri gibi.
Sisteme gelince, test ettim, bir demo hesapta manuel olarak takas ettim, iyi sonuçlar veriyor, bu yüzden otomatikleştirmek istiyorum.
Tabii ki, bana ayrılan zaman için teşekkür ederim, ama benim için hala zor, sıkıcılık için özür dilerim. Açıkla bana neyi, nerede, nasıl? Parmaklarda dedikleri gibi.
Sisteme gelince, test ettim, bir demo hesapta manuel olarak takas ettim, iyi sonuçlar veriyor, bu yüzden otomatikleştirmek istiyorum.
Yalnızca hatalar varsa demoda nasıl test ettiniz? Sunulan kod takas edilemedi. Kodlara yorumlar eklendi. İşte bu - bilgi ve sıkı çalışma olmadan kendi başınıza çalışmaya devam edin… borsalarda ve özellikle Forex'te işlem yapamazsınız. Sonuç açık olacaktır. Geri adım atmadan, kesinlikle seçilen sisteme göre bir demo hesabı öğrenmenizi ve ticaret yapmanızı şiddetle tavsiye ederim. 2-3 ay sonucu gösterecek, daha sonra bu sistemin size özel ve genel olarak ticaret için uygun olup olmadığına karar vereceksiniz.
Moderatörlere veya yöneticilere soru: Takma adımı değiştirebilir miyim? MQL5'e kaydolmaya çalıştım, ancak bu takma adın zaten oraya alınmış olduğu ortaya çıktı, farklı bir adla kaydolmak zorunda kaldım. Ve buradaki ve oradaki lakapların aynı olmasını istiyorum. Tabii ki, buraya tekrar kayıt olabilirim, ancak Kod Tabanına bir şeyler göndermeye çoktan başladım ve çalışmalarımın (ve gönderilerimin) yazarlığını sadece "yeniden adlandırarak" korumak istiyorum. Mümkün mü?
Rosh'a kişisel olarak yazın. Umarım onu bulursun. Sorunu bildir
Tamam teşekkürler.
Merhaba! MetaTrader'ın önceki sürümünde danışmanlarım olduğu için terminali güncelledim. Ondan sonra, 509'a geri döndüm. Böylece Uzman Danışmanlar, 60... yapısını "ziyaret ettikten", üzerinde yazıldığı terminal versiyonuna geri döndüler.
Soru şudur: "geri döndükten" sonra test cihazında işlem açmayı durduran ve artık kontrol edilemeyen Uzman Danışmanlarla ne yapmalı (test cihazındaki başlat düğmesi bir tıklamaya yanıt vermiyor)?