Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 411
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
Diziler hakkında bilgi edinmeye başladı.
3 dizi = 0 alış, 1= sat, 2= toplam alım satım işlemleri ile emirler hakkında bir fonksiyon yazdım.
Sonra satın alma koşulunda if ( ilk koşul && array [0] == 0 ) yazdım, sonra satın almayı aç
ve satılıksa (ilk koşul && dizisi [1]==0) satışa açılırsa.
Ama test cihazında hata veriyor ve test duruyor, sorun ne? ("dizi dışı" hatası)
Bu nedenle, erişmekte olduğunuz dizin, dizi işaretlemesinin dışındadır. Örneğin, eğer dizi[ 3 ]; o zaman yalnızca 0'dan 2'ye kadar olan öğelere erişebilirsiniz. Kodunuzu kontrol edin.
Ayrıca diziyi işaretlememiş olabilirsiniz ( ArrayResize() kullanarak), ancak bazı öğelerine başvurmaya çalışıyorsunuz.
kod..
Kendiniz anlamaya çalışın, test cihazı, hatanın hangi satırda ve satırda meydana geldiğini belirtmelidir.
O_o ATP başka ne olduğunu bilmiyordu ve terminal hatanın nerede olduğunu dürttü, ilk defa kritik bir hatayla karşılaştım.
ona tükürmek.
Gösterge kontrolünü nasıl uygulayacağımı söyle.
Sonuç şudur: danışman, yeni bir çubuk oluşturulduğunda, göstergeye atıfta bulunur ve şu anda göstergenin henüz verisi yoktur ve önceki çubuğun verilerini alıyorum. henüz hesapla)
Bu pusu nasıl atlanır. Ve test cihazında her şey yolunda. Demoda sorun yok, değil!
Hepsi alakasız. Karar verildi.
Merhaba, yeni başlayanlar için bir problemim var ...
Sistemi belirli bir süre için son çubuğun kapanış değerini yüksek ve düşük değerlerle karşılaştırmaya zorlayamam, örneğin
son 20 bar. Neyi yanlış yapıyorum?
Alert üzerinden kontrol ettim ve anlamadığım nedenlerden dolayı test cihazı en son tikten itibaren hesaplamadan maksimum değeri veriyor ama bu değeri veriyor
keneler olduğu kadar, sipariş açılmaz.
Ve ikinci sorun, EA'nın bir sonraki bar açılana kadar (30m periyodu) nasıl bekletileceğidir? Kontrol noktalarıyla test ederken her şey yolundadır, ancak keneler varsa,
daha sonra danışman, stop loss ile kapandığı yerde hemen aynı çubukta açılır, örneğin...
Bir kene olup olmadığına bakılmaksızın bir ticareti nasıl kapatabilirsiniz? örneğin, 30m'lik bir periyotta, çubuğun bitiminden 5 saniye önce siparişi kapatmak istiyorum (29.55, 59.55)
o andaki tüm verilere dayanarak. Bu aşamada sorun şu ki, 5 saniye içinde bir kene oluşmazsa, bu nedenle oluşmaz.
mantıksal işlem yok, sinyal alınmadı ve bir sonraki sinyale kadar an kaçırıldı :( teoride, çöp, ama gerçekte test cihazında bir sonraki sinyal olabilir
nedense birkaç mumdan sonra bile ortaya çıkıyor.
Şimdiden teşekkürler!Yorumlarla yardım edin. Her çubukta yorumlar oluşturulur. Her onayda, mevcut yoruma daha fazla metin eklemek istiyorum.
Kodu çağırıyorum:
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Yeni bir yorum ekler ve yeni bir satırdaki her onay işareti için metin aşağı kayar.
Çıktı almadan önce son birkaç satırı silmesini nasıl sağlayabilirim?
Yorumlarla yardım edin. Her çubukta yorumlar oluşturulur. Her onayda, mevcut yoruma daha fazla metin eklemek istiyorum.
Kodu çağırıyorum:
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Yeni bir yorum ekler ve yeni bir satırdaki her onay işareti için metin aşağı kayar.
Çıktı almadan önce son birkaç satırı silmesini nasıl sağlayabilirim?
Bana öyle geliyor ki, Yorumu () yalnızca tamamen değiştirebilirsiniz.
Ve buna göre, her bir tik üzerindeki yorumun bir kısmını değiştirmek için, her tik üzerindeki yorumu tamamen değiştirmeniz gerekir.
Yorumlarla yardım edin. Her çubukta yorumlar oluşturulur. Her onayda, mevcut yoruma daha fazla metin eklemek istiyorum.
Kodu çağırıyorum:
void UserMarketComment( )
{
string com=ChartGetString(0,CHART_COMMENT); // Получаем текст существующего комментария
string st="Целевой убыток="+DoubleToStr(-inpTargetLoss,2)+" "+AccountCurrency()+" Текущ";
if(AccountProfit()<0) st=st+"ий убыток=";
else st=st+"ая прибыль=";
st=st+DoubleToStr(AccountProfit(),2)+" "+AccountCurrency()+" Целевая прибыль="+DoubleToStr(inpTargetProfit,2)+" "+AccountCurrency();
Comment(com+"",TimeToStr(TimeCurrent(),TIME_SECONDS)," Spread = ",MarketInfo(Symbol(),MODE_SPREAD),
"\n ",st);
}
Yeni bir yorum ekler ve yeni bir satırdaki her onay işareti için metin aşağı kayar.
Çıktı almadan önce son birkaç satırı silmesini nasıl sağlayabilirim?