MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 430

 
igrok333 :

이 코드를 작성했습니다

메타에디터가 욕합니다.



그가 욕을 하는 이유는?


가치 #속성 엄격한

pr 이 초기화 되었습니까?

 
igrok333 :

이 코드를 작성했습니다

메타에디터가 욕합니다.
그가 욕을 하는 이유는?


가치 #속성 엄격한

또한 553행에 값이 없는 변수를 사용할 수 있다는 내용이 명확하게 기재되어 있습니다. bool pr=false; 이것은 컴파일러를 속일 수 있지만 모든 것을 올바르게 확인하는 것이 좋습니다. 결국 주문 유형이 보류 중인 경우 pr은 값 없이 유지됩니다...

 
Roman Sharanov :

이전 버전에서, 그리고 mql4는 어떻습니까? OnTick() 함수 ?

mql4 언어에 대한 주제로 질문을 받았고 즉시 내 눈을 사로 잡았습니다 Time[0]

더 자세히 살펴보면 이것이 맞춤형 배열이라는 것이 분명해졌습니다.

그리고 문서의 참고 사항:

메모

함수는 동기 호출을 사용합니다. 즉, 함수가 호출하기 전에 차트 대기열에 있는 모든 명령의 실행을 기다리므로 이 함수는 시간이 많이 걸릴 수 있습니다. 차트에서 많은 수의 개체로 작업하는 경우 이 상황을 염두에 두어야 합니다.

하나의 가격 좌표에 있는 개체는 여러 값을 가질 수 있으므로 행 번호를 지정해야 합니다. 이 기능은 다음 개체에만 적용할 수 있습니다.

  • 추세선(OBJ_TREND)
  • 각도별 추세선(OBJ_TRENDBYANGLE)
  • 간 라인(OBJ_GANNLINE)
  • 등거리 채널(OBJ_CHANNEL) - 2라인
  • 선형 회귀 채널(OBJ_REGRESSION) - 3줄
  • 표준편차 채널(OBJ_STDDEVCHANNEL) - 3줄
  • 화살표 라인(OBJ_ARROWED_LINE)


 
Artyom Trishkin :

pr 이 초기화 되었습니까?

무엇을 초기화해야 합니까? 하지만 발표하는 것으로 충분하다고 생각했습니다.
선언하면 0으로 초기화되는 줄 알았습니다.
 
STARIJ :

또한 553행에 값이 없는 변수를 사용할 수 있다는 내용이 명확하게 기재되어 있습니다. bool pr=false; 이것은 컴파일러를 속일 수 있지만 모든 것을 올바르게 확인하는 것이 좋습니다. 결국 주문 유형이 보류 중인 경우 pr은 값 없이 유지됩니다...

연기에 대해 상기시켜 주셔서 감사합니다)



이것이 옳은 일입니까?

 void zakritj_vse_sdelki()
 {
 bool pr;
 for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)       
   {                                        
   if ( OrderSelect (i, SELECT_BY_POS )== true )
      {  
         pr= false ; 

         if ( OrderType ()== OP_BUY )    pr= OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_BID ), 30 );                              
         if ( OrderType ()== OP_SELL )   pr= OrderClose ( OrderTicket (), OrderLots (), MarketInfo ( OrderSymbol (), MODE_ASK ), 30 );
         
         if (pr== false ) Print ( "закрытие ордера " , OrderSymbol () , " завершилось с ошибкой #" , GetLastError ());
         if (pr== true ) Print ( "ордер " , OrderSymbol () , " ЗАКРЫТ" );
       }
    }
  }  
 
igrok333 :

연기에 대해 상기시켜 주셔서 감사합니다)
이것이 옳은 일입니까?

if(pr==false)는 if(!pr)와 동일합니다.
if(pr==true)는 if(pr)와 동일합니다.

Print 대신 Alert를 사용 합니다. 로그를 열지 않고 즉시 화면에 나타납니다. 그리고 추가 정보가 없습니다.

[삭제]  
Вместо
if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_BID), 30 );
if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK), 30 );
короче
if (OrderType()==OP_BUY)    pr=OrderClose(OrderTicket(), OrderLots(), Bid, 30 );
if (OrderType()==OP_SELL)   pr=OrderClose(OrderTicket(), OrderLots(), Ask, 30 );
или просто
pr=OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 30 );


 
STARIJ :

if(pr==false)는 if(!pr)와 동일합니다.
if(pr==true)는 if(pr)와 동일합니다.

Print 대신 Alert를 사용 합니다. 로그를 열지 않고 즉시 화면에 나타납니다. 그리고 추가 정보가 없습니다.

나는 실제로 코드에서 pr 의 배치에 대해 이야기하고 있습니다))
 
Дед пенсионер :
이와 같이 OrderClosePrice()를 작성할 수 있습니까?

OrderClosePrice() 거래를 종료한 후 가져옵니다.
 
igrok333 :
이와 같이 OrderClosePrice()를 작성할 수 있습니까?

OrderClosePrice() 거래를 종료한 후 가져옵니다.

할 수 있다. 하지만 조심하세요. 오픈 포지션 의 경우 종가를 반환합니다. 이에 따라: 매수 - 입찰, 매도 - 매도