유니버설 MA 크로스 EA - 페이지 106

 
BlackCoq:
문제는 내가 완벽하게 작동하는 martingale 시스템에 대해 매우 유사한 코드를 사용한다는 것입니다. martingale에서도 작동하므로 지금도 작동해야 하지 않습니까?

다음과 같이 사용해 보세요.

double GetLastPL()

{

double TempLastOrderProfit = 0;

datetime CloseTime = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

{

CloseTime = OrderCloseTime();

TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission();

}

}

return(TempLastOrderProfit);

}

그것은 당신에게 마지막 주문의 정확한 이익 (또는 손실) 금액을 반환합니다

 
mladen:
다음과 같이 사용해 보십시오. 마지막 주문의 정확한 이익(또는 손실) 금액을 반환합니다.

도와줘서 고마워, 믈라덴. 오류 없이 컴파일될 때까지 코드를 약간 수정했지만 EA는 여전히 중지되고 손실 후에 반전됩니다. 이것은 내가 지금 사용하고 있는 정확한 코드입니다:

{

이중 TempLastOrderProfit = 0;

날짜/시간 CloseTime = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

{

닫기 시간 = 주문 닫기 시간();

}

}

if(StopAndReverse==true && subTotalTrade()>0 && OrderProfit()>0)

{

if((LastTrade=="구매" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true))

{

subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("중지 및 반전!");

}

}

}

double GetLastPL() 다음 오류가 발생합니다. '(' - 예기치 않은 함수 정의.

 
BlackCoq:
도와줘서 고마워, 믈라덴. 오류 없이 컴파일될 때까지 코드를 약간 수정했지만 EA는 여전히 중지되고 손실 후에 반전됩니다. 이것은 내가 지금 사용하고 있는 정확한 코드입니다. double GetLastPL() 다음 오류가 발생합니다. '(' - 예기치 않은 함수 정의.

블랙콕

OrderProfit()과 같은 함수는 마감된 주문 목록에서 현재 선택한 주문 의 이익을 반환하기 때문에 루프 내에서 모든 논리적 비교를 수행해야 합니다. 주 루프 내에 있지 않은 경우(for(int i=OrdersHistoryTotal()-1;i>=0;i--)) 마지막으로 선택한 주문만 테스트되며 이것이 마지막 주문임을 의미하지는 않습니다. (metaquotes는 문서에서 닫힌(또는 아직 열려 있는) 주문 목록의 주문이 특정 순서일 필요가 없다고 명시적으로 명시합니다. 주문을 확인하는 것은 코더의 책임입니다.

 
mladen:
BlackCoq OrderProfit()과 같은 함수는 마감된 주문 목록에서 현재 선택된 주문의 이익을 반환하기 때문에 루프 내에서 모든 논리적 비교를 수행해야 합니다. 주 루프 내에 있지 않은 경우(for(int i=OrdersHistoryTotal()-1;i>=0;i--)) 마지막으로 선택한 주문만 테스트되며 이것이 마지막 주문임을 의미하지는 않습니다. (metaquotes는 문서에서 닫힌(또는 아직 열려 있는) 주문 목록의 주문이 특정 순서일 필요가 없다고 명시적으로 명시합니다. 주문을 확인하는 것은 코더의 책임입니다.

이 겉보기에 쉬운 작업으로 몇 시간 동안 실패한 후 계속하기 전에 더 많은 프로그래밍을 공부하기로 결정했습니다. 어쨌든 도와주셔서 감사합니다!

내가 이것을 시도했을 때 EA는 어떤 포지션도 열지 않을 것입니다:

{ double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); } } { if(StopAndReverse==true && subTotalTrade()>0 && OrderProfit()>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }[/PHP]

And with this, it would "stop and reverse" even if last trade was a loss:

[PHP] { double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission(); } } return(TempLastOrderProfit); { if(StopAndReverse==true && subTotalTrade()>0 && TempLastOrderProfit>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }

다시 한번, 감사합니다.

 
BlackCoq:
이 겉보기에 쉬운 작업으로 몇 시간 동안 실패한 후 계속하기 전에 더 많은 프로그래밍을 공부하기로 결정했습니다. 어쨌든 도와주셔서 감사합니다!

내가 이것을 시도했을 때 EA는 어떤 포지션도 열지 않을 것입니다:

{ double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); } } { if(StopAndReverse==true && subTotalTrade()>0 && OrderProfit()>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }[/PHP]

And with this, it would "stop and reverse" even if last trade was a loss:

[PHP] { double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission(); } } return(TempLastOrderProfit); { if(StopAndReverse==true && subTotalTrade()>0 && TempLastOrderProfit>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }
다시 한번, 감사합니다.

블랙콕

제가 게시한 기능 을 그대로 사용하시면 마지막으로 마감된 주문의 정확한 수익을 돌려드립니다. (아무것도 변경할 필요가 없습니다)

 
mladen:
BlackCoq 제가 올린 기능을 그대로 사용하시면 마지막으로 마감된 주문의 정확한 수익을 돌려드립니다(변경할 필요가 없습니다)

함수 를 복사하려고 하면 어떻게 조정하려고 해도 수많은 오류가 발생합니다.

이 코드:

{

이중 GetLastPL()

{

이중 TempLastOrderProfit = 0;

날짜/시간 CloseTime = 0;

for(int i=OrdersHistoryTotal()-1;i>=0;i--)

{

if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))

if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime)

{

닫기 시간 = 주문 닫기 시간();

TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission();

}

}

반환(TempLastOrderProfit);

{

if(StopAndReverse==true && subTotalTrade()>0 && TempLastOrderProfit>0)

{

if((LastTrade=="구매" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true))

{

subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("중지 및 반전!");

}

}

}

}

나에게 오류를 제공합니다 :

'universalMAcrossECNmartingaleSAR.mq4' 컴파일 중...

'(' - 예기치 않은 함수 정의(538, 20)

'TempLastOrderProfit' - 변수가 정의되지 않음(548, 15)

'TempLastOrderProfit' - 변수가 정의되지 않음(551, 15)

'TempLastOrderProfit' - 변수가 정의되지 않음(553, 52)

 
BlackCoq:
함수를 복사하려고 하면 어떻게 조정하려고 해도 수많은 오류가 발생합니다.

이 코드:

{ double GetLastPL() { double TempLastOrderProfit = 0; datetime CloseTime = 0; for(int i=OrdersHistoryTotal()-1;i>=0;i--) { if (OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber && OrderCloseTime()>CloseTime) { CloseTime = OrderCloseTime(); TempLastOrderProfit = OrderProfit() + OrderSwap()+ OrderCommission(); } } return(TempLastOrderProfit); { if(StopAndReverse==true && subTotalTrade()>0 && TempLastOrderProfit>0) { if((LastTrade=="BUY" && SellCondition==true) || (LastTrade=="SELL" && BuyCondition==true)) { subCloseOrder(); if(subTotalTrade()>0) subCloseOrder(); if(subTotalTrade()>0) subCloseOrder();

if(IsTesting() && PrintControl==true) Print("STOP AND REVERSE !"); } } } }[/PHP]

Gives me the errors:

[PHP]

Compiling 'universalMAcrossECNmartingaleSAR.mq4'... '(' - function definition unexpected (538, 20)'TempLastOrderProfit' - variable not defined (548, 15)'TempLastOrderProfit' - variable not defined (551, 15)'TempLastOrderProfit' - variable not defined (553, 52)

블랙콕

해당 함수 는 다른 함수 외부에 붙여넣어야 합니다. 다음은 작동 방식과 사용 방법을 보여주는 매우 간단한 EA입니다.

파일:
 
mladen:
BlackCoq 해당 함수는 다른 함수 외부에 붙여넣어야 합니다. 다음은 작동 방식과 사용 방법을 보여주는 매우 간단한 EA입니다.

여기에 뭔가 빠졌다고 확신하지만 EA의 다른 함수 외부에 함수를 복사하려고 해도 여전히 다음 오류가 발생합니다.

'(' - 예기치 않은 함수 정의( 이중 GetLastPL () 이후)

'TempLastOrderProfit' - 변수가 정의되지 않음(554, 15)

'TempLastOrderProfit' - 변수가 정의되지 않음(557, 15)

 
BlackCoq:
여기에 뭔가 빠졌다고 확신하지만 EA의 다른 함수 외부에 함수를 복사하려고 해도 여전히 다음 오류가 발생합니다.

'(' - 예기치 않은 함수 정의( 이중 GetLastPL () 이후)

'TempLastOrderProfit' - 변수가 정의되지 않음(554, 15)

'TempLastOrderProfit' - 변수가 정의되지 않음(557, 15)

죄송하지만 코드가 없으면 무엇을 하고 있는지 모르겠습니다.

해당 테스트 EA에서 볼 수 있듯이 전혀 문제 없이 작동합니다.

 
mladen:
죄송하지만 귀하의 코드가 없으면 무엇을 하고 있는지 모르겠습니다. 해당 테스트 EA에서 알 수 있듯이 전혀 문제 없이 작동합니다.

첨부한 EA도 컴파일하려고 할 때 몇 가지 오류가 발생합니다. 다른 버전의 MT4를 사용하고 있습니까?

"중지 및 역전" 전에 기능 을 추가하려고 하는 EA를 첨부하고 있습니다.