MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 75

 
ilnur17021992 :
SELL_Lvl, şebekenin satış dizlerinin (siparişlerin) sayısıdır ve SELL_NoLossLevel , bu siparişlerin BU'nun toplam seviyesidir (fiyat). Genel olarak fikir şudur: BU seviyesinde bir çizgi çizilmesi ve buna göre yeni dizler açıldığında yeniden çizilmesi gerekir. Bunu nasıl uygulayacağımı yakalayamıyorum.

Tüm siparişlerin BU satırını nasıl belirleyeceğinizi bilmiyor musunuz?

 

Kaynakları kurtarmak ve güncel fiyatları almak için nasıl doğru yazacağımı söyle

   for ( int i= OrdersTotal (); i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) {
     if ( OrderSymbol ()==symb) {
       if ( OrderType ()== OP_BUY ) {
       tk= OrderTicket ();
        SymbolInfoTick ( OrderSymbol (),Last_Tick); <<<
       ask=Last_Tick.ask;
       bid=Last_Tick.bid;
       ...

ya da böyle mi?

 SymbolInfoTick (symb,Last_Tick); <<<
   for ( int i= OrdersTotal (); i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) {
     if ( OrderSymbol ()==symb) {
       if ( OrderType ()== OP_BUY ) {
       tk= OrderTicket ();
       ask=Last_Tick.ask;
       bid=Last_Tick.bid;
       ...
 
Vitaly Muzichenko :

Kaynakları kurtarmak ve güncel fiyatları almak için nasıl doğru yazacağımı söyle

   for ( int i= OrdersTotal (); i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) {
     if ( OrderSymbol ()==symb) {
       if ( OrderType ()== OP_BUY ) {
       tk= OrderTicket ();
       SymbolInfoTick ( OrderSymbol (),Last_Tick); <<<
       ask=Last_Tick.ask;
       bid=Last_Tick.bid;
       ...

ya da böyle mi?

SymbolInfoTick ( OrderSymbol (),Last_Tick); <<<
   for ( int i= OrdersTotal (); i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) {
     if ( OrderSymbol ()==symb) {
       if ( OrderType ()== OP_BUY ) {
       tk= OrderTicket ();
       ask=Last_Tick.ask;
       bid=Last_Tick.bid;
       ...


İlk seçenek daha doğrudur, ikinci seçenekte bu satır şu şekilde yazılmalıdır SymbolInfoTick ( symb ,Last_Tick); <<<
 
Vitaly Muzichenko :

Kaynakları kurtarmak ve güncel fiyatları almak için nasıl doğru yazacağımı söyle

   for ( int i= OrdersTotal (); i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) {
     if ( OrderSymbol ()==symb) {
       if ( OrderType ()== OP_BUY ) {
       tk= OrderTicket ();
       SymbolInfoTick ( OrderSymbol (),Last_Tick); <<<
       ask=Last_Tick.ask;
       bid=Last_Tick.bid;
       ...

ya da böyle mi?

SymbolInfoTick ( OrderSymbol (),Last_Tick); <<<
   for ( int i= OrdersTotal (); i>= 0 ; i--) {
   if ( OrderSelect (i, SELECT_BY_POS , MODE_TRADES )) {
     if ( OrderSymbol ()==symb) {
       if ( OrderType ()== OP_BUY ) {
       tk= OrderTicket ();
       ask=Last_Tick.ask;
       bid=Last_Tick.bid;
       ...


Bunun OrdersTotal() 'ın boyutuna ve döngü sırasında fiyat değişikliği olasılığına bağlı olduğunu söyleyebilirim.

Benim düşünceme göre, doğrudan döngüde taze veri almak daha doğru.

Ve ek değişkenlerin (kodda vurgulanan) kesinlikle gereksiz olduğunu düşünüyorum.

 
Alexey Viktorov :

Belgelerde bir örnek var.

Burada, bir sonrakinin öncekinden daha düşük olması koşuluyla, bir döngüdeki siparişleri hemen sıralamak muhtemelen daha iyi olacaktır, onunla daha fazla çalışmak için onu seçin. Böylece döngüden çıktıktan sonrabir silme sırası seçilmiş olacaktır .

Veya, ilk olarak döngüde, siparişler listesindeki konumunu hatırlayın ve döngüden çıktıktan sonra, hafızaya alınmış dizine göre seçin.

öyle değil, her şey sadece yukarıda ve aşağıda verilen siparişlerden ibarettir.
 
Sergey Gritsay :
İlk seçenek daha doğrudur, ikinci seçenekte bu satır şu şekilde yazılmalıdır SymbolInfoTick ( symb ,Last_Tick); <<<

Evet, sadece kopyaladım ve fark etmedim.

SymbolInfoTick'i döngü içine koymanın nasıl doğru olduğu, orada gerekli olup olmadığı veya döngüden önce konulabilir mi sorusuyla ilgileniyor. Arka durdurmada kullanılır, 50 adete kadar net çekebilir.

 
Vitaly Muzichenko :

Evet, sadece kopyaladım ve fark etmedim.

SymbolInfoTick'i döngü içine koymanın nasıl doğru olduğu, orada gerekli olup olmadığı veya döngüden önce konulabilir mi sorusuyla ilgileniyor. Arka durdurmada kullanılır, 50 adete kadar net çekebilir.

Takip eden bir duruş için, elbette, döngüden önce bir kez daha iyidir.
 
Alexey Viktorov :

Tüm siparişlerin BU satırını nasıl belirleyeceğinizi bilmiyor musunuz?

BU'yu nasıl belirleyeceğimi biliyorum, bu seviyede çizilecek bir çizgiye ihtiyacım var
 
Alexey Viktorov :
Takip eden bir duruş için, elbette, döngüden önce bir kez daha iyidir.

Daha önce, döngü içinde olağan Sor ve Bid vardı ve her şey mükemmel çalışıyordu, şimdi yavaş yavaş ilk beşe yeniden yazıyorum. Yani fiyat çok hızlı değişebilir ve durum, seviyenin izin verilen durma seviyesinden daha az olacağı ve bu da bir hataya yol açacağı anlamına gelir.

Güncel fiyatları almak için bu " SymbolInfoTick " şapkasının gerekli olduğunu anlıyorum?

 
fiyatları karşılaştırarak sorunu çözdü