Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1208

 
Vladpedro :

Evet, önemli değil. Fark konusunda şüphelerim vardı çünkü emirleri ve pozisyonları verirken onlara pozisyonlarım, emirlerim için "yorumlar" verdim. Sonuç olarak, bir emir bir pozisyona girdiğinde, emir yorumunu devralır.

Sonra, yorumlar yoluyla pozisyonları kontrol ederken, kafa karışıklığı ortaya çıktı ... sonra yorumları farklı çıktı. Neyse düzelttim.

Kodunuzda SELL_LIMIT'in çalıştığı durumda pozisyonların nasıl kapatıldığını hiç bulamadım veya anlamadım. Sermaye tarafından.

Görünüşe göre tüm pozisyonları kapatma olasılığı için bir kontrol yapıldı ve üzerine bir bayrak kondu.

ancak CloseAllPositions() içinde;

böyle bir şey eksik.

Vaka için tüm pozisyonları kapatmanız gereken - çalıştı SELL_LIMIT

Belki de aynı m_account.Equity()>= m_account.Balance()+ 15'i bir şekilde farklı şekilde uygulamışsınızdır?

Yoksa gerçekten işinize yaramıyor mu? Belki de benim anlayışımda ortalamanın ne olduğunu açıklamamış olmamdan dolayı.

Yukarıda dikkatinizi çekmiştim - bekleyen siparişlerin bununla hiçbir ilgisi yok . Bekleyen bir siparişin kârı olamaz. "Kesinlikle" kelimesinden. Bu iş çözülene kadar devam edemeyiz.


Eklendi: İki durum için örnek bir çözüm gösterdim:

  1. Sadece iki pozisyonumuz var - bu, daha karlı olanı arıyoruz ve kapatıyoruz demektir.
  2. İkiden fazla pozisyonumuz var - toplam karı belirtilenden büyükse, tüm pozisyonları kapatıyoruz.
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Vladimir Karputov :

Yukarıda dikkatinizi çekmiştim - bekleyen siparişlerin bununla hiçbir ilgisi yok . Bekleyen bir siparişin kârı olamaz. "Kesinlikle" kelimesinden. Bu iş çözülene kadar devam edemeyiz.

Vladimir. Tabii ki, bekleyen bir siparişin kârı olamaz. Tabii ki kârdan bahsediyoruz, açık pozisyonlardan bahsediyoruz.

Sadece bu pozisyonların nasıl açıldığı konusunda bir fark var. Onlar için farklı bir kapatma yöntemine ihtiyacımız var.

İkinci pozisyon ex'den açılmışsa. SELL_STOP emirleri, daha sonra bunlardan biri, en yüksek pozisyon karı olan kapatılmalıdır. Aldın ve işe yarıyor.

İkinci pozisyon ex'den açılmışsa. SELL_LIMIT siparişler, o zaman her ikisi de Equity tarafından kapatılmalıdır ( m_account.Equity()>= m_account.Balance()+ 15) Eğer birinin SL'si daha önce çalışmıyorsa.

Katma.

İki durum için örnek bir çözüm gösterdim:

  1. Sadece iki pozisyonumuz var - bu, daha karlı olanı arıyoruz ve kapatıyoruz demektir.
  2. İkiden fazla pozisyonumuz var - toplam karı belirtilenden büyükse, tüm pozisyonları kapatıyoruz

İkinci koşul için her şey yolunda görünüyor. Ama nedense ikinci şartımda ikinci pozisyonu açıyor ve 0 -1.2'ye hemen yakın kapatıyor.

Belki orada toplam karı belirtmiyorum?

InpProfitTarget = 15; Eğer buradaysa, çalışmıyor.


 
Vladpedro :

Vladimir. Tabii ki, bekleyen bir siparişin kârı olamaz. Tabii ki kârdan bahsediyoruz, açık pozisyonlardan bahsediyoruz.

Sadece bu pozisyonların nasıl açıldığı konusunda bir fark var. Onlar için farklı bir kapatma yöntemine ihtiyacımız var.

İkinci pozisyon ex'den açılmışsa. SELL_STOP emirleri, daha sonra bunlardan biri, en yüksek pozisyon karı olan kapatılmalıdır. Aldın ve işe yarıyor.

İkinci pozisyon ex'den açılmışsa. SELL_LIMIT siparişler, o zaman her ikisi de Equity tarafından kapatılmalıdır ( m_account.Equity()>= m_account.Balance()+ 15) Eğer birinin SL'si daha önce çalışmıyorsa.

Afedersiniz:

İki durum için örnek bir çözüm gösterdim:

  1. Sadece iki pozisyonumuz var - bu, daha karlı olanı arıyoruz ve kapatıyoruz demektir.
  2. İkiden fazla pozisyonumuz var - toplam karı belirtilenden büyükse, tüm pozisyonları kapatıyoruz.


O zaman lütfen kendin bir şeyler yap.

 
Vladimir Karputov :

Afedersiniz:

İki durum için örnek bir çözüm gösterdim:

  1. Sadece iki pozisyonumuz var - bu, daha karlı olanı arıyoruz ve kapatıyoruz demektir.
  2. İkiden fazla pozisyonumuz var - toplam karı belirtilenden büyükse, tüm pozisyonları kapatıyoruz.


O zaman lütfen kendin bir şeyler yap.

Yardımın için teşekkürler Vladimir, deniyorum.

2. İkiden fazla pozisyonumuz var - toplam karı belirtilenden büyükse, tüm pozisyonları kapatıyoruz.

Ancak buna değil , ikincisinin SELL_LIMIT tetiklemesi ile açıldığı iki veya daha fazla pozisyona ihtiyacım vardı.

Yine de sabrınız ve sıkı çalışmanız için teşekkürler. Tabii ki karar vereceğim, bir şekilde kendi yolumda acı çekeceğim ve karar vereceğim)))

 
İyi akşamlar beyler, konu üretmemek için - soru şu - iyi tanımlanmış bir al ve dur ile bekleyen bir durdurma emri komut dosyası tarafından belirlenir, yürütülmez ve yorumlarda [likidite eksikliği] yazılır - nasıl başa çıkılır - komut dosyasını yürütmeye kadar döngüye alın, daha fazla kayma ayarlayın veya tekrarlanan isteklerin sayısını belirtin ya da ne? Ya da nereye kazacağınıza burnunuzu sokun.
 
neitrino22 :
İyi akşamlar beyler, konu üretmemek için - soru şu - iyi tanımlanmış bir al ve dur ile bekleyen bir durdurma emri komut dosyası tarafından belirlenir, yürütülmez ve yorumlarda [likidite eksikliği] yazılır - nasıl başa çıkılır - komut dosyasını yürütmeye kadar döngüye alın, daha fazla kayma ayarlayın veya tekrarlanan isteklerin sayısını belirtin ya da ne? Ya da nereye kazacağınıza burnunuzu sokun.

Her zaman belgeleri kazmalısınız

ORDER_TIME_GTC

Sipariş, geri çekilene kadar kuyrukta olacak

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Alexey Viktorov :

Her zaman belgeleri kazmalısınız

ORDER_TIME_GTC

Sipariş, geri çekilene kadar kuyrukta olacak

Teşekkür ederim muhtemelen bu

 

İyi akşamlar!

1 açık pozisyon var.

Expert Advisor, PositionClose() yöntemini kullanarak bir pozisyonu kapatır;

Sonuç yazdırılır ResultRetcode= 10009. Kod açıklaması: 0.00'da yapılır

Aşağıdaki kodda, (PositionSelect (_Symbol)) hangi gözlemenin başarıyla geçtiği kontrol edilir.

Onlar. PositionClose()'un yürütülmesi ile açık pozisyonun kaybolması arasında, programın yanlış yöne dönmeyi başardığı bir süre geçer.

Bu durumu yetkin bir şekilde nasıl çözebilirim?


 

Yeni bir test yapmak için testten sonra neden her seferinde terminali yeniden başlatmam gerekiyor?

 2020.04 . 27 15 : 19 : 08.415 Tester  XAUUSD: history data begins from 2014.02 . 12 00 : 00
2020.04 . 27 15 : 19 : 08.415 Tester  XAUUSD: history data begins from 2014.02 . 12 00 : 00
2020.04 . 27 15 : 19 : 08.415 Core 01 connecting to 127.0 . 0.1 : 3000
2020.04 . 27 15 : 19 : 08.415 Core 01 connected
2020.04 . 27 15 : 19 : 08.425 Core 01 authorized (agent build 2361 )
2020.04 . 27 15 : 19 : 08.427 Tester  XAUUSD,M15 (Alpari-MT5-Demo): testing of Experts\ExpertTest.ex5 from 2017.07 . 26 00 : 00 to 2020.02 . 06 00 : 00
2020.04 . 27 15 : 19 : 08.466 Core 01 disconnected
2020.04 . 27 15 : 19 : 08.466 Core 01 connection closed

Tüm nesneleri siliyorum. Dosyaları kapatıyorum. Test durdurulduğundaki günlük:

 2020.04 . 27 15 : 15 : 43.188 Core 01 disconnected
2020.04 . 27 15 : 15 : 43.188 Core 01 connection closed
2020.04 . 27 15 : 15 : 43.189 Tester  stopped by user

Ve bir dahaki sefere artık başlamadığında - terminali kapatıp tekrar açmanız gerekir. 2361 oluşturun.

 
OnTradeTransaction'da kapalı bir pozisyonun yorumları nasıl alınır?