Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz, hiçbir yerde - 6. - sayfa 914

 
Top2n :

Çok teşekkürler. Her şey çalışıyor. Yazdıklarını anlayacağım.
 
Top2n :

Başka öneriniz var mı?

Komut dosyasını çevrimdışı grafiğe bağlarım, terminal donar. Belki kodu robota bağlayabilirsiniz, ardından #import "user32.dll" ile ne yapabilirsiniz?

Senaryo örnekti, kimse onu çevrimdışı bir grafiğe atmanın gerekli olduğunu söylemedi. Genellikle normal bir grafikte başlatılır ve çevrimdışı grafik TF satırda gösterilir

 int whdl=WindowHandle ( Symbol (), period_renko );  

Ve #import "user32.dll" gerekli değildir, WinUser32.mqh içinde çağrılır

Ve genel olarak, oluşturulan Renko grafiğindeki keneleri taklit edebilen bir " 6MTH_RENko_Chart_Builder_Indi_Ver_02.mq4 " göstergesi vardır. Bu şekilde çalışır, gösterge normal bir grafikte başlatılır, ardından gerçek zamanlı olarak güncellenen bir Renko grafiği açılır .


 
evillive :

Senaryo örnekti, kimse onu çevrimdışı bir grafiğe atmanın gerekli olduğunu söylemedi. Genellikle normal bir grafikte başlatılır ve çevrimdışı grafik TF satırda gösterilir

Ve #import "user32.dll" gerekli değildir, WinUser32.mqh içinde çağrılır

Ve genel olarak, oluşturulan Renko grafiğindeki keneleri taklit edebilen bir " 6MTH_RENko_Chart_Builder_Indi_Ver_02.mq4 " göstergesi vardır. Bu şekilde çalışır, gösterge normal bir grafikte başlatılır, ardından gerçek zamanlı olarak güncellenen bir Renko grafiği açılır.


Teşekkür ederim!)
 

Merhaba, bunu nasıl yapacağımı söyler misiniz?

Çalışan bir kod parçası var. Bunlar ticaret seviyelerine yaklaşırken verilen sinyallerdir. buy1_line grafikteki seviyedir, buy1 karşılık gelen seviyeden puan olarak fiyat mesafesidir. Gerçek şu ki, kod gereksiz seviyeleri devre dışı bırakma yeteneğine sahiptir. Bu durumda, seviye değeri buy1_line (0.00000) ve mesafe, temelde mantıklı olmayan 6 haneli bir sayı olarak görüntülenir. (seviye kapalı, mesafeyi bilmenize gerek yok) Soru! İlgili seviye devre dışı bırakılmışsa, seviyeye olan mesafe nasıl sıfırlanır - buy1? (veya bu numara yerine KAPALI yaz?)

 string buy1_line=DoubleToStr(Price_Line, Digits );
string buy2_line=DoubleToStr(Price_Line2, Digits );
string buy1=     DoubleToStr((Price_Line-Bid)/ Point , 0 );
string buy2=     DoubleToStr((Price_Line2-Bid)/ Point , 0 );       

message=
 "buy_1 (" +buy1_line+ "):" +(buy1> "0" ? "+" : "" )+buy1+ "   \n" +
 "buy_2 (" +buy2_line+ "):" +(buy2> "0" ? "+" : "" )+buy2+ "   \n" ;

SendNotification (message);
 

Merhaba, lütfen söyle bana, bir şekilde yeni gönderilen bir siparişin biletini almak mümkün mü? siparişi gönderiyorum

bilet = OrderSend (Symbol(), cmd, Lot((OOP-OSL)/Point),OOP,1,OSL, OTP,NULL, Expert_ID, 0);

sonra biletin < 1 olup olmadığını kontrol ediyorum ve şimdi çok fazla olabileceği için tüm açık siparişleri tekrar gözden geçirmeden OrderTicket() numarasını almak istiyorum ve iki neredeyse aynı sipariş varsa bir sorun bekliyorum. aynı anda farklı duraklar gönderilir.

teşekkür etmek!

 
danik :

Merhaba, lütfen söyle bana, bir şekilde yeni gönderilen bir siparişin biletini almak mümkün mü? siparişi gönderiyorum

bilet = OrderSend(Symbol(), cmd, Lot((OOP-OSL)/Point),OOP,1,OSL, OTP,NULL, Expert_ID, 0);

sonra biletin < 1 olup olmadığını kontrol ediyorum ve şimdi çok fazla olabileceği için tüm açık siparişleri tekrar gözden geçirmeden OrderTicket() numarasını almak istiyorum ve iki neredeyse aynı sipariş varsa bir sorun bekliyorum. aynı anda farklı duraklar gönderilir.

teşekkür etmek!

Ve zaten açılmış bir siparişin biletini bulmak için OrderSend()'e ihtiyacınız yok, onu OrderSelect() kullanarak seçmeniz gerekiyor.

Döngüde, tüm piyasa emirleri arasında dolaşın, her birini seçin ve tür, sembol ve sihir eşleşirse bileti bir diziye yazın.

Dizi daha sonra artan düzende sıralanır. En yüksek bilet değeri en son sipariştir.

 
evet, muhtemelen gerekir. Az önce gönderilen siparişin biletini almanın bir yolu veya yöntemi olabileceğini düşündüm. Değilse, eski moda bir şekilde yapmak zorunda kalacaksınız, ki bu üzücü. teşekkür etmek!
 
danik :
evet, muhtemelen gerekir. Az önce gönderilen siparişin biletini almanın bir yolu veya yöntemi olabileceğini düşündüm. Değilse, eski moda bir şekilde yapmak zorunda kalacaksınız, ki bu üzücü. teşekkür etmek!

Az önce yazdığınız gibi açılacak - bilet = OrderSend (Symbol(), cmd, Lot((OOP-OSL)/Point),OOP,1,OSL, OTP,NULL, Expert_ID, 0);

Ancak bu, uygulamanın hatasız yürütülmesi ve böyle bir biletin üzerine hızlı bir şekilde yazılması sağlanır.

 
danik :

Merhaba, lütfen söyle bana, bir şekilde yeni gönderilen bir siparişin biletini almak mümkün mü? siparişi gönderiyorum

bilet = OrderSend(Symbol(), cmd, Lot((OOP-OSL)/Point),OOP,1,OSL, OTP,NULL, Expert_ID, 0);

sonra biletin < 1 olup olmadığını kontrol ediyorum ve şimdi çok fazla olabileceği için tüm açık siparişleri tekrar gözden geçirmeden OrderTicket() numarasını almak istiyorum ve iki neredeyse aynı sipariş varsa bir sorun bekliyorum. aynı anda farklı duraklar gönderilir.

teşekkür etmek!

Neden global değişkenler düzeyinde bir bilet bildirmekten hoşlanmıyorsunuz?
 

Sorun şu ki, bu biletlerden birden fazla var. Belki 4, emin değilim. bu nedenle, orderselect'in saklamadığı bir bilet numarası ve diğer bilgilerin olacağı bir sınıf oluşturdum. Bu nedenle, erişimin altında olması arzu edilir. ancak şu ana kadar sadece sınıf nesneleri oluşturmak ve onları CarrayObj'a atmak ve ardından dizine göre almak, bileti karşılaştırmak ve daha fazla analiz etmek akla geliyor. ve sorun, neden sordu - hata işleme nedeniyle neyin kaybolduğunu. ama anladım, teşekkürler, başka yerde suçlayacağım. Beyler kötü canlı AlexeyVik - hızlı cevaplar için teşekkürler!