[ARŞİV] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 3. - sayfa 304

 
pigvin :

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

 datetime save_time; 
int tf= 0 ;
старт
...
if (total< 1 ) //проверка количества ордеров 
   {
         if (save_time!= iTime ( 0 ,tf, iBarShift ( 0 ,tf,Time[ 0 ])))
            save_time = iTime ( 0 ,tf, iBarShift ( 0 ,tf,Time[ 0 ]));
         else return ;


  ...
 if (ticket> 0 )
                      {
                         if ( OrderSelect (ticket,SELECT_BY_TICKET,MODE_TRADES)) Print ( "открыта позиция BUY : " , OrderOpenPrice ());
      
                         else Print ( "Ошибка при открытии BUY позиции : " , GetLastError ()); 
                        } else { save_time = 0 ;} // так как ошибка запретим ретурн (см. выше)
 
Operr :

böyle dene

 if ( OrderOpenTime ()+ 2 * 1440 * 60   > Time[ 0 ])   //т.е. последнее время текушего графика а не локальное

yine de çalışması gerekir.

Benim için çok daha net.

 if (Time[ 0 ]- OrderOpenTime () >= 2 * 1440 * 60 )   
 

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

 
sadece bir çubuk değil! ancak prensipte, bu trendde artık bir tersine dönüş veya piyasanın mudotası için sinyaller gelene kadar açılmaya gerek yok!
costy_ :

Onlar. Son çubukta bir sinyal var mı, ancak daha önce kullanılmış mı?

böyle olabilir mi

 
snail09 :

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.

 
индикатор costy_ :

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!

 
Sonne :

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

 
Merhaba, lütfen bana normal bir geçmişi (deliksiz) nereden alacağımı söyleyin ve MT5'ten alınan dakika geçmişi MT4 için uygun mu?
 

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.

Neden: