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

 
merhaba.
MT-5'te araçlar penceresinde sekmelerim yok - takvim, sinyaller, nasıl ekleyeceğimi söyler misiniz?
 
sergey966121 :
merhaba.
MT-5'te araçlar penceresinde sekmelerim yok - takvim, sinyaller, nasıl ekleyeceğimi söyler misiniz?

"Takvim" sekmesi, ticaret sunucusundaki ayarlar tarafından kontrol edilir. Sekme yoksa, etkinleştirmek için ticaret kuruluşuna ticaret hesabının nerede açıldığını sorun.

"Sinyaller" sekmesi yoksa:

MetaTrader'da "Sinyaller" sekmesi yoksa

Eklendi: işletim sistemi - Windows?

 

Merhaba!

PositionGet...() kullanarak bir pozisyonun TP ve SL değerlerini alabilirsiniz, fakat pozisyonun tamamı için kar al'ı nasıl ayarlayabilirsiniz?

Teşekkür ederim!

 
Alexander Kharlamov :

Merhaba!

PositionGet...() kullanarak bir pozisyonun TP ve SL değerlerini alabilirsiniz, fakat pozisyonun tamamı için kar al'ı nasıl ayarlayabilirsiniz?

Teşekkür ederim!

Bunun gibi, standart kitaplığı ve CTrade sınıfını kullanarak:

 #include <Trade\Trade.mqh>
Ctrade my_trade
...
my_trade.Buy(...
//или
my_trade.Sell(...
//или
my_trade.PositionModify(...
 
Karputov Vladimir :

Bunun gibi, standart kitaplığı ve CTrade sınıfını kullanarak:

Teşekkür ederim!
 
Alexander Kharlamov :
Teşekkür ederim!
Rica ederim. Standart kitaplık , programlamayı çok kolaylaştırır.
 
Alexander Kharlamov :
Teşekkür ederim!

İşte bir betik örneği (PositionModify(SL).mq5) - önce bir pozisyon açar ve sonra bu pozisyonun stoploss değerini değiştirir:

 //+------------------------------------------------------------------+
//|                                           PositionModify(SL).mq5 |
//|                              Copyright © 2016, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2016, Vladimir Karputov"
#property link        "http://wmua.ru/slesar/"
#property version    "1.00"
#include <Trade\Trade.mqh>
//--- variable
CTrade   my_trade;         // object CTrade
int       my_stop_loss= 30 ;   // stop level
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   my_trade.Buy( 0.01 );
   Sleep ( 6000 );

   double m_adjusted_point;         // point value adjusted for 3 or 5 points
//--- tuning for 3 or 5 digits
   int digits_adjust= 1 ;
   if ( Digits ()== 3 || Digits ()== 5 )
      digits_adjust= 10 ;
   m_adjusted_point= Point ()*digits_adjust;

   double m_stop_loss=my_stop_loss*m_adjusted_point;

   MqlTick m_tick;
   SymbolInfoTick ( Symbol (),m_tick);

   double sl= NormalizeDouble (m_tick.bid-m_stop_loss, Digits ());
   my_trade.PositionModify( Symbol (),sl, 0 );
  }

Kullanım kısıtlaması: Yalnızca netleştirme hesaplarında düzgün çalışacaktır.

Dosyalar:
 

Pozisyon için TP teslim edildi, teşekkürler.

Ve olayın oluşumunu izlemek için MQL5 kullanmak ilginçtir - kâr elde etmek işe yaradı mı? Veya pozisyonun durumunu kontrol etmeniz gerekir.

 
Alexander Kharlamov :

Pozisyon için TP teslim edildi, teşekkürler.

Ve olayın oluşumunu izlemek için MQL5 kullanmak ilginçtir - kâr elde etmek işe yaradı mı? Veya pozisyonun durumunu kontrol etmeniz gerekir.

Tabii ki, pozisyonun sizi olay hakkında nasıl bilgilendireceğini kontrol etmek için - bu sadece DC sunucusundaki bir tür varlık (veritabanındaki bir giriş + başka bir şey).
 

Şimdiye kadar, zorunluluktan, bunu henüz yapmadım, ancak OnTrade ve OnTradeTransaction olaylarını alarak bir pozisyonun kapanışını takip etmek mümkün değil mi?

Trade

Ticaret olayı , ticaret sunucusunda bir ticaret işlemi tamamlandığında oluşturulur. Ticaret olayı, aşağıdaki ticaret işlemleri için OnTrade() işlevi tarafından işlenir:

  • bekleyen bir emrin verilmesi, değiştirilmesi veya silinmesi;
  • fon kıtlığı veya sona erme durumunda bekleyen bir siparişin iptali;
  • bekleyen bir emri tetiklemek ;
  • bir pozisyonun (veya pozisyonun bir kısmının) açılması, eklenmesi veya kapatılması ;
  • açık pozisyonun değiştirilmesi (durakların değiştirilmesi).

Ticaret İşlemi

Bir ticaret hesabıyla belirli eylemleri gerçekleştirmenin bir sonucu olarak, durumu değişir. Bu eylemler şunları içerir:

  • OrderSend ve OrderSendAsync işlevlerini kullanarak müşteri terminalindeki herhangi bir MQL5 uygulaması tarafından bir ticaret talebinin gönderilmesi ve ardından yürütülmesi;
  • Terminalin grafik arayüzü aracılığıyla bir ticaret talebinin gönderilmesi ve ardından yürütülmesi;
  • Sunucuda bekleyen emirlerin ve emirlerin durdurulmasının aktivasyonu ;
  • Trade server tarafında işlemlerin yapılması.

Bu işlemler sonucunda hesap için alım satım işlemleri gerçekleştirilir:

  • bir ticaret talebinin işlenmesi;
  • açık siparişleri değiştirmek;
  • siparişlerin tarihini değiştirmek;
  • işlemlerin geçmişini değiştirmek;
  • pozisyon değişikliği.

Örneğin bir piyasa emri gönderildiğinde işlenir, hesaba karşılık gelen bir alış emri oluşturulur, emir yürütülür, açık emirler listesinden çıkarılır, emir geçmişine eklenir, ardından ilgili işlem yapılır. tarihe eklenir ve yeni bir pozisyon oluşturulur. Tüm bu işlemler alım satım işlemleridir. Bu tür her bir işlemin terminale gelişi bir TradeTransaction olayıdır. Bu olay OnTradeTransaction işlevi tarafından işlenir.