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

 
여보세요.
MT-5의 도구 창에 탭이 없습니다. 캘린더, 신호, 추가하는 방법을 알려주실 수 있습니까?
 
sergey966121 :
여보세요.
MT-5의 도구 창에 탭이 없습니다. 캘린더, 신호, 추가하는 방법을 알려주실 수 있습니까?

"캘린더" 탭은 무역 서버의 설정에 의해 제어됩니다. 탭이 없는 경우 거래 기관에 거래 계정을 열어 활성화하도록 요청하십시오.

"신호" 탭이 없는 경우:

MetaTrader에 "Signals" 탭이 없는 경우

추가됨: 운영 체제 - Windows?

 

안녕하세요!

PositionGet...() 을 사용하여 위치의 TP 및 SL 값을 얻을 수 있지만 전체 위치에 대한 이익 실현을 어떻게 설정할 수 있습니까?

고맙습니다!

 
Alexander Kharlamov :

안녕하세요!

PositionGet...() 을 사용하여 위치의 TP 및 SL 값을 얻을 수 있지만 전체 위치에 대한 이익 실현을 어떻게 설정할 수 있습니까?

고맙습니다!

이와 같이 표준 라이브러리 와 CTrade 클래스를 사용하여:

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

이와 같이 표준 라이브러리 와 CTrade 클래스를 사용하여:

고맙습니다!
 
Alexander Kharlamov :
고맙습니다!
물론이죠. 표준 라이브러리 는 프로그래밍을 매우 쉽게 만듭니다.
 
Alexander Kharlamov :
고맙습니다!

다음은 스크립트의 예입니다(PositionModify(SL).mq5) - 먼저 위치를 연 다음 이 위치의 손절매를 변경합니다.

 //+------------------------------------------------------------------+
//|                                           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 );
  }

사용 제한: 네팅 계정에서만 올바르게 작동합니다.

파일:
 

직책에 대한 TP가 전달되었습니다. 감사합니다.

그리고 이벤트 발생을 추적하기 위해 MQL5 를 사용하는 것도 흥미롭습니다. 또는 위치 상태를 확인해야 합니다.

 
Alexander Kharlamov :

직책에 대한 TP가 전달되었습니다. 감사합니다.

이벤트 발생을 추적하기 위해 MQL5 를 사용하는 것도 흥미롭습니다. 또는 위치 상태를 확인해야 합니다.

물론 위치가 이벤트에 대해 어떻게 알려주는지 확인하려면 DC 서버에 있는 일종의 엔터티(데이터베이스의 항목 + 다른 항목)일 뿐입니다.
 

지금까지는 부득이하게 아직 하지 않았지만 OnTrade 및 OnTradeTransaction 이벤트를 받아 포지션 청산을 추적할 수는 없나요?

Trade

거래 이벤트 는 거래 서버에서 거래 작업이 완료되면 생성됩니다. Trade 이벤트는 다음 거래 작업에 대해 OnTrade() 함수에 의해 처리됩니다.

  • 보류 중인 주문의 배치, 수정 또는 삭제
  • 자금 부족 또는 만료 시 보류 중인 주문 취소
  • 보류 주문 트리거 ;
  • 위치(또는 위치의 일부) 열기, 추가 또는 닫기 ;
  • 열린 위치 수정(정지 변경).

무역 거래

거래 계정으로 특정 작업을 수행한 결과 해당 상태가 변경됩니다. 이러한 작업에는 다음이 포함됩니다.

  • OrderSendOrderSendAsync 함수와 후속 실행을 사용하여 클라이언트 터미널의 MQL5 애플리케이션에서 거래 요청 보내기
  • 터미널의 그래픽 인터페이스 및 후속 실행을 통해 거래 요청 보내기
  • 서버에서 보류 주문 및 중지 주문 활성화 ;
  • 거래 서버 측에서 작업을 수행합니다.

이러한 조치의 결과로 계정에 대한 거래 거래가 수행됩니다.

  • 거래 요청 처리
  • 미결 주문 변경;
  • 주문 내역 변경;
  • 거래 내역 변경
  • 위치 변경.

예를 들어 매수할 시장가 주문이 전송되면 처리되고 해당 계정에 대한 해당 매수 주문이 생성되고 해당 주문이 실행되고 미결 주문 목록에서 제거되고 주문 내역에 추가되고 해당 트랜잭션 이 기록에 추가되고 새 위치가 생성됩니다. 이 모든 행동은 거래 거래입니다. 이러한 각 트랜잭션이 터미널에 도착하면 TradeTransaction 이벤트가 발생합니다. 이 이벤트는 OnTradeTransaction 기능에 의해 처리됩니다.


사유: