2. OrderSelect()의 반환은 true 또는 false이므로 이것이 OrderSelect()를 작성하는 올바른 방법입니다.
int OpenTradesOnThisCandle( )
{
int op = 0 ;
for ( int i = OrdersTotal () - 1 ;i >= 0 ; i-- ) // scan all orders and positions...
{
if ( OrderSelect (i, SELECT_BY_POS, MODE_HISTORY) == true // if order select is true ...
&& OrderMagicNumber () != MagicNumber // ... and magic number is our magic number ...
&& OrderSymbol () == Symbol () ) // ... and symbol is chart symbol
{
if ( OrderOpenTime () > Time[ 0 ]) op++;
if ( OrderOpenTime () > Time[ 0 ]) op++;
}
}
return (op);
}
메가믹스,
당신이 아직 거기에 있다면, 나는 당신이 찾고 있는 것을 할 몇 가지 코드 변경을 제안할 수 있습니다. 여전히 관심이 있다면 알려주세요.
그런 다음 다시 컴파일하여 오류가 없는지 확인합니다. 이 정보가 있을 때 알려주시면 다음 변경 사항을 붙여넣겠습니다.sns 감사합니다.
sns 감사합니다.
좋아, 좋아.
다음으로 다음과 같은 코드 블록이 있습니다.
전체 블록을 복사하고 바로 뒤에 붙여넣고 이름을 OpenTradesOnThisCandle로 바꿉니다.
그런 다음 다시 컴파일하여 오류가 없는지 확인합니다.
나는 지금 일하러 가니까 나중까지 소식을 듣지 못할 것입니다. 막히면 변경 사항을 게시하십시오.
이 블록을 복사하고 이름을 바꾸었습니다. 이제 다음과 같습니다.
int OpenTradesOnThisCandle( )
{ 정수 연산 = 0;
for(int i=OrdersTotal()-1;i>=0;i--) // 모든 주문과 위치를 스캔합니다...
{
주문 선택(i, SELECT_BY_POS, MODE_TRADES);
if (OrderMagicNumber() != MagicNumber) 계속;
if ( OrderSymbol()==Symbol() )
{
if ( OrderType() == OP_BUY ) op++;
if ( OrderType() == OP_SELL ) op++;
}
}
리턴(옵);
}
내가 제대로 했길 바랍니다 sn. 컴파일하고 오류는 없지만 경고가 표시됩니다.
"OpenTradesOnThisCandle" 기능 은 참조되지 않으며 exp 파일에서 제거됩니다.
오류 0개, 경고 1개
좋은. 이 메시지는 단지 경고일 뿐이며 곧 사라질 것입니다.
이제 생성한 새 서브루틴에서 MODE_TRADES가 표시되는 행을 MODE_HISTORY로 변경합니다.
이제 두 if 문을 모두 OrderType()으로 대체합니다.
당신이 그것을 가지고 있다면 (그리고 당신은 같은 경고를 받게 될 것입니다) 그것을 컴파일하여 오류가 없는지 확인하십시오.
이제 블록의 모양은 다음과 같습니다.
int OpenTradesOnThisCandle( )
{ 정수 연산 = 0;
for(int i=OrdersTotal()-1;i>=0;i--) // 모든 주문과 위치를 스캔합니다...
{
주문 선택(i, SELECT_BY_POS, MODE_HISTORY);
if (OrderMagicNumber() != MagicNumber) 계속;
if ( OrderSymbol()==Symbol() )
{
if (OrderOpenTime() > 시간[0]) op++;
if (OrderOpenTime() > 시간[0]) op++;
}
}
리턴(옵);
}
컴파일됨, 오류 0개, 경고 1개
안녕하세요 메가믹스입니다.
쓰레드를 처음부터 읽지는 않지만...
1. 코드 게시 시 SRC 버튼 사용
2. OrderSelect()의 반환은 true 또는 false이므로 이것이 OrderSelect()를 작성하는 올바른 방법입니다.
:디
안녕하세요 메가믹스입니다.
쓰레드를 처음부터 읽지는 않지만...
1. 코드 게시 시 SRC 버튼 사용
2. OrderSelect()의 반환은 true 또는 false이므로 이것이 OrderSelect()를 작성하는 올바른 방법입니다.
:디
코드 게시에 대한 팁을 주셔서 감사합니다. 말이된다. 요점 #2에 관해서는 그가 단계를 통해 나를 안내하고 그의 프로세스를 엉망으로 만들고 싶지 않기 때문에 나는 sns를 연기할 것입니다. 매우 감사 !
코드 게시에 대한 팁을 주셔서 감사합니다. 말이된다. 요점 #2에 관해서는 그가 단계를 통해 나를 안내하고 그의 프로세스를 엉망으로 만들고 싶지 않기 때문에 나는 sns를 연기할 것입니다. 매우 감사 !
지금은 간단하게 유지하겠습니다. onewithzacky가 맞습니다. 반환 코드를 확인 하는 것은 좋은 습관입니다.
if (OrderOpenTime() > 시간[0]) op++; <<== 한 번만 있으면 됩니다. 그래서 하나를 꺼냅니다.
다음으로 할 일은 이 코드를 찾아 바로 아래에 복사하는 것입니다.
그런 다음 변경
(TradesInThisSymbol > 0)
에게
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
그런 다음 컴파일하십시오. 오류가 사라집니다.
지금은 간단하게 유지하겠습니다. onewithzacky는 반환 코드를 확인하는 것이 좋은 습관이라는 것이 맞습니다.
if (OrderOpenTime() > 시간[0]) op++; <<== 이것은 한 번만 있으면 됩니다. 그래서 하나를 꺼냅니다.
다음으로 할 일은 이 코드를 찾아 바로 아래에 복사하는 것입니다.
그런 다음 변경
(TradesInThisSymbol > 0)
에게
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
그런 다음 컴파일하십시오. 오류가 사라집니다.
완료.
삭제된 중복 if (OrderOpenTime() > Time[0]) op++;
발견하고 변경한
(TradesInThisSymbol > 0)
에게
(OpenTradesOnThisCandle() > MaxTradesPerCandle)
이에 대한 도움을 주셔서 감사합니다.