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

 
Vladimir Zubov :

Bunu bilmiyorum, genellikle tarayıcıyı "kontrol etmeye hazır" aşamasına getirene kadar kapatmıyorum. "Ürünlerim" bölümünü sekmenizde aramayı deneyin, taslak genellikle oradadır, orada değilse, en baştan başlamanız gerekebilir. Yayınlamak istediğiniz ürünün adı alınmadıysa, büyük olasılıkla taslak kaydedilmemiştir.

Teşekkür ederim! Bulundu!
 
Herkese selamlar sevgili meslektaşlarım!
Bir zamanlar, bir dizi sınıf nesnesini bir dosyaya kaydetme olasılığı hakkında bir soru sordum ve topluluktan olumlu bir yanıt aldım. Sonunda hepsini kontrol etmek için etrafta dolaştım. Ve evet - gerçekten BİR ŞEY kurtarıyor. Ve sonra bile BİR ŞEY okur. Her durumda, hem FileWriteArray hem de FileReadArray, yazılan ve okunan öğe sayısı için doğru değerleri döndürür. Ancak, okuma dizisinden bir sınıf yöntemi aracılığıyla ilk öğeye erişmeye çalışırken, test cihazı geçersiz bir işaretçi erişim hatası ve ardından bir OnTick kritik hatası verir ve çıkar. Aynı zamanda, yazılan ve daha sonra okunan bir diziyle değil, sadece bellekte oluşturulanla çalışırsanız, her şeyin işe yaradığını not ediyorum. Sorun ne olabilir? Kaydedilen nesne dizisini doğru şekilde nasıl geri yükleyebilirim?
 
BlackTomcat :
Herkese selamlar sevgili meslektaşlarım!
Bir zamanlar, bir dizi sınıf nesnesini bir dosyaya kaydetme olasılığı hakkında bir soru sordum ve topluluktan olumlu bir yanıt aldım. Sonunda hepsini kontrol etmek için etrafta dolaştım. Ve evet - gerçekten BİR ŞEY kurtarıyor. Ve sonra bir ŞEY bile okur. Her durumda, hem FileWriteArray hem de FileReadArray, yazılan ve okunan öğe sayısı için doğru değerleri döndürür. Ancak, okuma dizisinden bir sınıf yöntemi aracılığıyla ilk öğeye erişmeye çalışırken, test cihazı geçersiz bir işaretçi erişim hatası ve ardından bir OnTick kritik hatası verir ve çıkar. Aynı zamanda, yazılan ve daha sonra okunan bir diziyle değil, sadece bellekte oluşturulanla çalışırsanız, her şeyin işe yaradığını not ediyorum. Sorun ne olabilir? Kaydedilen nesne dizisini doğru şekilde nasıl geri yükleyebilirim?
Stüdyo kodu!
 
Merhaba! MT4'te iyiyim. ve MT5'te yeni başlayanlar. Siparişi kapatmak için hangi komut bana söyle! Buradaki işlem türleri listesinde bulamadım - https://www.mql5.com/en/docs/constants/tradingconstants/enum_trade_request_actions. sadece CLOSE_BY ve ben sadece kapatıyorum.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Kharlamov :
Merhaba! MT4'te iyiyim. ve MT5'te yeni başlayanlar. Siparişi kapatmak için hangi komut bana söyle! Buradaki işlem türleri listesinde bulamadım - https://www.mql5.com/en/docs/constants/tradingconstants/enum_trade_request_actions. sadece CLOSE_BY ve ben sadece kapatıyorum.

MT5 o kadar kolay değil

kapatmak, aynı lotla zıt bir ticaret açmak anlamına gelir.

yani TRADE_ACTION_DEAL işlemi

 
Vladislav Andruschenko :

MT5 o kadar kolay değil

kapatmak, aynı lotla zıt bir ticaret açmak anlamına gelir.

yani TRADE_ACTION_DEAL işlemi

Cevabınız için teşekkürler, ama hala tam olarak anlamadım.. Karşıdakini açın ve sonra aralarında TRADE_ACTION_CLOSE_BY yapın ?
 
Alexander Kharlamov :
Cevabınız için teşekkürler, ama hala tam olarak anlamadım.. Karşıdakini açın ve sonra aralarında TRADE_ACTION_CLOSE_BY yapın ?

MT5'te POZİSYON kavramı vardır. Pozisyonu kapatabilirsiniz. Bir pozisyonu tamamen kapatmanız gerekiyorsa, standart kitaplığı kullanın. Netleştirme hesabı için, bir pozisyonu kapatma örneği:

 //+------------------------------------------------------------------+
//|                                                 PositionClos.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>
//--- объект класса CTrade
CTrade trade;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//--- закрытие позицию по текущему символу
   trade.PositionClose( Symbol ());
  }
//+------------------------------------------------------------------+
Dosyalar:
 
Karputov Vladimir :

MT5'te POZİSYON kavramı vardır. Pozisyonu kapatabilirsiniz. Bir pozisyonu tamamen kapatmanız gerekiyorsa, standart kitaplığı kullanın. Netleştirme hesabı için, bir pozisyonu kapatma örneği:

Sanırım anlamaya başlıyorum! ) Bu enstrüman için her siparişin doğru bir şekilde yürütülmesiyle pozisyon değişecektir. Şimdi soru şu: " Pozisyon kimliği, her yeni açılan pozisyona atanan ve ömrü boyunca değişmeyen benzersiz bir numaradır. Pozisyonun açıldığı emir biletine karşılık gelir."

Ve sonraki siparişler pozisyonu değiştirirse, sayısı onu yaratan ilk siparişe eşit mi kalır?
 
Alexander Kharlamov :

1. Sanırım anlamaya başlıyorum! ) Bu enstrüman için her siparişte pozisyon değişecek, değil mi?
2. Şimdi soru şudur: " Pozisyon tanımlayıcı, her yeni açılan pozisyona atanan ve ömrü boyunca değişmeyen benzersiz bir numaradır. Pozisyonun açıldığı sipariş biletine karşılık gelir."

Ve sonraki siparişler pozisyonu değiştirirse, sayısı onu yaratan ilk siparişe eşit mi kalır?

1. Evet, bu doğru. Bir emrin uygulanması bir ticaret yaratır. Anlaşma şunları yapabilir:

  • pozisyon oluştur
  • pozisyon hacmini değiştir
  • bir pozisyonu kapat
2. Pratik yapmaktan daha iyi ne olabilir? :) Herhangi bir grafikte (manuel olarak) bir pozisyon açın. Komut dosyasını çalıştırın

 //+------------------------------------------------------------------+
//|                                           PositionGetInteger.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"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
   for ( int i= 0 ;i< PositionsTotal ();i++)
     {
       //--- проверим наличие позиции и выведем время её изменения 
       string pos_symbol= PositionGetSymbol (( uint )i);
       if (pos_symbol!= NULL )
        {
         //--- получим идентификатор позиции для дальнейшей работы с ней 
         ulong position_ID= PositionGetInteger ( POSITION_IDENTIFIER );
         Print (pos_symbol, " postion #" ,position_ID);
         //--- получим время образования позиции в миллисекундах с 01.01.1970 
         long create_time_msc= PositionGetInteger ( POSITION_TIME_MSC );
         PrintFormat ( "Position #%d  POSITION_TIME_MSC = %i64 milliseconds => %s" ,position_ID,
                     create_time_msc, TimeToString (create_time_msc/ 1000 ));
         //--- получим время последнего изменения позиции в секундах с 01.01.1970 
         long update_time_sec= PositionGetInteger ( POSITION_TIME_UPDATE );
         PrintFormat ( "Position #%d  POSITION_TIME_UPDATE = %i64 seconds => %s" ,
                     position_ID,update_time_sec, TimeToString (update_time_sec));
         //--- получим время последнего изменения позиции в миллисекундах с 01.01.1970 
         long update_time_msc= PositionGetInteger ( POSITION_TIME_UPDATE_MSC );
         PrintFormat ( "Position #%d  POSITION_TIME_UPDATE_MSC = %i64 milliseconds => %s" ,
                     position_ID,update_time_msc, TimeToString (update_time_msc/ 1000 ));
        }
     }
//--- 
  }
//+------------------------------------------------------------------+

- satıra dikkat edin (terminalin "Uzmanlar" sekmesine bakın):

 2016.08 . 29 14 : 51 : 24.435 PositionGetInteger (EURUSD,M1)  EURUSD postion # 95873997

Sesi artırın, komut dosyasını tekrar çalıştırın - dizeyi tekrar karşılaştırın

 2016.08 . 29 14 : 51 : 32.872 PositionGetInteger (EURUSD,M1)  EURUSD postion # 95873997

Gördüğünüz gibi pozisyon özelliği (POSITION_IDENTIFIER) pozisyon çevrilmezse değişmez.

Dosyalar:
 
Konum tersine çevrildiğinde POSIITION_IDENTIFIER değişir.