Nickolay72 : 주문건수는 원칙적으로 부차적인 목표인데 어제까지는 주문을 한번에 하나씩 열었는데 주문이 있는동안 다음주문이 안열렸네요 그리고 어떻게 하면 어드바이저가 주문에 따라 강제로 오픈 오더를 열게 하는건가요? , 이전 막대가 채널 위(아래) 열렸을 때 조건에 따라 열리지 않는 채널?
if (CountTrades()== 0 ) CheckForOpen();
else
{
if (CountTrades()<max_trades) CheckForOpen();
}
이 코드 조각을 분석하면 그에 따라 CountTrades() 함수가 0을 반환하면 조건 if (CountTrades()==0) CheckForOpen(); CheckForOpen() 함수가 호출됩니다. 다음 틱에서 주문이 열리면CountTrades() 함수는 값 1을 반환하고 else 조건이 실행됩니다.
....
else
{
if (CountTrades()<max_trades) CheckForOpen();
}
CountTrades()<max_trades로 판명되면 CheckForOpen() 함수가 다시 실행됩니다. 코드로 판단하면 max_trades 변수의 값 은 3입니다. 따라서 4개의 주문이 열려 있습니다.
EA가 주문을 올바르게 열지 않으면 CheckForOpen() 함수에서 위치를 열어야 하는 조건을 지정하는 논리를 확인하십시오. 그리고 (CurrTime < EaStartTime || CurrTime >= EaEndTime) 어드바이저의 시간 조건도 확인하십시오. 내가 너라면 (TimeHour(TimeCurrent()) = 시작 시간 && TimeMinute(TimeCurrent()) = 시작 분 ) 함수를 사용합니다. 작업 시작 시간과 분은 int 또는 uint 유형의 변수에 설정됩니다.
EA가 주문을 올바르게 열지 않으면 CheckForOpen() 함수에서 위치를 열어야 하는 조건을 지정하는 논리를 확인하십시오. 그리고 (CurrTime < EaStartTime || CurrTime >= EaEndTime) 어드바이저의 시간 조건도 확인하십시오. 내가 너라면 (TimeHour(TimeCurrent()) = 시작 시간 && TimeMinute(TimeCurrent()) = 시작 분 ) 함수를 사용합니다. 작업 시작 시간과 분은 int 또는 uint 유형의 변수에 설정됩니다.
3개의 주문을 열었지만 계획한 대로가 아닙니다. 최대 3개의 주문을 원했지만 새 막대마다 하나의 주문을 원했습니다. 여러 막대가 연속으로 긍정적인 신호를 보내는 경우가 있습니다.
주문건수는 원칙적으로 부차적인 목표인데 어제까지는 주문을 한번에 하나씩 열었는데 주문이 있는동안 다음주문이 안열렸네요 그리고 어떻게 하면 어드바이저가 주문에 따라 강제로 오픈 오더를 열게 하는건가요? , 이전 막대가 채널 위(아래) 열렸을 때 조건에 따라 열리지 않는 채널?
이 코드 조각을 분석하면 그에 따라 CountTrades() 함수가 0을 반환하면 조건 if (CountTrades()==0) CheckForOpen(); CheckForOpen() 함수가 호출됩니다. 다음 틱에서 주문이 열리면 CountTrades() 함수는 값 1을 반환하고 else 조건이 실행됩니다.
CountTrades()<max_trades로 판명되면 CheckForOpen() 함수가 다시 실행됩니다. 코드로 판단하면 max_trades 변수의 값 은 3입니다. 따라서 4개의 주문이 열려 있습니다.
EA가 주문을 올바르게 열지 않으면 CheckForOpen() 함수에서 위치를 열어야 하는 조건을 지정하는 논리를 확인하십시오. 그리고 (CurrTime < EaStartTime || CurrTime >= EaEndTime) 어드바이저의 시간 조건도 확인하십시오. 내가 너라면 (TimeHour(TimeCurrent()) = 시작 시간 && TimeMinute(TimeCurrent()) = 시작 분 ) 함수를 사용합니다. 작업 시작 시간과 분은 int 또는 uint 유형의 변수에 설정됩니다.
열기 막대 번호 1이 채널 위/아래에 있는 경우.
따라서 4개의 주문이 열려 있습니다.
EA가 주문을 올바르게 열지 않으면 CheckForOpen() 함수에서 위치를 열어야 하는 조건을 지정하는 논리를 확인하십시오. 그리고 (CurrTime < EaStartTime || CurrTime >= EaEndTime) 어드바이저의 시간 조건도 확인하십시오. 내가 너라면 (TimeHour(TimeCurrent()) = 시작 시간 && TimeMinute(TimeCurrent()) = 시작 분 ) 함수를 사용합니다. 작업 시작 시간과 분은 int 또는 uint 유형의 변수에 설정됩니다.
3개의 주문을 열었지만 계획한 대로가 아닙니다. 최대 3개의 주문을 원했지만 새 막대마다 하나의 주문을 원했습니다. 여러 막대가 연속으로 긍정적인 신호를 보내는 경우가 있습니다.
그리고 시간에 문제가 없으며 엄격하게 할당 된 시간에 작동합니다.
3개의 주문을 열었지만 계획한 대로가 아닙니다. 최대 3개의 주문을 원했지만 새 막대마다 하나의 주문을 원했습니다. 여러 막대가 연속으로 긍정적인 신호를 보내는 경우가 있습니다.
그리고 시간에 문제가 없으며 엄격하게 할당 된 시간에 작동합니다.
2016.01.13_05:14 모스크바 시간. 안녕하세요 Karputov 씨! MQL4로 작성했습니다.
.mq4 파일, .ex4 파일이 있습니다. 그러나 전략 테스터에서는 작동하지 않습니다. 궁극적인
제 목표는 MT4용 Expert Advisor를 작성하는 것이었습니다. MQL5에서 나는 .mq5를 얻었고
.ex5 파일. 그리고 .ex5 파일은 거래를 열었습니다. 네 번째 버전에는 다음과 차이점이 있습니다.
다섯째, 나는 여전히 MQL 언어에 정통하지 않으므로 잘 작동하지 않습니다.
이제 나는 무엇이 잘못되었는지 많이 이해하기 시작하지 않았고 테스터의 로그 파일이 저장되었습니다. 나
테스터가 작성한 내용을 번역해 보겠습니다. 그 동안 내가 당신에게 묻습니다, 당신은 나에게 말할 수 있습니까?
코드에서 무엇이 잘못 되었습니까? 당신이 대답하는 동안, 나는 나 자신을 시험할 것입니다
알아내다.
네 번째 버전의 편집기에서 철자를 발견하고 놀랐습니다.
그가 무엇을 쓸 것인지에 대한 조언자. 그러나 나는 그것을 쓰지 않았다. 나는 동봉한다
테스터 로그 파일 및 스크린샷. 05:30 모스크바 시간.
2016.01.13_05:14 모스크바 시간. 안녕하세요 Karputov 씨! MQL4로 작성했습니다.
.mq4 파일, .ex4 파일이 있습니다. 그러나 전략 테스터에서는 작동하지 않습니다.
오류 설명은 어디에서 찾을 수 있습니까?
나는 컴파일러가 무엇을 좋아하지 않는지 이해할 수 없습니다. 왜 나에게 경고합니까?
가능한 오류에 대한 연산자 우선 순위를 확인하십시오. 우선 순위를 명확히 하기 위해 괄호를 사용
if(Low[X]>PriceBuy && High[X]>PriceBuy ||
Low[X]<PriceBuy && High[X]<PriceBuy)
calcBarX++;
그리고 여기
표현은 효과가 없다
for( calc_day;calc_day>0; calc_day--)
{
if(iLow(Symbol(),TF_3Day,calc_day)<iLow(Symbol(),TF_3Day,calc_day+1)) calc_day_OK++;
else break;
}
오류 설명은 어디에서 찾을 수 있습니까?
나는 컴파일러가 무엇을 좋아하지 않는지 이해할 수 없습니다. 왜 나에게 경고합니까?
실제로 컴파일러는 오류 텍스트 외에 오류가 발생한 코드의 줄 번호와 줄의 위치도 보고합니다.