[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 304
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
Sorun şudur - danışman siparişleri sürekli olarak yeniden açar, yani. satın almak için bir sinyal var - siparişi açar, sonra kârla kapatır ve koşullar hala korunur, tekrar açar. diğer sinyallerden sonra sadece açılması gerekir.
Alış ve takasların olağan sayacı yardımıyla ortadan kaldırılabileceğini düşündüm - eğer bir satın alma emri bir sayaç +1 açtıysa ve sayaç 0'dan büyükken yeni bir satın alma açılamıyorsa, sayaç sadece sıfırlanır. yerleştikten sonra. ama neden çalışmıyor nedenini çözemiyorum??? Mantığa bak, belki bir yerde yanılıyorum ?? mql metre tam olarak benzer bir sorunla karşı karşıya kaldı.
Onlar. Son çubukta bir sinyal var mı, ancak daha önce kullanılmış mı?
böyle olabilir mi
böyle dene
yine de çalışması gerekir.
Benim için çok daha net.
Herkese merhaba!
Offtopik için kusura bakmayın konu rağbet görüyor o yüzden buraya yazıyorum anlatır mısınız? Takıntılı.
Gerçek bir sayıyı (gerçek dahil) üslendirmek için yalnızca temel işlemleri (+-*/%) kullanarak nasıl? Örneğin, 1.2'yi 1.2'nin gücüne yükselten bir Windows hesap makinesi, 1.2445647472039777218169154111826 sonucunu verir. Algoritma ile ilgilenen, dil önemli değil, herhangi biri. Kendim tercüme edeceğim.
not. Kaç tane programlama testi yapmadım, ilk defa böyle bir görev görüyorum, birisi için önemsiz olsa da?
Herkese iyi günler!
Birçok forum ve google makalesi aradım ama cevabı bulamadım
M1'de iki zıt emirle işlem yapmak için bir danışman yazmaya karar verdim
Fikir basit: küçük bir TP ile iki zıt sipariş verilir, daha sonra bunlardan birinin TP'si tetiklendiğinde, ikincisi için çubuk sayısı şeklinde bir zamanlayıcı açılır (diyelim 5) - esasen geçici bir SL olun. Hesaplama, eğer para birimi aynı yönde hareket ederse, o zaman ikinci dereceden geçici SL'nin tetiklenmesinden sonraki kayıplar minimum olacaktır, ancak grafik tersine dönerse, o zaman iki pozisyon için siyahtayız. kullanılan, açık siparişlerin sayısı bile günde çok büyük - bahis bu.
PROBLEM şu ki, “ birinin TR'si tetiklendiğinde, çubuk sayısı şeklinde saniye için timer açılır ” diyecek bir kod parçası nasıl yazacağımı bilmiyorum.
şu anda yalnızca iki sipariş için zamanlayıcı aynı anda çalışıyor, ancak bu hiçbir işe yaramıyor
PS Bir aydır bu sorunu çözemiyorum, tavsiye veya kodla yardım edin :)
işte danışman kodu
extern int SL=100;
extern int TP=100;
extern double StartLot=0.1;
extern double StopLot=1.0;
extern int bar_time=20;
double Lot()
{
double lt;
if(OrdersHistoryTotal()==0) return (StartLot);
if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
{
if(OrderProfit()<0)
{
lt=OrderLots()*2;
if(lt>StopLot) return (StartLot);
else return (lt);
}
else
return (StartLot);
}
else
return (StartLot);
}
int start()
{
double lot;
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES)==False)
{
int order;
{
lot=Lot();
order=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL*Point,Ask+TP*Point,0,0,0,Green);
order=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL*Point,Bid-TP*Point,0,0,0,Green);
}
}
// вот здесь должно быть что-то что является решением проблемы и связующим звеном
{
int bars = iBarShift( Symbol(), PERIOD_M1, OrderOpenTime() ) ;
if ( iTime( Symbol(), PERIOD_M1, bars ) > OrderOpenTime() ) { bars ++; }
if ( bars >= bar_time )
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),5,White);
}
return(0);
}
şimdiden teşekkürler
Onlar. Son çubukta bir sinyal var mı, ancak daha önce kullanılmış mı?
böyle olabilir mi
Herkese merhaba!
Offtopik için kusura bakmayın konu rağbet görüyor o yüzden buraya yazıyorum anlatır mısınız? Takıntılı.
Gerçek bir sayıyı (gerçek dahil) üslendirmek için yalnızca temel işlemleri (+-*/%) kullanarak nasıl? Örneğin, 1.2'yi 1.2'nin gücüne yükselten bir Windows hesap makinesi, 1.2445647472039777218169154111826 sonucunu verir. Algoritma ile ilgilenen, dil önemli değil, herhangi biri. Kendim tercüme edeceğim.
not. Kaç tane programlama testi yapmadım, ilk defa böyle bir görev görüyorum, birisi için önemsiz olsa da?
https://docs.mql4.com/ru/math/MathPow değil mi? Veya temel işlemler, sorunun durumudur. sonra http://bpascal.ru/download/desc/436.php seçeneği, eğer gerçekten her şeyi el freni üzerinde yapıyorsanız, ardından üssü ve logaritmayı kendi fonksiyonlarınızla uygulayın.
while(i>=0) kullanırsınız, yani yeni bir mum çubuğu göründüğünde, i=1 (elbette, önceki mum çubuğunun verileri bir kez sabit verilere göre hesaplanır).
Neden bazı_zaman=D'1971.01.11 00:00'; Bars kullan, IndicatorCounted benim için sorunlu değil (peki, hata muhtemelen bu first_t_bar yüzünden) .
Algoritmanız ve onu tedavi ediyorsunuz.
" Programlamada yeniyim. " 2007'den beri))).
Yine de tasarımımın neden iyi çalıştığı belli değil ama standart olan çalışmıyor. bazı_zaman=D'1971.01.11 00:00'; burada başlangıçta bir kez kullanılır. Sonra tarih bir başkasıyla değişiyor, ama bu burada ve onunla ilgisi yok. bir durumda çalışıyor, diğerinde çalışmıyor. Göstergeyi daha sonra yeniden yapacağım. Bu, başka bir göstergenin değiştirilmiş bir versiyonudur. Cevap için teşekkürler!
Herkese iyi günler!
Birçok forum ve google makalesi aradım ama cevabı bulamadım
M1'de iki zıt emirle işlem yapmak için bir danışman yazmaya karar verdim
Fikir basit: küçük bir TP ile iki zıt sipariş verilir, daha sonra bunlardan birinin TP'si tetiklendiğinde, ikincisi için çubuk sayısı şeklinde bir zamanlayıcı açılır (diyelim 5) - esasen geçici bir SL olun. Hesaplama, eğer para birimi aynı yönde hareket ederse, o zaman ikinci dereceden geçici SL'nin tetiklenmesinden sonraki kayıplar minimum olacaktır, ancak grafik tersine dönerse, o zaman iki pozisyon için siyahtayız. kullanılan, günlük açık siparişlerin sayısı bile çok büyük - bahis bu.
PROBLEM şu ki, “ birinin TR'si tetiklendiğinde, çubuk sayısı şeklinde saniye için timer açılır ” diyecek bir kod parçası nasıl yazacağımı bilmiyorum.
şu anda yalnızca iki sipariş için zamanlayıcı aynı anda çalışıyor, ancak bu hiçbir işe yaramıyor
PS Bir aydır bu sorunu çözemiyorum, tavsiye veya kodla yardım edin :)
işte danışman kodu
................................................................
şimdiden teşekkürler
1. Kapalı bir alım pozisyonu varsa, ...
1.1 Türü OP_BUY ise, ...
1.1.2 Açık bir OP_SELL pozisyonu varsa, ...
1.1.3 Mevcut çubuğun süresi eksi bir Satış pozisyonu açmak için çubuğun süresi, geciktirilecek çubuk sayısından büyük veya ona eşitse, ...
1.1.4. Satış pozisyonunu kapat
1.2 Türü OP_SELL ise, ...
1.2.2 OP_BUY açık pozisyonu varsa, ...
1.2.3 Mevcut çubuğun süresi eksi çubuğun bir Alış pozisyonu açma süresi, geciktirilecek çubuk sayısından büyük veya ona eşitse, ...
1.2.4. Satın alma pozisyonunu kapatın
Herkese iyi akşamlar, az önceki aptal soru için özür dilerim
"A" diyelim değişkeni olan bir Expert Advisor'da o anki fiyat değeri atanır ve işlem görür mü? Bu değeri herhangi bir geçmiş değerle değiştirin, bir ay önce herhangi bir değeri alalım ve geçmişi analiz ederek istenen değerleri gösterelim. Bunu strateji test cihazında yapmaya çalıştım, ancak doğruluğu konusunda birçok şüphe var. Yoksa dizileri yeniden yapmak ve çalışmak zorunda mı kalacaksınız!? Herkese teşekkürler.
ps bilmek istiyorum çünkü MQL referans kitabında ve ders kitabında bulamadım.