초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 1122

 

2019.09.09 18:03:27.865 터미널 MetaTrader 5 x64 빌드 2138 시작(MetaQuotes Software Corp.)
2019.09.09 18:03:27.866 터미널 Windows 10(빌드 18362) x64, IE 11, UAC, Intel Core i7-3770K @ 3.50GHz, 메모리: 20544/24520Mb, 디스크: 745/23Gb
2019.09.09 18:03:27.866 터미널 C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

내 ME의 일반적인 보기:

맞춤형 ME

퇴근 후 닫습니다. 닫는 방법에 따라 달라지는 것은 없습니다.
이후에 열면 ME가 다음과 같은 형식으로 나타납니다.

구성되지 않은 ME

보기 - 도구 모음을 사용자 정의할 수 있습니다.

끄면 모든 것이 반복됩니다.


짓다
 
User_mt5 :

2019.09.09 18:03:27.865 터미널 MetaTrader 5 x64 빌드 2138 시작(MetaQuotes Software Corp.)
2019.09.09 18:03:27.866 터미널 Windows 10(빌드 18362) x64, IE 11, UAC, Intel Core i7-3770K @ 3.50GHz, 메모리: 20544/24520Mb, 디스크: 745/23Gb
2019.09.09 18:03:27.866 터미널 C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

내 ME의 일반적인 보기:

퇴근 후 닫습니다. 닫는 방법에 따라 달라지는 것은 없습니다.
이후에 열면 ME가 다음과 같은 형식으로 나타납니다.

보기 - 도구 모음을 사용자 정의할 수 있습니다.

끄면 모든 것이 반복됩니다.


이제 F12를 누릅니다.

 
User_mt5 :

2019.09.09 18:03:27.865 터미널 MetaTrader 5 x64 빌드 2138 시작(MetaQuotes Software Corp.)
2019.09.09 18:03:27.866 터미널 Windows 10(빌드 18362) x64, IE 11, UAC, Intel Core i7-3770K @ 3.50GHz, 메모리: 20544/24520Mb, 디스크: 745/23Gb
2019.09.09 18:03:27.866 터미널 C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075

내 ME의 일반적인 보기:

퇴근 후 닫습니다. 닫는 방법에 따라 달라지는 것은 없습니다.
이후에 열면 ME가 다음과 같은 형식으로 나타납니다.

보기 - 도구 모음을 사용자 정의할 수 있습니다.

끄면 모든 것이 반복됩니다.


데이터 폴더를 열고 \config로 이동한 다음 터미널과 MetaEditor 편집기를 닫고 metaeditor.ini 파일을 삭제합니다.

 
Artyom Trishkin :

이제 F12를 누릅니다.

그것은 효과가 있었다.

정말 감사합니다.

 
Vladimir Karputov :

데이터 폴더를 열고 \config로 이동한 다음 터미널과 MetaEditor 편집기를 닫고 metaeditor.ini 파일을 삭제합니다.

F12가 작동했으므로 다른 것은 필요하지 않습니다.

도와 주셔서 감사합니다.

 
User_mt5 :

F12가 작동했으므로 다른 것은 필요하지 않습니다.

도와 주셔서 감사합니다.

우와. MetaEditor 5의 F12(전체 화면으로 최대화)에 대해서도 몰랐습니다!

 
Vladimir Karputov :

정확히 무엇을 받고 싶습니까? 마지막 TRADE( TRADE 유형 "시장 출구")의 시간이 필요합니까? 아니면 거래 내역에서 일부 POSITION의 마감 시간을 알아야 합니까?

거래 내역에서 마지막으로 마감된 포지션의 시간을 알아야 합니다.

그 작성된 코드가 MQL5에서 작동합니까?, fxsaber 라이브러리를 연결했지만 mt4 코드는 작동하지만 여전히 질문이 남아 있습니다. MQL5에서 OrderCloseTime() 함수 를 만드는 것이 정말 불가능합니까? 게시 된 작업 처럼 ... 그런 갈퀴로, 나는 그것을 포기하고 싶습니다. 질문은 개발자에게 더 있습니다. 대답할 필요는 없습니다. 스레드의 이야기를 읽었습니다. 이 질문에 대답할 수 있는 사람은 거의 없을 것입니다. 많은 것이 아직 명확하지 않으며 시간이 지나면 MQL5 언어에 대한 내 견해를 재고할 수 있습니다.

 
Pul-Adgi Mo-UlStan :

거래 내역에서 마지막으로 마감된 포지션의 시간을 알아야 합니다.

그 작성된 코드가 MQL5에서 작동합니까?, fxsaber 라이브러리를 연결했지만 mt4 코드는 작동하지만 여전히 질문이 남아 있습니다. MQL5에서 OrderCloseTime() 함수 를 만드는 것이 정말 불가능합니까? 게시 된 작업 처럼 ... 그런 갈퀴로, 나는 그것을 포기하고 싶습니다. 질문은 개발자에게 더 있습니다. 대답할 필요는 없습니다. 스레드의 이야기를 읽었습니다. 이 질문에 대답할 수 있는 사람은 거의 없을 것입니다. 많은 것이 아직 명확하지 않으며 시간이 지나면 MQL5 언어에 대한 내 견해를 재고할 수 있습니다.

모든 것이 간단합니다. 먼저 읽고 결론을 내리면 됩니다. :)

 
Pul-Adgi Mo-UlStan :

거래 내역에서 마지막으로 마감된 포지션의 시간을 알아야 합니다.

그 작성된 코드가 MQL5에서 작동합니까?, fxsaber 라이브러리를 연결했지만 mt4 코드는 작동하지만 여전히 질문이 남아 있습니다. MQL5에서 OrderCloseTime() 함수 를 만드는 것이 정말 불가능합니까? 게시 된 작업 처럼 ... 그런 갈퀴로, 나는 그것을 포기하고 싶습니다. 질문은 개발자에게 더 있습니다. 대답할 필요는 없습니다. 스레드의 이야기를 읽었습니다. 이 질문에 대답할 수 있는 사람은 거의 없을 것입니다. 많은 것이 아직 명확하지 않으며 시간이 지나면 MQL5 언어에 대한 내 견해를 재고할 수 있습니다.

매우 간단한 방법을 사용하십시오(특히 헤지 계정의 경우 99%의 경우 "시장외" 유형의 거래가 포지션 청산이므로).

온라인에서 거래 TRADE_TRANSACTION_DEAL_ADD 잡기 - 내역에 거래를 추가하고 거래인지 또는 BUY 또는 SELL인지 확인하고 "시장에서 나가기" 거래인지 확인 DEAL_ENTRY_OUT

 //+------------------------------------------------------------------+
//| TradeTransaction function                                        |
//+------------------------------------------------------------------+
void OnTradeTransaction ( const MqlTradeTransaction &trans,
                         const MqlTradeRequest &request,
                         const MqlTradeResult &result)
  {
//--- get transaction type as enumeration value
   ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
//--- if transaction is result of addition of the transaction in history
   if (type== TRADE_TRANSACTION_DEAL_ADD )
     {
       long      deal_ticket       = 0 ;
       long      deal_order        = 0 ;
       long      deal_time         = 0 ;
       long      deal_time_msc     = 0 ;
       long      deal_type         =- 1 ;
       long      deal_entry        =- 1 ;
       long      deal_magic        = 0 ;
       long      deal_reason       =- 1 ;
       long      deal_position_id  = 0 ;
       double    deal_volume       = 0.0 ;
       double    deal_price        = 0.0 ;
       double    deal_commission   = 0.0 ;
       double    deal_swap         = 0.0 ;
       double    deal_profit       = 0.0 ;
       string    deal_symbol       = "" ;
       string    deal_comment      = "" ;
       string    deal_external_id  = "" ;
       if ( HistoryDealSelect (trans.deal))
        {
         deal_ticket       = HistoryDealGetInteger (trans.deal, DEAL_TICKET );
         deal_order        = HistoryDealGetInteger (trans.deal, DEAL_ORDER );
         deal_time         = HistoryDealGetInteger (trans.deal, DEAL_TIME );
         deal_time_msc     = HistoryDealGetInteger (trans.deal, DEAL_TIME_MSC );
         deal_type         = HistoryDealGetInteger (trans.deal, DEAL_TYPE );
         deal_entry        = HistoryDealGetInteger (trans.deal, DEAL_ENTRY );
         deal_magic        = HistoryDealGetInteger (trans.deal, DEAL_MAGIC );
         deal_reason       = HistoryDealGetInteger (trans.deal, DEAL_REASON );
         deal_position_id  = HistoryDealGetInteger (trans.deal, DEAL_POSITION_ID );

         deal_volume       = HistoryDealGetDouble (trans.deal, DEAL_VOLUME );
         deal_price        = HistoryDealGetDouble (trans.deal, DEAL_PRICE );
         deal_commission   = HistoryDealGetDouble (trans.deal, DEAL_COMMISSION );
         deal_swap         = HistoryDealGetDouble (trans.deal, DEAL_SWAP );
         deal_profit       = HistoryDealGetDouble (trans.deal, DEAL_PROFIT );

         deal_symbol       = HistoryDealGetString (trans.deal, DEAL_SYMBOL );
         deal_comment      = HistoryDealGetString (trans.deal, DEAL_COMMENT );
         deal_external_id  = HistoryDealGetString (trans.deal, DEAL_EXTERNAL_ID );
        }
       else
         return ;
       ENUM_DEAL_ENTRY enum_deal_entry=( ENUM_DEAL_ENTRY )deal_entry;
       if (deal_symbol==ИМЯ ВАШЕГО СИМВОЛА && deal_magic==НОМЕР ВАШЕГО MAGIC)
        {
         if (deal_type== DEAL_TYPE_BUY || deal_type== DEAL_TYPE_SELL )
           {
             if (deal_entry== DEAL_ENTRY_OUT )
              {
               *** ***
              }
           }
        }
     }
  }
 

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

초보자의 질문 MQL5 MT5 MetaTrader 5

미스터브루클린 , 2019.09.09 09:50

모두들 좋은 하루 되시고 큰 수익!

VQL5 Wizard를 사용하여 간단한 Expert Advisor를 생성했습니다. 코드는 아래와 같습니다. "대기 주문 만료(막대 단위)" 기능이 작동하지 않는 이유를 이해하도록 도와주세요. "대기 주문 만료(막대 단위)"로 번역됩니다. Signal_Expiration 값을 1에서 1000까지 설정했지만 여전히 보류 중인 주문은 하나의 막대 동안만 존재합니다. 설정도 첨부합니다.

테스트를 위해 Metatrader 5 터미널 빌드 2136의 데모 계정을 사용합니다.

안부 인사를 전합니다. 블라디미르.

 //+------------------------------------------------------------------+
//|                                                EA_MasterMQL5.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Include                                                          |
//+------------------------------------------------------------------+
#include <Expert\Expert.mqh>
//--- available signals
#include <Expert\Signal\SignalITF.mqh>
//--- available trailing
#include <Expert\Trailing\TrailingNone.mqh>
//--- available money management
#include <Expert\Money\MoneyFixedRisk.mqh>
//+------------------------------------------------------------------+
//| Inputs                                                           |
//+------------------------------------------------------------------+
//--- inputs for expert
input string Expert_Title            = "EA_MB_MasterMQL5" ; // Document name
ulong         Expert_MagicNumber      = 1473 ;               //
bool          Expert_EveryTick        = false ;               //
//--- inputs for main signal
input int     Signal_ThresholdOpen    = 0 ;                 // Signal threshold value to open [0...100]
input int     Signal_ThresholdClose   = 0 ;                 // Signal threshold value to close [0...100]
input double Signal_PriceLevel       = 0.0 ;                 // Price level to execute a deal
input double Signal_StopLevel        = 50.0 ;               // Stop Loss level (in points)
input double Signal_TakeLevel        = 50.0 ;               // Take Profit level (in points)
input int     Signal_Expiration       = 4 ;                   // Expiration of pending orders (in bars)
input int     Signal_ITF_GoodHourOfDay=- 1 ;                 // IntradayTimeFilter(-1,...) Good hour
input int     Signal_ITF_BadHoursOfDay= 8389119 ;             // IntradayTimeFilter(-1,...) Bad hours (bit-map)
input int     Signal_ITF_GoodDayOfWeek=- 1 ;                 // IntradayTimeFilter(-1,...) Good day of week
input int     Signal_ITF_BadDaysOfWeek= 0 ;                   // IntradayTimeFilter(-1,...) Bad days of week (bit-map)
input double Signal_ITF_Weight       = 1.0 ;                 // IntradayTimeFilter(-1,...) Weight [0...1.0]
//--- inputs for money
input double Money_FixRisk_Percent   = 10.0 ;               // Risk percentage
//+------------------------------------------------------------------+
//| Global expert object                                             |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Initialization function of the expert                            |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- Initializing expert
   if (!ExtExpert.Init( Symbol (), Period (),Expert_EveryTick,Expert_MagicNumber))
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing expert" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Creating signal
   CExpertSignal *signal= new CExpertSignal;
   if (signal== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating signal" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//---
   ExtExpert.InitSignal(signal);
   signal.ThresholdOpen(Signal_ThresholdOpen);
   signal.ThresholdClose(Signal_ThresholdClose);
   signal.PriceLevel(Signal_PriceLevel);
   signal.StopLevel(Signal_StopLevel);
   signal.TakeLevel(Signal_TakeLevel);
   signal.Expiration(Signal_Expiration);
//--- Creating filter CSignalITF
   CSignalITF *filter0= new CSignalITF;
   if (filter0== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating filter0" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.GoodHourOfDay(Signal_ITF_GoodHourOfDay);
   filter0.BadHoursOfDay(Signal_ITF_BadHoursOfDay);
   filter0.GoodDayOfWeek(Signal_ITF_GoodDayOfWeek);
   filter0.BadDaysOfWeek(Signal_ITF_BadDaysOfWeek);
   filter0.Weight(Signal_ITF_Weight);
//--- Creation of trailing object
   CTrailingNone *trailing= new CTrailingNone;
   if (trailing== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating trailing" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Add trailing to expert (will be deleted automatically))
   if (!ExtExpert.InitTrailing(trailing))
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing trailing" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Set trailing parameters
//--- Creation of money object
   CMoneyFixedRisk *money= new CMoneyFixedRisk;
   if (money== NULL )
     {
       //--- failed
       printf ( __FUNCTION__ + ": error creating money" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Add money to expert (will be deleted automatically))
   if (!ExtExpert.InitMoney(money))
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing money" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Set money parameters
   money.Percent(Money_FixRisk_Percent);
//--- Check all trading objects parameters
   if (!ExtExpert.ValidationSettings())
     {
       //--- failed
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- Tuning of all necessary indicators
   if (!ExtExpert.InitIndicators())
     {
       //--- failed
       printf ( __FUNCTION__ + ": error initializing indicators" );
      ExtExpert.Deinit();
       return ( INIT_FAILED );
     }
//--- ok
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Deinitialization function of the expert                          |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
   ExtExpert.Deinit();
  }
//+------------------------------------------------------------------+
//| "Tick" event handler function                                    |
//+------------------------------------------------------------------+
void OnTick ()
  {
   ExtExpert. OnTick ();
  }
//+------------------------------------------------------------------+
//| "Trade" event handler function                                   |
//+------------------------------------------------------------------+
void OnTrade ()
  {
   ExtExpert. OnTrade ();
  }
//+------------------------------------------------------------------+
//| "Timer" event handler function                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
   ExtExpert. OnTimer ();
  }
//+------------------------------------------------------------------+

사유: