[ARCHIVE] 포럼을 어지럽히 지 않도록 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 5. - 페이지 87

 
sergeev :

713
2013년 1월 15일 12 시 10분

수수께끼 하나를 풀 수 있을까요: 왜, 내가 이 함수를 조건에 삽입했을 때 || isCloseLastPosByTake() == 참 || 테스터의 전문가는 속도가 많이 느려지기 시작했는데, 10배!? 이것은 상호 배타적인 4가지 조건 중 하나이므로 코드를 더 빠르게 실행하기 위해 합산 조건과 마찬가지로 if와 연결할 수 없습니다. 당신은 나에게 무엇을 조언할 수 있습니까? 조언에 미리 감사드립니다!

그 기능에는 take로 마감된 마지막 주문을 찾기 위한 주문 검색이 있습니다. 속도 향상을 위해 이 기능을 재작업하십시오. 그것들은 모두 Kim에게 보편적이므로 거기에서 불필요한 것을 많이 제거할 수 있습니다. 다시 말하지만, 그것은 모두 Expert Advisor의 논리에 달려 있습니다.
 

또한 구매를 위해 주문을 여는 방법을 알려주실 수 있습니까? 매도 주문 조건   if(OrdersTotal()==0 && ma0<ma1 && ma1<ma2). switch 를 사용해야 한다는 것을 이해합니다 . (x, b) 대신 무엇을 쓸까요 ?

if(OrdersTotal()==0)

  switch(x) 케이스 'a ': 케이스 'b ':

미리 감사드립니다!


 
artmedia70 :
그 기능에는 마지막으로 테이크에 의해 마감된 주문을 찾기 위한 검색이 있습니다. 속도 향상을 위해 이 기능을 재작업하십시오. 그것들은 모두 Kim에게 보편적이므로 거기에서 불필요한 것을 많이 제거할 수 있습니다. 다시 말하지만, 그것은 모두 Expert Advisor의 논리에 달려 있습니다.
정말 감사합니다! 그런 다음 일부 연산자를 사용할 수 있다고 생각했지만 동일한 작업에 대해 "또는"이 있는 경우를 정렬하지 않습니다.
 
KoOr :

또한 구매를 위해 주문을 여는 방법을 알려주실 수 있습니까? 매도 주문 조건   if(OrdersTotal()==0 && ma0<ma1 && ma1<ma2). switch 를 사용해야 한다는 것을 이해합니다 . (x, b) 대신 무엇을 쓸까요 ?

if(OrdersTotal()==0)

  switch(x) 케이스 'a ': 케이스 'b ':

미리 감사드립니다!




 if ( OrdersTotal ()== 0 )
 {
   if ( ma0<ma1 && ma1<ma2) OrderSend (....,OP_SELL,.......);
   if ( ma0>ma1 && ma1>ma2) OrderSend (....,OP_BUY,.......);
 }
판매용 또는 구매용으로 하나의 주문만 열리며 더 이상 열리지 않습니다.
 

나는 하루 종일 고군분투하고 함수가 -1을 반환하는 이유를 이해할 수 없습니다

 int typ( string t, int m)
{   datetime z= 0 ; int p=- 1 ,i;
   int d=OrdersHistoryTotal();
   if ( t== "0" ) t= Symbol (); 
   for ( i= 0 ;i<=d;i++){
   if ( OrderSelect (i,SELECT_BY_POS,MODE_HISTORY) ) {                     
   if ( (OrderSymbol() == t || t== "0" ) && ( OrderMagicNumber() == m || m==- 1 ) ){
   if ( OrderCloseTime()>z&&OrderType()<= 1 )  
   {
   z =OrderCloseTime(); 
   p =OrderType();
   }}}}
return (p);
} 

전화는 이렇게

 Comment (typ( "0" ,- 1 ));

역사에 명령이 있다!

무엇에 오류가있을 수 있습니까 ???

 
VOLDEMAR :

나는 하루 종일 고군분투하고 함수가 -1을 반환하는 이유를 이해할 수 없습니다

전화는 이렇게

역사에 명령이 있다!

무엇에 오류가있을 수 있습니까 ???



 Comment (typ( Symbol (),- 1 ));
"0"과 같은 기호는 없으며 "EURUSD", "AUDUSD" 등이 있습니다.
 
Sepulca :


"0"과 같은 기호는 없으며 "EURUSD", "AUDUSD" 등이 있습니다.

그러한 기호가 없는 경우 if ( t== "0" ) t= 기호 (); 그런 다음 t를 고문이 부착된 기호와 동일하게 만듭니다.
 
DayOfWeek( ) ==1 ... 조건이 화요일에 실행될 수 있습니까?
 
VOLDEMAR :

그러한 기호가 없는 경우 if ( t== "0" ) t= 기호 (); 그런 다음 t를 고문이 부착된 기호와 동일하게 만듭니다.

미안 해요, 나는 눈치 채지 못했습니다 .. 그럼 여기 :

 for ( i= 0 ; i<d; i++){

마지막 주문 번호는 OrdersTotal() -1과 같습니다. 하지만 그게 핵심이 아닙니다. 나는 그것을 시도했지만 마감 된 주문 내역이 테스터에서 보이지 않는 것으로 나타났습니다. 코드는 데모 계정에서 작동합니다.

 

나는 당신이 내 코드에 쓴 것을 가지고 있지 않습니다

나는 그렇게

 int d=OrdersHistoryTotal();

그리고 다시 시작된다...

더 이상 문제가되지 않습니다. 코드의 다른 곳에서 문제를 찾았습니다....