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

 
Artyom Trishkin :

Harika ... beklemiyordum .... geçmişten bir şey ... teşekkürler.

 
DanilaMactep :

İlk kısım için (siparişleri sayma) tavsiye ederim:

 //+----------------------------------------------------------------------------+
//| Подсчет ордеров                                                            |
//+----------------------------------------------------------------------------+
//| -1 - Все типы ордеров                                                      |
//|  0 - ордера типа BUY                                                       |
//|  1 - ордера типа SELL                                                      |
//|  2 - ордера типа BUYLIMIT                                                  |
//|  3 - ордера типа SELLLIMIT                                                 |
//|  4 - ордера типа BUYSTOP                                                   |
//|  5 - ордера типа SELLSTOP                                                  |
//+----------------------------------------------------------------------------+
int CountOrders( string symb= "" , int or_ty=- 1 , int magiс=- 1 ) 
  {
   int cnt= 0 ;
   if (symb== "0" ) symb= _Symbol ;
   for ( int pos= OrdersTotal ()- 1 ;pos>= 0 ;pos--)
     {
       if ( OrderSelect (pos,SELECT_BY_POS)== true )
        {
         if ((OrderSymbol()==symb || symb== "" )&&(or_ty< 0 || or_ty==OrderType()))
           {
             if (magiс< 0 || OrderMagicNumber()==magiс) cnt++;
           }
        }
     }
   return (cnt);
  }

Daha ileri

 void OnTick ()
   { // НАЧАЛО ОН ТИК
   int count_orders_market_buy   = CountOrders( _Symbol , 0 ,magik_number); // КОЛИЧЕСТВО БАЙ ОРДЕРОВ
   int count_orders_market_sell  = CountOrders( _Symbol , 1 ,magik_number); // КОЛИЧЕСТВО СЕЛ ОРДЕРОВ
   int count_orders_buy_limit    = CountOrders( _Symbol , 2 ,magik_number); // КОЛИЧЕСТВО БАЙ ЛИМИТ
   int count_orders_sell_limit   = CountOrders( _Symbol , 3 ,magik_number); // КОЛИЧЕСТВО СЕЛ ЛИМИТ
   int count_orders_stop_buy     = CountOrders( _Symbol , 4 ,magik_number); // КОЛИЧЕСТВО БАЙ СТОП
   int count_orders_stop_sell    = CountOrders( _Symbol , 5 ,magik_number); // КОЛИЧЕСТВО СЕЛ СТОП

Ve hata büyük olasılıkla burada (sarı renkle vurgulanmıştır)

 if ( OrderSend ( Symbol (),OP_BUY,lot,Ask,slippages,Ask-sl,Ask+tp,Coment ГДЕ МАГИК? )) Print ( "Buy Open" );
 
Artyom Trishkin :

Bu teneke. Tüm renkler kapalı. Ama renkler geldi. Ve ön izleme de iyi....

Kritik değil ... ama buz değil ...

 
Özellikler penceresindeki Fibonacci seviyelerinin açıklamasında, değerlerini %$ üzerinden fiyat değerlerine değiştirebilirsiniz. Seviyelerin fiyatını programlı olarak nasıl alabilirim, bulamıyorum.
 
Galim_V :
Özellikler penceresindeki Fibonacci seviyelerinin açıklamasında, değerlerini %$ üzerinden fiyat değerlerine değiştirebilirsiniz. Seviyelerin fiyatını programlı olarak nasıl alabilirim, bulamıyorum.

OBJPROP_LEVELVALUE

 
MakarFX :

OBJPROP_LEVELVALUE

Teşekkürler Makar! Ama nasıl kullanacağımı bilmiyorum. Standart fibo seviyelerinin fiyat değerlerini almam gerekiyor.

 #include <stdlib.mqh>

void OnStart () 
  { 
 string name = "FIBO" ;
   string text;
   for ( int i= 0 ;i< 32 ;i++)
  
    {
//    ObjectSetFiboDescription(name,i,???);
     text=ObjectGetFiboDescription(name,i);
     //---- проверим, возможно уровней у объекта меньше, чем 32
     if ( GetLastError ()!=ERR_NO_ERROR) break ;
     Print (name, "номер уровня: " ,i, " описание: " ,text);
    } 
 }      

Yasaklı bir işlev, standart olanları fiyat olanlarla değiştirmenize olanak tanır. Ama onları nereden alabilirsin? Bir yerdeler.

 
Galim_V :

Teşekkürler Makar! Ama nasıl kullanacağımı bilmiyorum. Standart fibo seviyelerinin fiyat değerlerini almam gerekiyor.

Yasaklı bir işlev, standart olanları fiyat olanlarla değiştirmenize olanak tanır. Ama onları nereden alabilirsin? Bir yerdeler.

Fib fiyatları arasında bu %100'dür ve diğer tüm seviyeler bu değerlerden hesaplanır. Yalnızca standart değerleri değil, aynı zamanda aşağıdaki formüle göre yaklaşık olarak da hesaplayabilirsiniz:

Fiyat_0 + (Fiyat_1 - Fiyat_0) * 0,27;

Ve yasaklı fonksiyon, seviyelerin fiyatı göstermesi için seviye açıklamasına aynı “%S” yi girmenize izin verir.
 
Galim_V :

Teşekkürler Makar! Ama nasıl kullanacağımı bilmiyorum. Standart fibo seviyelerinin fiyat değerlerini almam gerekiyor.

Yasaklı bir işlev, standart olanları fiyat olanlarla değiştirmenize olanak tanır. Ama onları nereden alabilirsin? Bir yerdeler.

 void OnStart ()
{
   //---  а сколько у нас Фибо-уровней ?
   int levels= ObjectGetInteger ( 0 , "Fibo" , OBJPROP_LEVELS );
   Alert ( "Fibo levels before = " ,levels);
   //---выведем в Журнал=> номер уровня:значения описание_уровня
   for ( int i= 0 ; i<levels; i++) {
       Alert (i, ":" , ObjectGetDouble ( 0 , "Fibo" , OBJPROP_LEVELVALUE ,i),
             "  " , ObjectGetString ( 0 , "Fibo" , OBJPROP_LEVELTEXT ,i));
   }
}

Bunun gibi bir şey

 
Alekseu Fedotov :

Bunun gibi bir şey

Bu doğrulandı mı?

 
Alexey Viktorov :

Bu doğrulandı mı?

fiyat göstermiyor

 2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 0 :- 0.25
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 1 : 0.0
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 2 : 0.5
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 3 : 1.0
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 4 : 1.5
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 5 : 2.0
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 6 : 2.5
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 7 : 3.0
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 8 : 3.5
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 9 : 4.0
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 10 : 5.0
2021.01 . 29 16 : 16 : 32.116 Instant direction GBPJPYb,M5: 11 : 6.0
2021.01 . 29 16 : 16 : 37.952 Instant direction GBPJPYb,M5: Fibo levels before = 12