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

 
Renat Fatkhullin :

Python 5.0.18 için MetaTrader 5'in yeni sürümü ve MetaTrader 5 build 2319'un beta sürümü:

  • Yardım yoluyla beta MT5 indirme -> Beta sürümünü kontrol edin
  • piton kitaplığı:

Her şey api değiştiği için eski örnekler artık çalışmıyor.

İşte yeni özellik seti:

Misal:

Test/optimizasyon çalıştırmak ve sonuçlarını almak için özellikler ekleme planları var mı?

 

Python programları terminalde yalnızca betikler şeklinde başlatılacak ve hiçbir şekilde katılmayacak ve ticaret stratejisi test cihazına katılmayacaktır.

Bu çözüm, python'da derin araştırmalar yapan ve şunları yapmak isteyenler içindir:

  1. MT5'ten piyasa bilgilerine erişim
  2. işlem geçmişine ve açık pozisyonlara erişim
  3. Ticaret

Yalnızca MQL5 programları için strateji test cihazı.

Daha sonra kütüphaneyi genişleteceğiz ve yerleşik ve özel göstergelere terminalden erişmeyi mümkün kılacağız.

 

Genel olarak şu anki durum şu şekilde: Windows 7'yi 3 makineye kurdum.

Sonuç: 333

Windows server 2012'ye koydum - yarım dönüşle kapandı. Ve hatta python 3.8.1'de

 
Dmitri Custurov :

Genel olarak şu anki durum şu şekilde: Windows 7'yi 3 makineye kurdum.

Sonuç:

Windows server 2012'ye koydum - yarım dönüşle kapandı. Ve hatta python 3.8.1'de

Düzinelerce el altında değil, ama bence oradan başlayacak.

 
Her ihtimale karşı, yediye ve onunla birlikte görsel stüdyo kurdum. Başlamaz. Sigara prizlerine gitti. Çok havalı bir şey. Java'da zaten başladı.
 

10'da iyiydi.

from MetaTrader5 import *
#import MetaTrader5 as mt5
import time

initialize()
wait()

# mt5.initialize()
# mt5.wait()

dev = 0.00010;
symbol = "EURUSD"
buy_price = 0

symbol_select(symbol)

Acc = account_info()
Term = terminal_info()
vr = version()

Acc.server
Acc.login
Term.build

'MetaQuotes-Demo'
18192632
2319

1. Geçmişteki sorun kaldı. Başlatma sırasında terminal, isteğe bağlı bir komisyoncu ve hesapla başlatılır. Düzeltmeye söz verdiler mi?

2. Siparişler doldurulur. Daha fazla kontrol etmedi.

3. "metatrader5 5.0.18 pypi_0 pypi" modülünün neden yalnızca " MetaTrader5" olarak içe aktarıldığı açık değil mi?

Deneyeceğiz.

İyi şanlar

 
Renat Fatkhullin :

Python programları, terminalde yalnızca komut dosyası biçiminde başlatılacak ve hiçbir şekilde katılmayacak ve ticaret stratejisi test cihazına katılmayacaktır.

Bu çözüm, python'da derin araştırmalar yapan ve şunları yapmak isteyenler içindir:

  1. MT5'ten piyasa bilgilerine erişim
  2. işlem geçmişine ve açık pozisyonlara erişim
  3. Ticaret

Yalnızca MQL5 programları için strateji test cihazı.

Daha sonra kütüphaneyi genişleteceğiz ve yerleşik ve özel göstergelere terminalden erişmeyi mümkün kılacağız.

Optimizasyon için Python betiklerini kendileri çalıştırmak özellikle ilginç değil.

İlginç bir olasılık, python komut dosyalarını kullanarak mql5-danışmanlarının optimizasyonunun otomasyonudur. " Optimizasyon Yönetimi " makalesinde yazılanlara benzer bir şey.

Управление оптимизацией (Часть 2): Создание ключевых объектов и логики приложения
Управление оптимизацией (Часть 2): Создание ключевых объектов и логики приложения
  • www.mql5.com
В текущей статье мы продолжаем процесс создания удобного графического интерфейса для управления оптимизациями в нескольких терминалах одновременно. В прошлой статье мы рассмотрели способ, позволяющий нам запустить терминал из консоли, а также структуру конфигурационного файла. В данной статье мы рассмотрим создание обертки для терминала на...
 
Renat Fatkhullin :

Python programları, terminalde yalnızca komut dosyası biçiminde başlatılacak ve hiçbir şekilde katılmayacak ve ticaret stratejisi test cihazına katılmayacaktır.

Bu çözüm, python'da derin araştırmalar yapan ve şunları yapmak isteyenler içindir:

  1. MT5'ten piyasa bilgilerine erişim
  2. işlem geçmişine ve açık pozisyonlara erişim
  3. Ticaret

Yalnızca MQL5 programları için strateji test cihazı.

Daha sonra kütüphaneyi genişleteceğiz ve yerleşik ve özel göstergelere terminalden erişmeyi mümkün kılacağız.

Hesaplanan değerleri ve dizileri Py'den mt5'e aktarmak için böyle bir fonksiyon olmayacağını doğru mu anladım?
Ve kullanılmaya devam ediyor - ağ çözümleri veya bellek üzerinden iletim için modülü kesmek mi?

Fark ettiğim gibi, artık nesnelerin yapısı değişti
eskidendi

Time  = [x.time for x in ticks]

şimdi oldu

Time  = [x[ 0 ] for x in ticks]

copy_ticks ve copy_rates yapılarını tanımlayabilir misiniz?
Hangi x[] indeksleri neye karşılık gelir.

Yoksa aynı sıra mı? de olduğu gibi

 struct MqlTick 
{ 
   datetime      time;           // Время последнего обновления цен 
   double        bid;           // Текущая цена Bid 
   double        ask;           // Текущая цена Ask 
   double        last;           // Текущая цена последней сделки (Last) 
   ulong         volume;         // Объем для текущей цены Last 
   long          time_msc;       // Время последнего обновления цен в миллисекундах 
   uint          flags;         // Флаги тиков 
   double        volume_real;   // Объем для текущей цены Last c повышенной точностью 
};
 

Roman :

Fark ettiğim gibi, artık nesnelerin yapısı değişti

eskidendi

şimdi oldu

copy_ticks ve copy_rates yapılarını tanımlayabilir misiniz?
Hangi x[] indeksleri neye karşılık gelir.

Yoksa aynı sıra mı? de olduğu gibi

Bu artık bir numpy dizisidir, eskisi gibi bir demet değil (yani, verinin kendisinin belleğine verimli bir doğrudan eşleme), formatı basitçe yazdırılarak görülebilir:

>>> ticks1 = mt5.copy_ticks_from("EURAUD", datetime(2020,2,13,13), 20, mt5.COPY_TICKS_ALL)
>>> ticks1
array([(1581591600, 1.61633, 1.61657, 0., 0, 1581591600170, 134, 0.),
       (1581591600, 1.61633, 1.61658, 0., 0, 1581591600362,   4, 0.),
       (1581591600, 1.61633, 1.61659, 0., 0, 1581591600569,   4, 0.),
       (1581591600, 1.61636, 1.61659, 0., 0, 1581591600759, 130, 0.),
       (1581591601, 1.61633, 1.61659, 0., 0, 1581591601964, 130, 0.),
       (1581591602, 1.61634, 1.61658, 0., 0, 1581591602261, 134, 0.),
       (1581591606, 1.61635, 1.61658, 0., 0, 1581591606276, 130, 0.),
       (1581591607, 1.61637, 1.61661, 0., 0, 1581591607795, 134, 0.),
       (1581591607, 1.61643, 1.61664, 0., 0, 1581591607880, 134, 0.),
       (1581591608, 1.61642, 1.61665, 0., 0, 1581591608184, 134, 0.),
       (1581591608, 1.61643, 1.61667, 0., 0, 1581591608791, 134, 0.),
       (1581591608, 1.61642, 1.61667, 0., 0, 1581591608992, 130, 0.),
       (1581591609, 1.61642, 1.61665, 0., 0, 1581591609192,   4, 0.),
       (1581591609, 1.61642, 1.61667, 0., 0, 1581591609584,   4, 0.),
       (1581591611, 1.61642, 1.61666, 0., 0, 1581591611397,   4, 0.),
       (1581591611, 1.61642, 1.61667, 0., 0, 1581591611694,   4, 0.),
       (1581591612, 1.61643, 1.61667, 0., 0, 1581591612091, 130, 0.),
       (1581591612, 1.61643, 1.61665, 0., 0, 1581591612881,   4, 0.),
       (1581591613, 1.61644, 1.61665, 0., 0, 1581591613300, 130, 0.),
       (1581591613, 1.61648, 1.6167 , 0., 0, 1581591613498, 134, 0.)],
      dtype=[('time', '<i8'), ('bid', '<f8'), ('ask', '<f8'), ('last', '<f8'), ('volume', '<u8'), ('time_msc', '<i8'), ('flags', '<u4'), ('volume_real', '<f8')])

şimdi bunları ayrı vektörler (çarpma, çıkarma) olarak hemen alabilir ve grafikler çizebilirsiniz:

rates2 = mt5.copy_rates_from_pos("EURGBP", mt5.TIMEFRAME_M1, 0, 1000)

import matplotlib.pyplot as plt

plt.plot(rates2['time'], rates2['low'], 'g-')
plt.plot(rates2['time'], rates2['high'], 'r-')

plt.show()
 
Almaz :

Bu artık bir numpy dizisidir, daha önce olduğu gibi bir demet değil (yani, verinin kendisinin belleğine verimli bir doğrudan eşleme), formatı basitçe yazdırılarak görülebilir:

şimdi bunları ayrı vektörler (çarpma, çıkarma) olarak hemen alabilir ve grafikler çizebilirsiniz:

Teşekkürler Diamond, şimdi anlaşıldı.

Soru açık kalır:
Hesaplanan değerleri ve dizileri Py'den mt5'e aktarmak için böyle bir fonksiyon olmayacağını doğru mu anladım?
Ve kullanılmaya devam ediyor - ağ çözümleri veya bellek üzerinden iletim için modülü kesmek mi?