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

 

과잉 거래 방지

모두들 안녕,

MACD 크로스를 사용하여 H4 차트에서 모든 틱 방법을 사용하여 EA를 테스트하여 주문을 시작했으며 전략 테스터 는 처음 몇 분 동안 약 200개의 포지션을 열었습니다. 내 시스템에서는 iMACD(... PRICE_CLOSE...)를 사용하여 촛불이 닫히기를 기다리고 MACDMainCurrent & MACDSymbolCurrent에 대해 0으로 상쇄하기 때문에 내 시스템에서는 4시간마다 1개 이상의 거래를 해서는 안됩니다 MACDMainPrevious 및 MACDSymbolPrevious의 경우 1입니다.

내 전역 변수는 다음과 같습니다.

문자열 hasOrderedGV = "has_ordered_GV";

문자열 barGV = "bars_GV";

EA가 롱 또는 숏 포지션을 확인하기 전에 이 코드를 삽입했습니다.

//--- 주문이 이미 H4 시간 블록에 배치되었는지 확인

if ((GlobalVariableGet(barsGV) == 0) || (GlobalVariableGet(barsGV) < 막대))

{

GlobalVariableSet(hasOrderedGV, false);

글로벌변수셋(barsGV,바);

}

//--- 롱포지션(BUY) 가능성 확인

if(GlobalVariableGet(hasOrderedGV, false))

{

if ... (여기서 내가 실제로 다른 지표들 사이에서 MACD 교차를 확인합니다).

그런 다음 주문이 성공적으로 열린 경우:

if (티켓 > 0)

{

GlobalVariableSet(hasOrderedGV,true);

{

if (OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES))

OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), GetTPPriceShort(SLPriceShort, RiskRewardRatio), OrderExpiration(), 녹색);

내가 이 일에 대해 올바른 방향으로 가고 있는지 누군가 나에게 말해 줄 수 있습니까? 더 효율적이거나 정확한 방법이 있었는지 여부를 알 수 없었습니까? 감사해요.

 

...

EA가 이미 개설한 주문의 수를 간단히 계산하고 이미 주문을 연 경우 새 주문을 개설하지 않는 이유는 무엇입니까?

단순한 아이디어(EA가 개설한 주문 수가 제한되는 일반적이고 가장 간단한 방법)

crsnape@btinternet.com:
모두들 안녕,

MACD 크로스를 사용하여 H4 차트에서 모든 틱 방법을 사용하여 EA를 테스트하여 주문을 시작했으며 전략 테스터는 처음 몇 분 동안 약 200개의 포지션을 열었습니다. 내 시스템에서는 iMACD(... PRICE_CLOSE...)를 사용하여 촛불이 닫히기를 기다리고 MACDMainCurrent & MACDSymbolCurrent에 대해 0으로 상쇄하기 때문에 내 시스템에서는 4시간마다 1개 이상의 거래를 해서는 안됩니다 MACDMainPrevious 및 MACDSymbolPrevious의 경우 1입니다.

내 전역 변수는 다음과 같습니다.

문자열 hasOrderedGV = "has_ordered_GV";

문자열 barGV = "bars_GV";

EA가 롱 또는 숏 포지션을 확인하기 전에 이 코드를 삽입했습니다.

//--- 주문이 이미 H4 시간 블록에 배치되었는지 확인

if ((GlobalVariableGet(barsGV) == 0) || (GlobalVariableGet(barsGV) < 막대))

{

GlobalVariableSet(hasOrderedGV, false);

GlobalVariableSet(barsGV, 막대);

}

//--- 롱포지션(BUY) 가능성 확인

if(GlobalVariableGet(hasOrderedGV, false))

{

if ... (여기서 내가 실제로 다른 지표들 사이에서 MACD 교차를 확인합니다).

그런 다음 주문이 성공적으로 열린 경우:

if (티켓 > 0)

{

GlobalVariableSet(hasOrderedGV,true);

{

if (OrderSelect(티켓, SELECT_BY_TICKET, MODE_TRADES))

OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), GetTPPriceShort(SLPriceShort, RiskRewardRatio), OrderExpiration(), 녹색);

내가 이 문제에 대해 올바른 방향으로 가고 있는지 누군가 나에게 말해 줄 수 있습니까? 더 효율적이거나 정확한 방법이 있었는지 여부를 알 수 없었습니까? 감사해요.
 

내 EA에는 일반적으로 한 번에 여러 직책이 열려 있기 때문입니다. 그래서 나는 말할 수 없었다.

if (CountedOrders > 5)

부서지다;

또는 어떤 시점에 얼마나 많은 포지션이 열릴지 모르기 때문입니다. 내가 생각하는 시간과 연결해야 합니다.

 

이 EA를 5자리 mt4 계정에 연결합니다. 하지만 거래가 열리지 않습니다....

도와주세요

파일:
dipu_2.mq4  5 kb
 

Pls는 3단계로 손절매를 이동하려면 disea를 편집해야 합니다.

이 EA에는 이미 손익분기점 기능이 있지만 이 EA가 내

내 이익에 도달하면 첫 번째 손익분기점에서 또 다른 +20핍까지 손절매

+27pips 및 +50pips에 도달하면 +40pips로 다시 이동하고 짝수

가능하면 더.

파일:
 

안녕 믈라덴

감사합니다! 나는 이미 그것을 해결하는 데 성공했다.

그건 그렇고, iStochastic 에서 MODE와 SHIFT가 어떤 역할 을 하는지 아시나요? 아니면 더 자세한 정보를 제공하는 곳이 있나요? mql4 웹 사이트에서 문서를 읽고 있지만 아직 이해가 되지 않습니다. 그들이 제공하는 설명은 너무 짧습니다.

iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 현재 + 0);

iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_MAIN, 0);

iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 현재 + 1);

현재 + 0 등은 무엇을합니까?

감사합니다

테런스

mladen:
테란스 그것은 기능입니다. EA 끝에 게시하고 현재 바에서 주문이 이미 열려 있는지 확인하는 것이 적절하다고 생각되는 곳에 전화를 겁니다.
 

안녕하세요 누군가 내가 여기서 잘못 가고있는 부분을 말해 줄 수 있습니까? 오류 코드 ')'가 표시됩니다. 빨간색으로 강조 표시된 줄에 잘못된 매개변수 개수가 표시되지만 모든 매개변수가 추가됩니다...

if ((GlobalVariableGet(barsGV) == 0) || (GlobalVariableGet(barsGV) < 막대))

{

GlobalVariableSet(hasOrderedGV, false);

GlobalVariableSet(barsGV,Bars);

}

//--- 롱포지션(BUY) 가능성 확인

if (GlobalVariableGet (hasOrderedGV, false)) 감사합니다

 

...

테런스

MODE_MAIN은 확률적 선의 값을 읽고 있음을 의미합니다. MODE_SIGNAL은 확률적 신호 라인의 값을 읽고 있음을 의미합니다.

SHIFT 현재 : 모든 표시기(사용자 정의 표시기 포함)에 대해 동일합니다. 예를 들어: SHIFT=0은 현재 막대 값을 의미하고 SHIFT=1은 첫 번째 닫힌 막대 값을 의미하는 식입니다...

tkuan77:
안녕 믈라덴

감사합니다! 나는 이미 그것을 해결하는 데 성공했다.

그건 그렇고, iStochastic 에서 MODE와 SHIFT가 어떤 역할을 하는지 아시나요? 아니면 더 자세한 정보를 제공하는 곳이 있나요? mql4 웹 사이트에서 문서를 읽고 있지만 아직 이해가 되지 않습니다. 그들이 제공하는 설명은 너무 짧습니다.

iStochastic(NULL, 0, 3, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 현재 + 0);

iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_MAIN, 0);

iStochastic(NULL, 0, 5, 3, 3, MODE_SMMA, 0, MODE_SIGNAL, 현재 + 1);

현재 + 0 등은 무엇을합니까?

감사합니다

테런스
 

...

오류는 GlobalVariableGet() 에 하나의 매개변수(변수 이름)만 있다는 것입니다. 두 번째 매개변수는 필요하지 않습니다( 함수 호출에 있는 " 거짓 ").

crsnape@btinternet.com:
안녕하세요 누군가 내가 여기서 잘못 가고있는 부분을 말해 줄 수 있습니까? 오류 코드 ')'가 표시됩니다. 빨간색으로 강조 표시된 줄에 잘못된 매개변수 개수가 표시되지만 모든 매개변수가 추가됩니다...

if ((GlobalVariableGet(barsGV) == 0) || (GlobalVariableGet(barsGV) < 막대))

{

GlobalVariableSet(hasOrderedGV, false);

GlobalVariableSet(barsGV,Bars);

}

//--- 롱포지션(BUY) 가능성 확인

if (GlobalVariableGet (hasOrderedGV, false)) 감사합니다
 

나는 이것으로 코드를 변경했고 적어도 오류는 없었습니다. 괜찮습니까?

if (GlobalVariableGet(hasOrderedGV) == false)