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

 

안녕하세요. MT5에서 문제가 발생하여 도와주세요.

2016년 이후의 통화쌍 시세 내역이 로드되지 않습니다. 브로커 - 게르치크.

시도했습니다:

1-전략 테스터를 통해 기록을 다운로드합니다.

2-도구 터미널을 통해. 어리석게도 2016 년까지의 기록 만 보여줍니다.

3 - 정상적으로로드 된 MT5 서버 쌍에서 기록을 복사합니다. 프로그램을 다시 시작한 후 이러한 파일을 삭제하고 2016 년까지만 다시 기록을 삭제합니다.

4 - 브로커의 기술 지원은 끝에 문자 Z가없는 쌍을 실행한다고 말했지만 Z로 끝나는 모든 통화 쌍 (EURUSDz, AUDCADz)이 있습니다.

브로커와 서버에 문제가 있다고 생각하는데 왜 복사 된 기록까지 삭제합니까? 누구든지 내역을 정상적으로 업로드하는 방법을 알려주실 수 있나요?

 
gyperion #:

안녕하세요. MT5에서 문제가 발생하여 도와주세요.

2016년 이후의 통화쌍 시세 내역이 로드되지 않습니다. 브로커 - 게르치크.

시도했습니다:

1 - 전략 테스터를 통해 기록을 다운로드했습니다.

2-도구 터미널을 통해. 어리석게도 2016 년까지의 기록 만 표시합니다.

3 - MT5 서버의 정상적으로 로드된 쌍에서 기록을 복사합니다. 프로그램을 다시 시작하면 이러한 파일이 삭제되고 다시 2016년까지만 기록이 표시됩니다.

4 - 브로커의 기술 지원팀에서 마지막에 문자 Z가 없는 쌍을 실행하라고 했지만 모든 통화쌍이 Z로 끝나는 EURUSDz, AUDCADz입니다.

브로커와 서버에 문제가 있다고 생각하는데 왜 복사 된 기록까지 삭제합니까? 누구든지 내역을 정상적으로 업로드하는 방법을 알려주실 수 있나요?

그래서 그들 자신이 아주 오래된 부엌이 아니기 때문에 그들은 역사가 없을까요?

 
Aleksey Vyazmikin #:

그렇다면 아주 오래된 주방이 아니기 때문에 역사가 없는 것일까요?

러시아에서 일할 수 있는 주방이 아닌 곳은 어디인가요? 그건 별로 중요하지 않아요. 문제는 기록이 없더라도 어떻게 업로드할 수 있느냐는 것입니다.
 
gyperion #:
러시아에서 일할 수 없는 이유는 무엇인가요? 별로 중요하지 않습니다. 문제는 스토리가 없는데도 어떻게 다운로드할 수 있느냐는 것입니다.

돈이 없는데도 돈을 빌려줄 수 있나요?

 
gyperion #:
러시아에서 일할 수 없는 이유는 무엇인가요? 별로 중요하지 않습니다. 문제는 기록이 없더라도 어떻게 업로드할 수 있느냐는 것입니다.

사용자 지정 문자를 통해 역사를 만드세요.

Importing High Quality Tick Data to MetaTrader 5
Importing High Quality Tick Data to MetaTrader 5
  • 2021.11.28
  • www.mql5.com
In order to vet a potential trading strategy, it is imperative to ensure that the results obtained f r om optimizations and strategy tests are a true reflection of the performance of your EA
 
Nauris Zukas #:

커스텀 캐릭터를 통해 나만의 스토리를 만들어 보세요.

흠, 부분적으로 성공했지만 중요한 것은 성공했다는 것입니다. 계속 파볼게요. 도와주셔서 감사합니다, 선생님. 이미 모든 것을 시도해 보았습니다.
 

안녕하세요 여러분, 저는 첫 번째 트레이딩 로봇(Expert Advisor)을 쓰고 싶습니다. 백테스트에서 완벽하게 작동하고 테스트 결과도 훌륭합니다. 그러나 계정 유형, 기호 속성, 다른 EA와의 간섭 등 고려해야 할 다양한 사항이 있습니다.

이를 위해 네 가지 변수가 있습니다:

bool isHedging; bool isFIFO; ulong positionTicket; double positionVolume;

처음 두 변수는 초기화 메서드에서 설정합니다:

if ((bool)AccountInfoInteger(ACCOUNT_HEDGE_ALLOWED)) isHedging = true;
else isHedging = false;
if ((bool)AccountInfoInteger(ACCOUNT_FIFO_CLOSE)) isFIFO = true;
else isFIFO = false;

포지션을 개시하려면 먼저 FIFO에 문제가 발생할 수 있는지 확인합니다(즉, 롱 포지션을 개시하려면 해당 종목에 대해 동일한 거래량을 가진 롱 포지션이 이미 있는지 또는 숏 포지션이 있는지 확인합니다. 그렇지 않으면 StopLoss 및 TakeProfit이 제대로 작동하지 않을 수 있기 때문입니다). 마지막으로 주문 전송 메서드를 사용하여 성공했는지 설정합니다:

positionVolume = tradeResult.volume;
positionTicket = tradeResult.deal;

스톱로스 또는 테이크프로핏이 실행된 경우, 포지션티켓 변수가 트랜잭션.포지션과 일치하는지 확인하여 내 (내부) EA 포지션이 청산되었는지 여부를 OnTradeTransaction 메서드를 통해 인식합니다.

네팅 계좌 포지션을 청산하려면 동일한 거래량의 숏 거래로 롱 포지션을 청산하면 됩니다.

헤징 계좌 포지션을 청산하려면 trade.PositionClose(positionTicket, 슬리피지)로 포지션을 청산합니다;

FIFO 헤징 계좌 포지션을 청산하려면 위에서 설명한 FIFO 계좌 진입 조건에 따라 포지션 방향(매수/매도)과 거래량이 일치하는 해당 종목의 가장 오래된 포지션을 청산합니다.

이제 제가 뭔가 근본적인 것을 간과한 것 같습니다. 위에서 설명한대로 (내부) EA 포지션을 청산할 때 네팅 계좌의 손절매 및 이익실현도 청산되도록 하려면 어떻게 해야 하나요? EA FIFO를 준수하는 더 우아하고 효율적인 방법이 있나요? FIFO가 아닌 헤징 계좌에서 MarketOrder로 EA에서 포지션만 개설하고 편집하지 않고 청산하려는 경우, tradeResule.deal 값이 항상 동일하므로 이 포지션도 trade.PositionClose(positionTicket, slippage)로 걱정 없이 청산할 수 있으며 여기서 positionTicket은 저장된 tradeResult.deal 값인가요?

며칠 동안 답변을 찾고 있지만 아직 모든 우려를 해결할 수있는 답변을 찾지 못했습니다. 누군가 도와주실 수 있으면 좋겠습니다.

 
Benjamin Fotteler #:

이제 제가 뭔가 근본적인 것을 간과한 것 같습니다. 위에서 설명한 대로 (내부) EA 포지션을 청산할 때 상계 계좌의 손절매 및 이익실현도 청산되도록 하려면 어떻게 해야 하나요? EA FIFO를 준수하는 더 우아하고 효율적인 방법이 있나요? FIFO가 아닌 헤징 계좌의 경우 EA에서 MarketOrder로 포지션만 개설하고 편집하지 않고 청산하려는 경우 tradeResule.deal 값이 항상 동일하므로 이 포지션도 아무런 걱정 없이 trade.PositionClose(positionTicket, slippage)로 청산할 수 있으며 여기서 positionTicket은 저장된 tradeResult.deal 값인가요?

며칠 동안 답변을 찾고 있지만 아직 모든 우려를 해결할 수있는 답변을 찾지 못했습니다. 누군가 도와주실 수 있으면 좋겠습니다.

네팅 계좌에는 심볼당 포지션이 하나만 있습니다. EA가 하나의 심볼만 거래하는 경우 PositionTotal()에서 읽을 수 있거나 더 간단한 PositionSelect()가 잘못되었거나 (= 없음) 추가 거래를 위해 선택됩니다.

Documentation on MQL5: Trade Functions / PositionSelect
Documentation on MQL5: Trade Functions / PositionSelect
  • www.mql5.com
PositionSelect - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

맞습니다. 팁 주셔서 감사합니다. 예를 들어 다른 EA가 동일한 심볼에 대해 0.5 랏의 포지션과 100 포인트의 손절매를 실행하고, 내 EA가 0.5의 "EA 내부 포지션"과 150 포인트의 손절매, 즉 기존 포지션을 1 랏으로 늘린 다음 "EA 내부 포지션"을 닫고, 즉 기존 포지션을 0.5 랏으로 줄이면 어떻게 해야 하나요? 그러면 나머지 0.5 랏의 스톱로스는 100 포인트 또는 150 포인트입니까? 아니면 이러한 경우 SendRequest를 통해 "내" 0.5 랏에 대해 독립적인 스톱로스를 설정하는 것은 네팅 모드에서 불가능합니까?

다른 EA의 손절매를 단순히 변경하고 싶지는 않지만 내 손절매를 포기하고 싶지도 않습니다. 해당 종목에 대한 오픈 포지션이 없을 때만 네팅 모드에서 "EA 내부 포지션"을 여는 것 외에 제 "문제"에 대한 효율적인 해결책이 있나요?

 
Benjamin Fotteler 심볼에 대해 0.5 랏의 포지션과 100 포인트의 손절매를 실행하고, 내 EA가 0.5의 "EA 내부 포지션"과 150 포인트의 손절매, 즉 기존 포지션을 1 랏으로 늘린 다음 "EA 내부 포지션"을 닫고, 즉 기존 포지션을 0.5 랏으로 줄이면 어떻게 해야 하나요? 그러면 나머지 0.5 랏의 스톱로스는 100 포인트 또는 150 포인트입니까? 아니면 이러한 경우 넷팅 모드에서 SendRequest를 통해 "내" 0.5 랏에 대해 독립적인 스톱로스를 설정할 수 없나요?

다른 EA의 손절매를 단순히 변경하고 싶지는 않지만 내 손절매를 포기하고 싶지도 않습니다. 해당 종목에 대한 오픈 포지션이 없을 때만 네팅 모드에서 "EA 내부 포지션"을 여는 것 외에 제 "문제"에 대한 효율적인 해결책이 있나요?

네팅된 계좌(!)에서 예를 들어 EURUSD의 첫 번째 EA가 0.01 랏을 매수(매수)하고 두 번째 EA가 0.05 랏을 매도(매도)하면 계좌에는 다시 0.04 매도 포지션이 하나만 남게 됩니다. 여기서 티켓 번호는 당분간 전혀 관련이 없습니다. 그리고 EURUSD의 유일한 포지션에 대한 두 번째 주문이 새로 설정되면 (그것의= SL 및 TP, 첫 번째 주문의 주문은 덮어 씁니다.

지정한 경우 SL과 TP가 하나씩 있는 포지션은 하나만 존재합니다.

사유: