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

 
Vladimir Perervenko :

Prensipte bir varlık (bağlantı) yaratmak mümkün müdür? Bunun çok gerekli olduğunu düşünmüyorum, ama gelecek için.

Grafiğe başka bir komut dosyası (Py) yüklerken, ilki sıfırlanır. Böyle mi olmalı?

Bence başka bir varlık yaratmak zor olmayacak, sadece ikisi için de - bu başka bir soyutlama seviyesi olacak.

Bu artık her ikisinin de terminalden kullanılması olarak değil, python tarafından terminallere tam teşekküllü bir ağ geçidi olarak kabul edilir.

Kütüphanenin kendisinde daha fazla kullanışlılık için daha iyi :) şimdi.

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

Bence başka bir varlık yaratmak zor olmayacak, sadece ikisi için de - bu başka bir soyutlama seviyesi olacak.

Bu artık her ikisinin de terminalden kullanılması olarak değil, python tarafından terminallere tam teşekküllü bir ağ geçidi olarak kabul edilir.

Kütüphanenin kendisinde daha fazla kullanışlılık için daha iyi :) şimdi.

Terminalden başlatmam düzenli olarak başarısız oluyor, nedenini bulamadım. Muhtemelen bir python kurulumu ile ilgili bir sorunum var .. "lib" i terminale (hizmetler aracılığıyla) bir ağ geçidi olarak kullanacağım. Pazartesi günü test edeceğim.

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

mt5.initialize(blabla, portable=True) - pek yardımcı olmadı, yine de sistemde başlatılan son terminali soruyor.

adlandırılmış bir yol parametresi olmadan deneyin, yolu ilk adsız parametre olarak iletin:

 if mt5.initialize('/works/MT5-1', login= 11111 , ...):
        ...   
        mt5.shutdown()
else :
   print( 'error' )

if mt5.initialize('/works/MT5-2', login= 2222 , ...):
        ...   
        mt5.shutdown()
else :
   print( 'error' )
 
Almaz :

adlandırılmış bir yol parametresi olmadan deneyin, yolu ilk adsız parametre olarak iletin:

Her şey doğru çalıştı. Teşekkür ederim.

Böcek?

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

Her şey doğru çalıştı. Teşekkür ederim.

Böcek?

Hata değil.

İlk parametre isimsiz ve sabittir. Ancak her ihtimale karşı, bir sonraki sürümde adlandırılmış olarak kabul edeceğiz.

 
Renat Fatkhullin :

Hata değil.

İlk parametre isimsiz ve sabittir. Ancak her ihtimale karşı, bir sonraki sürümde adlandırılmış olarak kabul edeceğiz.

Aha, belgelerin özellikle anlamadığı anlamına gelir.

Teşekkür ederim.

 
Terminalden " yeni bir bara başlamak" için gerçekten bir şeye ihtiyacınız var. Göstergeler çok önemli değil. Python ayrıca gösterge hesaplamalı bir kütüphaneye sahiptir.
 

Soru. Bir konumlar_get işlevi vardır. Dokümantasyon, çalışmasının üç modunun bir tanımını içerir.

konumlar_get

Sembol veya bilete göre filtreleme özelliği ile açık pozisyonları alır. 3 arama seçeneği vardır.


Parametresiz arayın. Tüm semboller için açık pozisyonları döndürür.

konumlar_get()

Açık pozisyon almak istediğiniz sembolü belirten bir çağrı.

konumlar_get (

sembol="SEMBOL" // sembol adı

)

Konum biletini belirten bir çağrı.

konumlar_get (

bilet=bilet // bilet

)

Seçenekler

Symbol="SYMBOL" [içinde] Sembol adı. İsteğe bağlı bir adlandırılmış parametre. Bir sembol belirtilirse, bilet parametresi yok sayılır.

bilet=TICKET [içinde] Konum bileti (POSITION_TICKET). İsteğe bağlı bir adlandırılmış parametre.


Positions_get() varyantı - soru yok, mükemmel çalışıyor.

Ama diğer ikisi - hiçbir şey döndürmeyin.

	pos_info = mt5.positions_get(symbol = "GBPUSD" )	
	print(mt5.last_error())

ikinci arama seçeneği:

        result = mt5.order_send(request)        
         if result.retcode == 0 or result.retcode == 10009 :      
                pos_info = mt5.positions_get(ticket = result.order)
                print("mt5.last_error(): %s" % (mt5.last_error()))

last_error ayrıca garip bir yapı döndürür:

2020-03-09 22:25:41 [DEBUG][module: processing.py] add_position: Possition open - OK! MqlTradeResult: {
    "retcode": 10009,
    "deal": 134756209,
    "order": 161108536,
    "volume": 0.01,
    "price": 1.31089,
    "bid": 1.31066,
    "ask": 1.31089,
    "comment": "Request executed",
    "request_id": 98,
    "retcode_external": 0
}
mt5.last_error(): [1, '']

Nereye bakmalı? Sorun nedir?

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

Konum biletini belirten bir çağrı.

konumlar_get (

bilet=bilet // bilet

)

Seçenekler

symbol="SYMBOL" [içinde] Sembol adı. İsteğe bağlı bir adlandırılmış parametre. Bir sembol belirtilirse, bilet parametresi yok sayılır.

bilet=TICKET [içinde] Konum bileti (POSITION_TICKET). İsteğe bağlı bir adlandırılmış parametre.


Positions_get() varyantı - soru yok, mükemmel çalışıyor.

Ama diğer ikisi - hiçbir şey döndürmeyin.

ikinci arama seçeneği:

last_error ayrıca garip bir yapı döndürür:

2020-03-09 22:25:41 [DEBUG][module: processing.py] add_position: Possition open - OK! MqlTradeResult: {
    "retcode": 10009,
    "deal": 134756209,
    "order": 161108536,
    "volume": 0.01,
    "price": 1.31089,
    "bid": 1.31066,
    "ask": 1.31089,
    "comment": "Request executed",
    "request_id": 98,
    "retcode_external": 0
}
mt5.last_error(): [1, '']

Nereye bakmalı? Sorun nedir?

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.

 

last_error тоже возвращает странную конструкцию:

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