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

 
Yevhenii Levchenko :
MT5'te pozisyon kapanış zamanı yerine POSITION_TIME_UPDATE'e bakmak gerektiğini doğru mu anladım?
Numara. Bir kapanış anlaşmasına ihtiyacımız var.
 
Valerius :

TakeProfit puan olarak hesaplanırken, TrailingTakeProfit mevduat para biriminde hesaplanır. TrailingTakeProfit, bir veya daha fazla siparişten mevduat para biriminde kar eder ve ayarlarda belirtilen miktarda, yani hesaplanan mesafede emirleri durdurur.

Örneğin, ayarlarda TrailingTakeProfit 100 dolar. Fiyat 100 dolar kar edip daha da üstüne çıkar çıkmaz program 100 dolara tekabül eden mesafeyi hesaplar ve izin veriyorsa tüm stop-loss emirlerini hesaplanan yere yerleştirir. Fiyat kayıpları durdurmak için geri döner dönmez tüm siparişler kapatılacaktır. Prensip olarak, bu aynı TrailingStop'tur, yalnızca hesaplama mevduat para birimindedir ve karı takip eder. Bir yerde hata yapmış olabilirim ama prensip şu. umarım aydınlatabilmişimdir.

Takip - hareket. Durağı takip etmek - durağı algoritmaya göre hareket ettirmek. Tralim TakeProfit - Seviyeye yaklaştıkça bazı algoritmalara göre hareket ediyoruz.

 
Artyom Trishkin :
Numara. Bir kapanış anlaşmasına ihtiyacımız var.

Teşekkür ederim!

İşte son ticareti kâr için kontrol eden martin için bir fonksiyon. Karlı değilse, anlaşmanın hacmini döndürür. Bu şekilde yapmak doğru mu:

 double lastDealVolume() {
   datetime lastDealTime = 0 ;
   double volume = 0 ;
   if ( HistorySelect ( TimeCurrent () - PeriodSeconds ( PERIOD_D1 ) * 10 , TimeCurrent ())) {
       int historyDealsTotal = HistoryDealsTotal ();
       for ( int i = historyDealsTotal - 1 ; i >= 0 ; i--) {
         if ( HistoryDealSelect ( HistoryDealGetTicket (i))) {
             ulong dealTicket = HistoryDealGetTicket (i);
             ENUM_DEAL_TYPE dealType = ( ENUM_DEAL_TYPE ) HistoryDealGetInteger (dealTicket, DEAL_TYPE );
             if ( HistoryDealGetString (dealTicket, DEAL_SYMBOL ) == _Symbol && HistoryDealGetInteger (dealTicket, DEAL_MAGIC ) == MagicNumber &&
                  (dealType == DEAL_TYPE_BUY || dealType == DEAL_TYPE_SELL ) ) {
               if ( HistoryDealGetInteger (dealTicket, DEAL_TIME ) > lastDealTime) {
                  lastDealTime = ( datetime ) HistoryDealGetInteger (dealTicket, DEAL_TIME );
                   if ( HistoryDealGetDouble (dealTicket, DEAL_PROFIT ) < 0 ) {
                     volume = HistoryDealGetDouble (dealTicket, DEAL_VOLUME );
                  } else {
                     volume = 0 ;
                  }
               }
            }
         }
      }
   } else Print (" HistorySelect () (lastOrderVolume) error! ");
   return volume;
}

Tüm pozisyon için karı bulmanız gerekiyorsa, şunları yapmanız gerekir:

-> Tüm işlemleri gözden geçirin ve son işlemin DEAL_POSITION_ID'sini öğrenin ;
-> DEAL_POSITION_ID ile tekrar yün ve tüm pozisyonun karını mı öğreniyorsunuz?

Yoksa daha kısa bir yolu var mı?

 
Yevhenii Levchenko :

Teşekkür ederim!

İşte son ticareti kâr için kontrol eden martin için bir fonksiyon. Karlı değilse, anlaşmanın hacmini döndürür. Bu şekilde yapmak doğru mu:

Tüm pozisyon için karı bulmanız gerekiyorsa, şunları yapmanız gerekir:

-> Tüm işlemleri gözden geçirin ve son işlemin DEAL_POSITION_ID'sini öğrenin ;
-> DEAL_POSITION_ID ile tekrar yün ve tüm pozisyonun karını mı öğreniyorsunuz?

Yoksa daha kısa bir yolu var mı?

Soruna diğer taraftan bakın. Pozisyon kimliği, pozisyonu kapattığınız anda alınabiliyorsa ve bu pozisyonun emirlerini ve anlaşmalarını zaten her şeyi bilerek seçebilirsiniz.

 
Alexey Viktorov :

Soruna diğer taraftan bakın. Pozisyon kimliği, pozisyonu kapattığınız anda alınabiliyorsa ve bu pozisyonun emirlerini ve anlaşmalarını zaten her şeyi bilerek seçebilirsiniz.

Gerçek şu ki, bir anlaşma açmadan önce bunun kontrol edilmesi gerekiyor :(

Ama kısası yoksa, her zaman uzun yoldan gidebilirsin :)

 
Yevhenii Levchenko :

Gerçek şu ki, bir anlaşma açmadan önce bunun kontrol edilmesi gerekiyor :(

Ama kısası yoksa, her zaman uzun yoldan gidebilirsin :)

Bu, yalnızca OnInit'te danışmanı yeniden başlatırken gereklidir, bu nedenle arayın. Ve danışmanın çalışması sırasında , pozisyonu kapatırken gerekli verileri alın. Ama bu herkesin işi. Birisi işlemciyi gereksiz eylemlerle yüklemeyi seviyor………

 
Alexey Viktorov :

Bu, yalnızca OnInit'te danışmanı yeniden başlatırken gereklidir, bu nedenle arayın. Ve danışmanın çalışması sırasında , pozisyonu kapatırken gerekli verileri alın. Ama bu herkesin işi. Birisi işlemciyi gereksiz eylemlerle yüklemeyi seviyor………

Biraz anlamadım ama her tikte pozisyonun durumu hakkında bir talepte bulunmak dışında bir pozisyonun kapanma anını nasıl takip edebilirim? Tabii ki, bu sorgulanacak tüm pozisyonlar değil, aynı şekilde, her tikte bir istek yapılır.

 
Valerius :

TakeProfit puan olarak hesaplanırken, TrailingTakeProfit mevduat para biriminde hesaplanır. TrailingTakeProfit, bir veya daha fazla siparişten mevduat para biriminde kar eder ve ayarlarda belirtilen miktarda, yani hesaplanan mesafede emirleri durdurur.

Örneğin, ayarlarda TrailingTakeProfit 100 dolar. Fiyat 100 dolar kar edip daha da üstüne çıkar çıkmaz program 100 dolara tekabül eden mesafeyi hesaplar ve izin veriyorsa tüm stop-loss emirlerini hesaplanan yere yerleştirir. Fiyat kayıpları durdurmak için geri döner dönmez tüm siparişler kapatılacaktır. Prensip olarak, bu aynı TrailingStop'tur, yalnızca hesaplama mevduat para birimindedir ve karı takip eder. Bir yerde hata yapmış olabilirim ama prensip şu. umarım aydınlatabilmişimdir.

Valeriy Yastremskiy :

Takip - hareket. Tralim durağı - durağı algoritmaya göre hareket ettirin. Tralim TakeProfit - Seviyeye yaklaştıkça bazı algoritmalara göre hareket ediyoruz.

Kesinlikle tekme atmayın ama anlamadım. MetaEditor'da oluşturulan ve takip modülü de dahil olmak üzere Expert Advisor'ın ayarlarında, takip tam olarak nokta olarak belirtilir. Örneğin, " Kâr Al " ayarladım   takip seviyesi (puan olarak)" = 100. Bu takip nasıl olacak? Yanlışım varsa düzeltin. Mevcut fiyat, Take Profita'ya 100 puanlık bir mesafeye ulaştığında, takip etkinleştirilir. Fiyat TP'ye ulaştığında ve onu geçerse pozisyon kapanmaz Sadece takip fiyatı 100'lük bir mesafeden takip etmeye başlar. Eğer fiyat döner ve pozisyona ters düşerse pozisyon ya ayarlanan TP'de kapatılır ya da iz, treyler tarafından belirlenen SL'de TP'nin ötesine geçti.
Общие принципы - Торговые операции - Справка по MetaTrader 5
Общие принципы - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит и...
 
altec3 :
Kesinlikle tekme atmayın ama anlamadım. MetaEditor'da oluşturulan ve takip modülü de dahil olmak üzere Expert Advisor'ın ayarlarında, takip tam olarak nokta olarak belirtilir. Örneğin, " Kâr Al " ayarladım   takip seviyesi (puan olarak)" = 100. Bu takip nasıl olacak? Yanlışım varsa düzeltin. Mevcut fiyat, Take Profita'ya 100 puanlık bir mesafeye ulaştığında, takip etkinleştirilir. Fiyat TP'ye ulaştığında ve onu geçerse pozisyon kapanmaz.Yalnızca iz fiyatı 100 mesafeden takip etmeye başlar.Eğer fiyat tersine döner ve pozisyona ters düşerse pozisyon ya ayarlanan TP'de ya da iz varsa kapatılır. patika tarafından belirlenen SL'de TP'nin ötesine geçti.

Kodsuz cevap vermek zor.

 
Alexey Viktorov :

Bu, yalnızca danışmanı OnInit'te yeniden başlatırken gereklidir, bu nedenle arayın. Ve danışmanın çalışması sırasında , pozisyonu kapatırken gerekli verileri alın. Ama bu herkesin işi. Birisi işlemciyi gereksiz eylemlerle yüklemeyi seviyor………

Bu, her kene üzerinde kontrol edilmez. Bir sinyal varsa, doğrulama başlar ve bir ticaret açılır. Ve tüm :)