1) UseMACD, wantLongs, wantShorts에 대한 논리를 변경했습니다. 이전에는 useMACD가 설정된 경우 wnatLongs 및 wantShorts 플래그에 관계없이 EA가 long 및 short를 사용했습니다. 이제 useMACD는 이 플래그를 재정의하지 않으므로 useMACD만 사용하거나 short만 사용할 수 있습니다.
2) limitEMA34가 설정된 경우 EMA의 잘못된 쪽에서 미결 주문이 없는지 확인하기 위해 추가 수표를 추가했습니다. 예전에는 주문이 EMA 위 또는 아래에 잘 배치되었지만 몇 시간 후에 EMA가 이동했기 때문에 EMA의 양쪽에 주문이 있었습니다.
3) OrderType()의 switch 문에 버그가 있는 것 같습니다. 그것이 무엇인지는 모르겠지만 정말 웃기게 행동합니다. 나는 단순히 switch 문을 제거하고 "if"로 대체했습니다... 마음에 들지 않지만 작동합니다!
MT4 친구들이 화나지 않도록 가끔 열려 있는 모든 주문을 삭제합니다.
백 테스팅에서 이 문제가 발생하지만 이것은 스크립트 문제가 아니라 MT4 백테스팅 문제입니다.
계속되면 알려주거나 문제를 보여주는 보고서를 보내주십시오...
감사합니다.
거대한
어드바이저가 제 코멘트 "GridEURUSD"로 그리드를 생성하고 있습니다. 이 댓글은 주문이 기다리는 동안 댓글 필드에 남아 있습니다. 주문이 활성화되면 댓글이 "활성화/자동"으로 변경됩니다. 결국 이 동작으로 인해 설명된 문제가 발생했음이 분명합니다.
나는 Alpari와 거래하고 있습니다. 데모 계정 에서 MT4를 지원합니다.
이 동작을 우회할 수 있는지 확인하겠습니다. 즉, 주문의 마법을 그리드에 대한 식별자로 사용하여 결과를 알려줍니다.
이것을 테스트하는 동안 그리드의 정리 스크립트도 수정했습니다. 미결 주문을 마감하는 기능도 추가했습니다. 불행히도 미결 주문을 마감하려고 하면 주문 잠김을 의미하는 오류 129가 발생합니다. 그러나 주어진 그리드에 대한 모든 보류 주문을 삭제합니다.
코리
그것이 작동하는지 알려주고 마술을 사용할 것입니다. 브로커가 그런 이상한 일을한다는 것을 몰랐기 때문에 !!
감사합니다.
거대한
주석 대신 OrderMagicNumber를 사용하도록 gridMaker를 변경했습니다. 나는 또한 코멘트 작성에 대해 약간의 수정을 했습니다.
결과는 다음과 같습니다.
안녕, 코리
이미 몇 가지 변경 사항을 직접 수행했기 때문에 변경 사항을 최신 버전에 통합했습니다.
저는 약간의 변형을 가했습니다. 현재 그리드를 활성 상태로 유지하기 위해 매직 OR 그리드 이름을 테스트했습니다...
내가 올바르게했는지 확인할 수 있습니까?
괜찮아 보인다. 하지만 매개변수 로 필요하지 않았기 때문에 GridName을 extern으로 정의해야 합니다.
인사, 코리
다음과 같이 라인을 변경할 수 있습니다.
if (MathAbs( OrderOpenPrice() - atRate ) < inRange) // 정확한 가격을 찾지 않고 가격 근접성(gridsize보다 작음)
에게
if (MathAbs( OrderOpenPrice() - atRate ) < (inRange*0.9)) // 정확한 가격을 찾지 않고 가격 근접성(gridsize보다 작음) - 부동 소수점 오류로 인해 0.9 추가
이렇게 하면 문제가 해결됩니다.
불편을 끼쳐 드려 죄송합니다...
거대한
이 문제가 이미 거기에 있습니까?
이전 MQL2에서 비슷한 것을 찾았습니다.
이 문제를 해결하는 정말 확실한 방법은 다음과 같이 하는 것입니다.
int intOOP = MathRound( OrdeOpenPrice() / 포인트 );
모든 이중 변수에 대해. 그러면 오류 없이 비교할 수 있는 모든 직선 int 변수가 있습니다.
명확하고 이해할 수 있도록 작성하는 것이 조금 더 많지만 결함은 적습니다.
관련하여,
코리
문안 인사,
거대한
1) UseMACD, wantLongs, wantShorts에 대한 논리를 변경했습니다. 이전에는 useMACD가 설정된 경우 wnatLongs 및 wantShorts 플래그에 관계없이 EA가 long 및 short를 사용했습니다. 이제 useMACD는 이 플래그를 재정의하지 않으므로 useMACD만 사용하거나 short만 사용할 수 있습니다.
2) limitEMA34가 설정된 경우 EMA의 잘못된 쪽에서 미결 주문이 없는지 확인하기 위해 추가 수표를 추가했습니다. 예전에는 주문이 EMA 위 또는 아래에 잘 배치되었지만 몇 시간 후에 EMA가 이동했기 때문에 EMA의 양쪽에 주문이 있었습니다.
3) OrderType()의 switch 문에 버그가 있는 것 같습니다. 그것이 무엇인지는 모르겠지만 정말 웃기게 행동합니다. 나는 단순히 switch 문을 제거하고 "if"로 대체했습니다... 마음에 들지 않지만 작동합니다!
4) EMA 기간 변수를 만들었습니다... 백테스팅 에 좋습니다.
누군가가 원하는 경우 몇 가지 동반자 스크립트도 있습니다.
1) 한 쌍의 채워지지 않은 미결 주문을 제거하기 위해
2) 모든 쌍에 대한 모든 미결 주문을 한 번에 제거
3) 모든 포지션을 청산하고 미결 주문을 제거합니다.
4) 열린 위치 및 기록에서 그리드 동작에 대한 간단한 통계를 얻습니다.
V1.08의 코드는 다음과 같습니다.