MetaTrader 5 Python Kullanıcı Grubu - Metatrader'da Python nasıl kullanılır - sayfa 53

 
Rashid Umarov :

Hesap türünüzün netleştirme veya riskten korunma olup olmadığını kontrol edin. Netleştirme için, mevcut bir pozisyonun bileti değişmez ve sipariş numarasına göre kontör yükledikten sonra bir pozisyon aramak mantıklı değildir.

Evet, her şey açık, evet baktım, netleştirme biletinde bir pozisyon açılması durumunda, açılan pozisyona karşılık geliyor. Konu açık.

 
Almaz :
hata kodu 1, bu başarı mt5.RES_S_OK, sonraki derlemede [1, 'Success'] yazılacak. Negatif değerlere sahip kodlar mt5.RES_E_xxx hatalarıdır.

Evet, teşekkürler - öz, neden boş bir dize olduğu açık.

 
Merhaba, #517 numaralı yazıda terminalden newbar hakkında bir güncelleme almayla ilgili herhangi bir güncelleme var mı?
 
fbrand :
Merhaba, #517 numaralı yazıda terminalden newbar hakkında bir güncelleme almayla ilgili herhangi bir güncelleme var mı?

Bir zaman kontrolü ile döngü yapmanız gerekirken:

 if mt5.symbol_info_tick(symbol).time % ( 60 * timefr) == 0 :
...

Çok rahat değil. Ancak geçici bir seçenek olarak iyidir.

 
Vladimir Perervenko :

Bir zaman kontrolü ile döngü yapmanız gerekirken:

Çok rahat değil. Ancak geçici bir seçenek olarak iyidir.

Planlanmamış. Bir zamanlayıcıda veya bir döngüde yeni çubukları kontrol edin.

 
Rashid Umarov :

planlanmamış. Bir zamanlayıcıda veya bir döngüde yeni çubuklar olup olmadığını kontrol edin.


Vladimir'e göre kullanırsanız, o zaman tam hacmi elde edemeyiz, ancak oylamada sadece o kene hacmini mi alacağız?


Ve daha sonra Python komut dosyasını çağırmak için EA'daki yeni çubukları kullanırsanız ve komut dosyası birden fazla simgeye işaret ediyorsa, terminaldeki tüm semboller için aynı anda yürütülen tüm yeni çubuklar mı yoksa bir Python komut dosyası oluşturmalı mıyım? her sembol için danışman?


Teşekkürler

not: tercüman kelimeleri karıştırdığı için üzgünüm ingilizceye gitmek zorunda kaldım
Обработчик события "новый бар"
Обработчик события "новый бар"
  • www.mql5.com
Для создателей индикаторов и экспертов всегда был актуален вопрос написания экономичного кода с точки зрения времени выполнения. Можно подойти к решению этой задачи с разных сторон. Из этой обширной темы в данной статье будет затронут, казалось бы уже решенный вопрос: проверка появления нового бара. Это достаточно популярный способ ограничения...
 

history_orders_get() kullanılarak.

Belgelerde, açıkça kopyala-yapıştır :) ( https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5historyordersget_py )

Ve kullanımda bir tuhaflık var:

    from_date = datetime ( 2020 , 1 , 1 )
    to_date = datetime .now()
     if mt5.initialize(acc['path'], login=login, server=acc['server'], password=acc['pass']):
        orders = mt5.history_orders_get(from_date, to_date)    
         if len(orders) > 0 :
            orders_frame = pd.DataFrame(orders)
            print(orders_frame.head())

Sonuç:

 python.exe .\history-deal-mt- 1 .py
         0            1                2            3                4    5    6    7    8    9        10        11    12    13      14    15        16        17        18        19    20        21              22 23
0    4308935    1583603265    1583603265527    1583603267    1583603267535    0    0    0    0    4    234000    4308935    0    3    0.01    0.0      0.00      0.0      0.0    9128.00    0.0   BTCUSD  python script
1    4308936    1583603511    1583603511561    1583603511    1583603511561    0    1    0    1    4    234000    4308935    0    5    0.01    0.0    9128.01      0.0      0.0    9128.01    0.0   BTCUSD  [tp 9128.010 ]
2    4308937    1583603550    1583603550455    1583603552    1583603552460    0    1    0    0    4        0    4308937    0    0    0.01    0.0      0.00      0.0      0.0    9127.50    0.0   BTCUSD
3    4308938    1583603969    1583603969250    1583603971    1583603971253    0    0    0    0    4    234000    4308938    0    3    0.01    0.0      0.00    9135.5    9142.5    9139.00    0.0   BTCUSD  python script
4    4308939    1583603974    1583603974183    1583603974    1583603974188    0    1    0    1    4    234000    4308938    0    4    0.01    0.0    9135.50      0.0      0.0    9135.50    0.0   BTCUSD  [sl 9135.500 ]

toplam olarak, veriler görüntülenir, ancak nerede, ne - sadece tahmin edilebilir.

Millet, lütfen TradeOrder'a (ve benzerlerine) _fields veya as_dict() veya __dict__ gibi bir şey ekleyin.

     Point = collections.namedtuple(' Point ', ['x', 'y', 'val'])    
    print( Point ._fields)
python.exe .\history-deal-mt-1.py
('x', 'y', 'val')

Şey, gerçekten, şimdi uygun değil.

 
Дмитрий Прокопьев :

history_orders_get() kullanılarak.

Belgelerde, açıkça kopyala-yapıştır :) ( https://www.mql5.com/ru/docs/integration/python_metatrader5/mt5historyordersget_py )

Yardımı güncelleyin veya bağlantıyı takip edin

 
Rashid Umarov :

Planlanmamış. Bir zamanlayıcıda veya bir döngüde yeni çubukları kontrol edin.

Zamanlayıcı hakkında ayrıntılı bilgi verebilir misiniz?

 
Дмитрий Прокопьев :

Millet, lütfen TradeOrder'a (ve benzerlerine) _fields veya as_dict() veya __dict__ gibi bir şey ekleyin.

Şey, gerçekten, şimdi uygun değil.

5.0.27'de zaten, tüm yapı dizileri (C API için adlandırılmış demete benzer) _asdict() yöntemi eklenmiştir.

sym = mt5.symbol_info( "EURUSD" )._asdict()
for i in sym:
   print(i, '=' , sym[i])
Neden: