MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1259

 
Yevhenii Levchenko :
MT5에서 포지션 마감 시간 대신 POSITION_TIME_UPDATE 를 확인해야 한다는 것을 정확히 이해하고 있습니까?
아니요. 계약 체결이 필요합니다.
 
Valerius :

TakeProfit은 포인트로 계산되는 반면 TrailingTakeProfit은 예금 통화로 계산됩니다. TrailingTakeProfit은 하나 이상의 주문에서 예금 통화로 이익을 얻고 설정에 지정된 금액, 즉 계산된 거리에서 주문을 중지합니다.

예를 들어 설정에서 TrailingTakeProfit은 100달러입니다. 가격이 100달러의 이익을 얻자마자 프로그램은 100달러에 해당하는 거리를 계산하고 허용되는 경우 계산된 위치에 모든 손절매 주문을 넣습니다. 손실을 막기 위해 가격이 롤백되는 즉시 모든 주문이 마감됩니다. 원칙적으로 이것은 동일한 TrailingStop이며 계산만 예금 통화로 이루어지며 이익을 추적합니다. 어디선가 실수를 했을지 모르지만 원칙은 이렇습니다. 나는 내가 명확히했기를 바랍니다.

후행 - 움직임. Tralim stop - 알고리즘에 따라 정지를 이동합니다. Tralim TakeProfit - 일부 알고리즘에 따라 접근할 때 레벨을 이동합니다.

 
Artyom Trishkin :
아니요. 계약 체결이 필요합니다.

고맙습니다!

다음은 이익을 위해 마지막 거래를 확인하는 마틴을 위한 기능입니다. 수익성이 없으면 거래량을 반환합니다. 다음과 같이 하는 것이 맞습니까?

 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;
}

전체 위치에 대한 이익을 찾아야 하는 경우 다음을 수행해야 합니다.

-> 모든 트랜잭션을 살펴보고 마지막 트랜잭션 의 DEAL_POSITION_ID를 찾으십시오.
-> DEAL_POSITION_ID로 다시 양모와 전체 포지션의 이익을 찾으시겠습니까?

아니면 더 짧은 방법이 있습니까?

 
Yevhenii Levchenko :

고맙습니다!

다음은 이익을 위해 마지막 거래를 확인하는 마틴을 위한 기능입니다. 수익성이 없으면 거래량을 반환합니다. 다음과 같이 하는 것이 맞습니까?

전체 위치에 대한 이익을 찾아야 하는 경우 다음을 수행해야 합니다.

-> 모든 거래를 살펴보고 마지막 거래 의 DEAL_POSITION_ID를 찾으십시오.
-> DEAL_POSITION_ID로 다시 양모와 전체 포지션의 이익을 찾으시겠습니까?

아니면 더 짧은 방법이 있습니까?

다른 쪽에서 문제를 보십시오. 포지션 ID를 닫는 순간에 포지션 ID를 얻을 수 있고 이미 모든 것을 알고 있는 이 포지션의 주문과 거래를 선택할 수 있다면 왜 히스토리를 울립니까?

 
Alexey Viktorov :

다른 쪽에서 문제를 보십시오. 포지션 ID를 닫는 순간에 포지션 ID를 얻을 수 있고 이미 모든 것을 알고 있는 이 포지션의 주문과 거래를 선택할 수 있다면 왜 히스토리를 울립니까?

사실 이것은 거래를 열기 전에 확인해야 한다는 것입니다 :(

하지만 짧은 사람이 없다면 언제나 먼 길을 갈 수 있습니다 :)

 
Yevhenii Levchenko :

사실 이것은 거래를 열기 전에 확인해야 한다는 것입니다 :(

하지만 짧은 사람이 없다면 언제나 먼 길을 갈 수 있습니다 :)

이것은 OnInit에서 어드바이저를 다시 시작할 때만 필요하므로 찾으십시오. 그리고 어드바이저의 업무 과정 에서 포지션 청산 시 필요한 데이터를 받습니다. 그러나 이것은 모두의 일입니다. 누군가는 프로세서에 불필요한 작업을 로드하는 것을 좋아합니다.

 
Alexey Viktorov :

이것은 OnInit에서 어드바이저를 다시 시작할 때만 필요하므로 찾으십시오. 그리고 어드바이저의 업무 과정 에서 포지션 청산 시 필요한 데이터를 받습니다. 그러나 이것은 모두의 일입니다. 누군가는 프로세서에 불필요한 작업을 로드하는 것을 좋아합니다.

조금 이해가 되지 않았지만 매 틱에서 포지션 상태를 요청하는 것 외에는 포지션 청산 순간을 추적하는 방법은 무엇입니까? 물론 이것은 심문할 모든 입장은 아니지만, 매 틱마다 요청이 이루어집니다.

 
Valerius :

TakeProfit은 포인트로 계산되는 반면 TrailingTakeProfit은 예금 통화로 계산됩니다. TrailingTakeProfit은 하나 이상의 주문에서 예금 통화로 이익을 얻고 설정에 지정된 금액, 즉 계산된 거리에서 주문을 중지합니다.

예를 들어 TrailingTakeProfit은 설정에서 100달러로 설정됩니다. 가격이 100달러의 이익을 얻자마자 프로그램은 100달러에 해당하는 거리를 계산하고 허용되는 경우 계산된 위치에 모든 손절매 주문을 넣습니다. 손실을 막기 위해 가격이 롤백되는 즉시 모든 주문이 마감됩니다. 원칙적으로 이것은 동일한 TrailingStop이며 계산만 예금 통화로 이루어지며 이익을 추적합니다. 어디선가 실수를 했을지 모르지만 원칙은 이렇습니다. 나는 내가 명확히했기를 바랍니다.

발레리 야스트렘스키 :

후행 - 움직임. 정지 후행 - 알고리즘에 따라 정지를 이동합니다. Tralim TakeProfit - 일부 알고리즘에 따라 접근할 때 레벨을 이동합니다.

강하게 걷어차지 않지만 이해하지 못했습니다. MetaEditor에서 생성되고 후행 모듈을 포함하는 Expert Advisor의 설정에서 후행은 정확히 포인트로 표시됩니다. 예를 들어 " 이익 실현   후행 수준(포인트)" = 100. 이 후행은 어떻게 작동합니까? 내가 틀렸다면 정정해 주십시오. 현재 가격이 이익 실현 세트까지 100 포인트 거리에 도달하면 후행이 활성화됩니다. 가격이 TP에 도달하고 그것을 넘으면 포지션이 청산되지 않습니다 단지 후행이 100의 거리에서 가격을 따라가기 시작했을 뿐입니다. 가격이 돌아서 포지션에 반대되는 경우, 해당 포지션은 설정된 TP에서 청산됩니다. 흔적은 트레일러에 의해 설정된 SL에서 TP를 넘어 갔다.
Общие принципы - Торговые операции - Справка по MetaTrader 5
Общие принципы - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Перед тем как приступить к изучению торговых функций платформы, необходимо создать четкое представление об основных терминах: ордер, сделка и позиция. — это распоряжение брокерской компании купить или продать финансовый инструмент. Различают два основных типа ордеров: рыночный и отложенный. Помимо них существуют специальные ордера Тейк Профит и...
 
altec3 :
강하게 걷어차지 않지만 이해하지 못했습니다. MetaEditor에서 생성되고 후행 모듈을 포함하는 Expert Advisor의 설정에서 후행은 정확히 포인트로 표시됩니다. 예를 들어 " 이익 실현   후행 수준(포인트)" = 100. 이 후행은 어떻게 작동합니까? 내가 틀렸다면 정정해 주십시오. 현재 가격이 이익 실현 세트까지 100 포인트 거리에 도달하면 후행이 활성화됩니다. 가격이 TP에 도달하고 그것을 넘으면 포지션이 청산되지 않습니다 단지 후행이 100의 거리에서 가격을 따라가기 시작했을 뿐입니다. 가격이 돌아서 포지션에 반대되는 경우, 해당 포지션은 설정된 TP에서 청산됩니다. 흔적은 트레일러에 의해 설정된 SL에서 TP를 넘어 갔다.

코드 없이는 답변하기 어렵습니다.

 
Alexey Viktorov :

이것은 OnInit에서 어드바이저를 다시 시작할 때만 필요하므로 찾으십시오. 그리고 어드바이저의 업무 과정 에서 포지션 청산 시 필요한 데이터를 받습니다. 그러나 이것은 모두의 일입니다. 누군가는 프로세서에 불필요한 작업을 로드하는 것을 좋아합니다.

이것은 모든 틱에서 확인되지 않습니다. 신호가 있으면 검증이 시작되고 거래가 열립니다. 그리고 다 :)