종료 문제, 도와주세요 - 페이지 3

 

여러분, 안녕하세요
모두의 도움으로 증상이 바뀌었습니다.
문 ....if(OrderSelect(index, SELECT_BY_TICKET)가 ..SELECT_BY_POS로 변경되었습니다. 코드가 정확하지 않습니다. 프로그램이 판매되고 한 핍 후에 즉시 닫힙니다. 결과는 SL 또는 TP. 그래서 온전성 검사 를 위해 SL과 TP(500)를 OrderSend에 삽입했습니다. 변경 사항 없음. 모든 실행은 1 또는 2핍 이내입니다. 이것은 흥미로워지고 있습니다. 이유는 아직 확실하지 않습니다! 천 개가 넘는 실행이 발생합니다. 한 4시간 바에서.
나는 조사할 것이지만 어떤 도움이라도 환영할 것입니다.

 

안녕하세요 아이스
나는 당신이 나보다 먼저 게시 한 것을 발견하기 위해 게시했습니다. 무슨 일을 하려는 겁니까?

 

다시 안녕
더 나은 논리 이해를 위해 프로그램 스타일을 약간 바꾸려고 합니다.
나는 당신을 기쁘게하는 프로그램을 원합니다

 
Ais wrote >>

다시 안녕
더 나은 논리 이해를 위해 프로그램 스타일을 약간 바꾸려고 합니다.
나는 당신을 기쁘게하는 프로그램을 원합니다

안녕하세요 아이스
당신은 매우 친절합니다. 고맙습니다. 당신의 시간은 소중합니다. 나는 확실히 만족할 것입니다.
마지막 게시물 이후 문제의 일부를 잠금 해제했습니다. 프로그램이 닫히고 내가 원하는 대로 돌아오지 않습니다.
클로징 문제의 핵심은 ATR을 제대로 초기화하지 못했다는 사실입니다.
매도 포지션을 청산하기 전과 후를 보여드리겠습니다.

그런 다음....if (OrderClosePrice() >= OrderOpenPrice() + (ATR*2)
지금.....if (OrderClosePrice() >= OrderOpenPrice() + (40*Point)...이것은 매도 포지션을 닫을 것입니다

이것은 프로그램이 작동하도록 의도한 방식이 아닙니다. 그러나 테스트 목적으로 새 코드를 삽입했습니다.
문제가 ATR 내에 있음을 증명하는 데 도움이 됩니다. ATR을 제대로 초기화하지 않았기 때문일 것입니다.
추가 테스트를 위해 ATR이라는 새 변수를 만드는 대신 iATR을 삽입하려고 했습니다.
코딩을 시도한 방법을 보여 드리겠습니다.

if (OrderClosePrice() >= OrderOpenPrice() + ((iATR(NULL,0,20,1)*2)*포인트)

이것도 작동하지 않았습니다.
다시 감사합니다.
당신의 연락을 기다리고 있습니다.
 

안녕하세요 아이스
제안해 주셔서 감사합니다. 365(연간) 대 my_method를 사용한다는 아이디어는 잘 받아들여졌습니다. 더 짧은 기간으로 테스트 목적
편의를 위해서만 해야 합니다.
나는 배울 것이 훨씬 더 많다. 마침내 ATR을 삽입하는 방법을 알아냈지만 곱할 수 없습니다. 예는 다음과 같습니다.

이 시점에서 이것이 내가 가진 것입니다 ......if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1))) // =하드 스톱
이것은 작동하지만 내가 원하는 것이 아닙니다.
나는 ...........if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1) )*2 ),
이것은 작동하지 않습니다. 내가 염두에 두고 있는 것처럼 그것이 당신과 다른 사람들에게 시연되기를 바랍니다. iATR에 2를 곱합니다.
이에 대한 제안 사항이 있습니까??? 이 문제가 해결되면 진입 위치에 대한 ATR도 절반으로 줄일 수 있습니다.

다른 방법을 시도했지만 작동하지 않았습니다...if(OrderClose - OrderOpenPrice - (iATR(NULL,0,20,1)*2)) <= 0)

시간 내주셔서 다시 한번 감사드립니다. 나는 지혜를 얻기 위해 당신의 문을 두드리는 사람들이 많다고 확신합니다.
건배
 

안녕하세요 허클베리입니다.
나는 오프닝 기능만 하기 위해 떠났다.
그리고 지금 나는 이익 고정의 논리를 이해하려고 노력하고 있습니다.
OrderSend()에 스톱 및 테이크가 누락된 경우 정상이지만 닫기 명령은 손실이 발생한 경우에만 실행됩니다.
그리고 새로운 프로그램 스타일( https://www.mql5.com/en/forum/124521/page2 )의 이해도에 대한 귀하의 의견을 알고 싶습니다.
지금은 안녕,
:)

 

안녕하세요 아이스
당신의 응답을 주셔서 감사합니다.
StopLos 또는 TakeProfit이 없는 이유를 설명하겠습니다.
OrderSend에 SL 및 TP를 삽입하지 않으면 SL이 표현식 아래의 다른 위치에 있습니다....

if (OrderClose >= OrderOpenPrice() + (iATR(NULL,0,20,1)))

이것이 작동하더라도 정확히 적절한 SL은 아닙니다. 예제는 내 마지막 게시물에 나열되어 있습니다....

if (OrderClose >= OrderOpenPrice + (iATR(NULL,0,20,1))*2)

위의 표현에서... iATR의 이동은 한 막대를 다음 막대로 변경할 수 있습니다. SL 및 TP와 함께 OrderSend를 사용하여 교대 근무를 이용할 수 없습니다.

기능 은 현재 작동하므로 기능을 조정하는 방법을 배워야 합니다.
관찰해 주시고 질문해 주셔서 감사합니다.
건배

 

SL, TP 없이 작업해도 OK.
그러나 우리는 여전히 이익의 경우 주문을 닫는 조건이 필요합니다.
새로워진 기능 "iSignalClose", https://www.mql5.com/en/forum/124521/page2 를 살펴보십시오 .
지금은 물론 가상 SL의 조건입니다.
그러나 여전히 가상 TP의 조건이 필요합니다.
당신의 응답을 기다리는.
:)

 

SL 조건과 유사하지만 다른 요소를 사용하여 가상 TP에 삽입했습니다.
미래에 쉽고 convinient 이러한 매개 변수를 최적화할 것입니다.

최적화하려면 원하는 매개변수를 "extern"으로 선언하십시오.
예시:

 ////////////////////////////////////////////////////////////////////<         3>
// < 1.1. Data : Input >                                          //<          >
//                                                                //<          >
// < 1.1. Input             7 =       4 i       3 d       - s   > //<          >
// <      1. Strategy       4 =       2 i       2 d       - s  /> //<          >
// <      2. Trading        3 =       2 i       1 d       - s  /> //<          >
// </1.1. Input             7 =       4 i       3 d       - s   > //<          >
//                                                                //<          >
// <      1. Strategy 4 >=========================================//<          >
                    int       iBasePeriod       = 20            ; //<          >
                    int       iBaseBar          = 1             ; //<          >
extern              double    dFactorTP         = 2.0           ; //<          >
extern              double    dFactorSL         = 2.0           ; //<          >
// </     1. Strategy 4 >=========================================//<          >
//                                                                //<          >
// <      2. Trading 3 >==========================================//<          >
                    int       iSlippage         = 1             ; //<          >
                    int       iMagic            = 0             ; //<          >
                    double    dLots             = 0.1           ; //<          >
// </     2. Trading 3 >==========================================//<          >
//                                                                //<          >
//                                                                //<          >
//                                                                //<          >
// </1.1. Data : Input >                                          //<          >
     

최적화 후 원래 매개변수 값을 최적화된 값으로 변경하고 "extern" 선언을 삭제합니다.

"ACB6"이라고도 하는 "A System: Championship 2008 Final Edit" 최적화 샘플, https://www.mql5.com/en/forum/112633/page7#276861 :
파일:
1e.txt  46 kb
1r.txt  49 kb