코딩하는 방법? - 페이지 308

 

안녕 믈라덴

stochastic에서 당신이 작성한 코드를 발견했습니다. 그러나 내 시스템에 연결하면 아무 일도 일어나지 않습니다. 어떤 기능을 하는지 확인해 볼까요?

http://www.forexmt4.com/mt_yahoo/Color%20Stochastic%20v1 [1].04.mq4

문안 인사

테런스

 

...

여기에 게시된 것 중 일부를 시도해 보십시오: https://www.mql5.com/en/forum/175297/page3

또는 여기 : https://www.mql5.com/en/forum/177239/page2

테스트 및 작동

tkuan77:
안녕 믈라덴

stochastic에서 당신이 작성한 코드를 발견했습니다. 그러나 내 시스템에 연결하면 아무 일도 일어나지 않습니다. 어떤 기능을 하는지 확인해 볼까요?

http://www.forexmt4.com/mt_yahoo/Color%20Stochastic%20v1 [1].04.mq4

문안 인사

테런스
 

이건 이상해.

자물쇠 문제에 대해 조금 더 자세히 살펴보았습니다. 분명히 내 UAC(사용자 계정 컨트롤 ) 설정과 관련이 있으므로 Windows7 제어판으로 이동하여 UAC를 완전히 끕니다. 다시 시작하면 파일에서 자물쇠가 사라진 것을 알았습니다. 나는 그것을 열었고 그것은 내가 이 포럼에 게시한 파일과 동일합니다. 실제로는 같은 파일임에도 불구하고 지난 몇 주 동안 작성한 코드와 완전히 다릅니다. 코딩 작업을 모두 잃어버린 줄 알았습니다. UAC를 다시 켜고 다시 시작했는데 자물쇠가 반환되었고 내가 작성한 코드가 다시 정상으로 돌아갔습니다.

하지만 코드를 컴파일하려고 하면 많은 오류가 발생합니다. 그러나 이 오류가 발생하는 오류는 이 코드에서 나온 것이 아니라 UAC를 끌 때 완전히 다른 코드입니다. 다른 코드에서만 wirtten된 변수를 선택하기 때문에 이것을 압니다.

새로운 EA를 열고 이 모든 코드를 수동으로 입력하고 저장해야 한다고 생각합니다.

 

...

Windows 7(보호 기능 포함)의 일반적인 문제입니다.

Windows 7에서 이를 피하는 가장 간단한 방법은 C와 다른 파티션에 메타트레이더를 설치하는 것이며 그런 종류의 문제는 없을 것입니다

crsnape@btinternet.com:
이건 이상해.

자물쇠 문제에 대해 조금 더 자세히 살펴보았습니다. 분명히 내 UAC(사용자 계정 컨트롤) 설정과 관련이 있으므로 Windows7 제어판으로 이동하여 UAC를 완전히 껐습니다. 다시 시작하면 파일에서 자물쇠가 사라진 것을 알았습니다. 나는 그것을 열었고 그것은 내가 이 포럼에 게시한 파일과 동일합니다. 실제로는 같은 파일임에도 불구하고 지난 몇 주 동안 작성한 코드와 완전히 다릅니다. 코딩 작업을 모두 잃어버린 줄 알았습니다. UAC를 다시 켜고 다시 시작했는데 자물쇠가 반환되었고 내가 작성한 코드가 다시 정상으로 돌아갔습니다.

하지만 코드를 컴파일하려고 하면 많은 오류가 발생합니다. 하지만 이 오류가 발생하는 오류는 이 코드에서 나온 것이 아니라 UAC를 끌 때 완전히 다른 코드입니다. 다른 코드에서만 잘못된 변수를 선택하기 때문에 이것을 압니다.

새로운 EA를 열고 이 모든 코드를 수동으로 입력하고 저장해야 한다고 생각합니다.
 

마침내 제대로 작동하는 EA를 달성했습니다. 제대로 작동합니다. 제 코드를 메모장에 복사하고 UAC를 전환한 다음 새 EA 파일에 붙여넣었습니다. 그리고 내 기능이 작동하는 이유를 알아냈습니다. int 변수를 normalizeddouble 안에 넣었습니다. 내가 이것을 할 수 없다는 것을 몰랐지만 지금은 그것을 알아내는 데 일주일이 걸렸습니다! :/

어쨌든, 나는 이것을 썼다:

if (VariableRisk == true) 위험 = GetRiskShort(LastOpenTicket, RiskShort);

if (VariableRisk == false) 위험 = StaticRisk;

그리고 이렇게 단축할 수 있는지 궁금하시죠?

if (VariableRisk == true)

{

위험 = GetRiskShort(LastOpenTicket, RiskShort);

그렇지 않으면 위험 = StaticRisk;

}

또한 나는 이것을 썼습니다.

//--- 롱일 때 이익실현 포지션 계산 함수

이중 GetTPPriceLong(이중 SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)

{

이중 TPPriceLong = 0;

if (AutoCalcTakeProfit == true)

{

새로 고침 비율();

TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong) * RiskRewardRatio);

Print("차익 포지션 계산에 성공했습니다.");

반환(TPPriceLong);

}

if (AutoCalcTakeProfit == false)

{

새로 고침 비율();

TPPriceLong = OrderOpenPrice() + (정적TP * 0.0001);

Print("정적 이익실현 포지션이 성공적으로 계산되었습니다.");

반환(TPPriceLong);

}

}

그리고 이렇게 단축할 수 있는지 궁금하시죠?

//--- 롱일 때 이익실현 포지션 계산 함수

이중 GetTPPriceLong(이중 SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)

{

이중 TPPriceLong = 0;

새로 고침 비율();

if (AutoCalcTakeProfit == true)

{

TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong) * RiskRewardRatio);

Print("차익 포지션 계산에 성공했습니다.");

그렇지 않으면 TPPriceLong = OrderOpenPrice() + (정적TP * 0.0001);

Print("정적 이익실현 포지션이 성공적으로 계산되었습니다.");

반환(TPPriceLong);

}

그리고 마지막 질문입니다. 제 EA에 좀 더 유연성을 제공하기 위해 제 시간 프레임을 외부 변수로 정의하고 싶습니다. 내 신호 차트는 D1, 내 트리거 차트는 H4입니다. 따라서 외부 변수에서 다음을 수행할 수 있습니다.

외부 정수 SignalChart = PERIOD_D1;

외부 정수 TriggerChart = PERIOD_H4;

그런 다음 예를 들어 다음을 수행하여 참조하십시오.

SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

 

이 부분에 대해:

그런 다음 다음과 같이 참조하십시오. SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

예, 그것은 100% 올바른 사용 방법입니다(닫힌 막대를 사용하고(이 예에서 시프트가 1로 설정됨). 테스트에서 닫힌 막대를 사용하면 다중 시간 프레임에서 열린 막대를 사용하는 일반적인 함정)

crsnape@btinternet.com:
마침내 제대로 작동하는 EA를 달성했습니다. 제대로 작동합니다. 제 코드를 메모장에 복사하고 UAC를 전환한 다음 새 EA 파일에 붙여넣었습니다. 그리고 내 기능이 작동하는 이유를 알아냈습니다. int 변수를 normalizeddouble 안에 넣었습니다. 내가 이것을 할 수 없다는 것을 몰랐지만 지금은 그것을 알아내는 데 일주일이 걸렸습니다! :/

어쨌든, 나는 이것을 썼다:

if (VariableRisk == true) 위험 = GetRiskShort(LastOpenTicket, RiskShort);

if (VariableRisk == false) 위험 = StaticRisk;

그리고 이렇게 단축할 수 있는지 궁금하시죠?

if (VariableRisk == true)

{

위험 = GetRiskShort(LastOpenTicket, RiskShort);

그렇지 않으면 위험 = StaticRisk;

}

또한 나는 이것을 썼습니다.

//--- 롱일 때 이익실현 포지션 계산 함수

이중 GetTPPriceLong(이중 SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)

{

이중 TPPriceLong = 0;

if (AutoCalcTakeProfit == true)

{

새로 고침 비율();

TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong) * RiskRewardRatio);

Print("차익 포지션 계산에 성공했습니다.");

반환(TPPriceLong);

}

if (AutoCalcTakeProfit == false)

{

새로 고침 비율();

TPPriceLong = OrderOpenPrice() + (정적TP * 0.0001);

Print("정적 이익실현 포지션이 성공적으로 계산되었습니다.");

반환(TPPriceLong);

}

}

그리고 이렇게 단축할 수 있는지 궁금하시죠?

//--- 롱일 때 이익실현 포지션 계산 함수

이중 GetTPPriceLong(이중 SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)

{

이중 TPPriceLong = 0;

새로 고침 비율();

if (AutoCalcTakeProfit == true)

{

TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong) * RiskRewardRatio);

Print("차익 포지션 계산에 성공했습니다.");

그렇지 않으면 TPPriceLong = OrderOpenPrice() + (정적TP * 0.0001);

Print("정적 이익실현 포지션이 성공적으로 계산되었습니다.");

반환(TPPriceLong);

}

그리고 마지막 질문입니다. 제 EA에 좀 더 유연성을 제공하기 위해 제 시간 프레임을 외부 변수로 정의하고 싶습니다. 내 신호 차트는 D1, 내 트리거 차트는 H4입니다. 따라서 외부 변수에서 다음을 수행할 수 있습니다.

외부 정수 SignalChart = PERIOD_D1;

외부 정수 TriggerChart = PERIOD_H4;

그런 다음 예를 들어 다음을 수행하여 참조하십시오.

SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
 

안녕하세요, 오류 코드 4059가 표시됩니다.

[TD]테스트 모드에서는 기능이 허용되지 않습니다.

ERR_FUNC_NOT_ALLOWED_IN_TESTING[/TD]

4059

검색을 해보았지만 그 의미에 대한 추가 정보를 찾을 수 없습니까?

 

이 포물선 sar 표시기에 다음 코드를 추가하는 것을 도울 수 있습니까?

Pip:
Mladen님, 감사합니다.

나는 이해하기 위해 당신의 포스트를 다시 읽을 것입니다. 솔직히 나는 그것을 읽는 데 약간 길을 잃었지만 아마도 내 무지가 작용했을 가능성이 큽니다. 질문이 있으면 게시하겠습니다.

고마워 친구.

건배,

친구에게,

이 파라볼릭 SAR 경보 parabolic_alert_mod.mq4 표시기에 다음 코드를 추가하는 데 도움을 줄 수 있습니까?

저는 EA를 찾고 있지 않습니다. 가능하면 최소한 SHIFT 옵션을 표시기에 추가하십시오.

외부 이중 TakeProfit = 50;

extern 이중 랏 = 0.1;

외부 이중 TrailingStop = 30;

외부 이중 SAR_Step = 0.02;

외부 이중 SAR_Maximum = 0.2;

외부 이중 Shift=1;

파일:
 

...

조넬슨

TakeProfit, Lots 및 TrailingStop은 포물선 sar가 계산되는 방식과 아무 관련이 없습니다(해당 매개변수는 작업에서 sar를 사용하는 EA에서 분명히 가져옴). 따라서 EA를 찾고 있지 않다면 의미 있는 방식으로 해당 매개변수를 추가할 수 없습니다.

또한. 매개변수의 이동은 테스트되는 막대를 참조합니다(포물선형 SAR는 이동하지 않으므로 일반적으로 평균이 이동될 수 있음). 이러한 매개변수는 아마도 내장 sar에 대한 호출을 의미하며 내장 sar는 다음 형식을 갖습니다.

이중 iSAR([/TD] [TD] 문자열 기호, int 시간 프레임, 이중 단계, 이중 최대값, int 시프트)

이 경우 Shift 1은 포물선 sar의 첫 번째 닫힌 막대 값을 테스트합니다.

joelnelson:
친구에게,

이 파라볼릭 SAR 경보 parabolic_alert_mod.mq4 표시기에 다음 코드를 추가하는 데 도움을 줄 수 있습니까?

저는 EA를 찾고 있지 않습니다. 가능하면 최소한 SHIFT 옵션을 표시기에 추가하십시오.

외부 이중 TakeProfit = 50;

extern 이중 랏 = 0.1;

외부 이중 TrailingStop = 30;

외부 이중 SAR_Step = 0.02;

외부 이중 SAR_Maximum = 0.2;

외부 이중 Shift=1;
 

...

해당 오류는 일부 함수에서 반환될 수 있습니다.

테스트에서 해당 오류를 유발할 수 있는 기능은 다음과 같습니다.

시장 정보

메세지 박스

FTP 보내기

메일을 보내다

WindowIsVisible

창찾기

창 핸들

따라서 위의 함수 중 일부를 호출하면 해당 오류가 발생했습니다.

crsnape@btinternet.com:
안녕하세요, 오류 코드 4059가 표시됩니다. [TD]테스트 모드에서는 기능이 허용되지 않습니다.
ERR_FUNC_NOT_ALLOWED_IN_TESTING[/TD] 4059
검색을 해보았지만 그 의미에 대한 추가 정보를 찾을 수 없습니까?