오류, 버그, 질문 - 페이지 1914 1...190719081909191019111912191319141915191619171918191919201921...3184 새 코멘트 Aleksei Beliakov 2017.06.23 17:20 #19131 nys2000 : 더 구체적으로, 가능하다면? 처음부터 시작 Vladimir 2017.06.23 17:24 #19132 nys2000 : 더 구체적으로, 가능하다면? for (i= 1 ; i <= OrdersTotal (); i++) 이 목록의 주문은 0에서 OrdersTotal ()-1까지 번호가 매겨져 있습니다(Artem Trishkin은 실례지만 nys2000에 대한 대기 시간을 단축했습니다). Yaroslav Nakonechnyi 2017.06.23 17:26 #19133 Aleksei Beliakov : 처음부터 시작 이는 두 개의 동등한 옵션입니다. (i=1...)인 경우 OrderSelect (i-1,...), (i=0,...)인 경우 - OrderSelect(i,...) Yaroslav Nakonechnyi 2017.06.23 17:30 #19134 Vladimir : for (i= 1 ; i <= OrdersTotal (); i++) 이 목록의 주문은 0에서 OrdersTotal ()-1까지 번호가 매겨져 있습니다(Artem Trishkin은 실례지만 nys2000에 대한 대기 시간을 단축했습니다). 감사합니다. 하지만 0에서 OrdersTotal()-1까지의 주문 번호는 OrderSelect (i-1,...)에서 고려됩니다. Aleksei Beliakov 2017.06.23 17:33 #19135 int OrdersTotalT(int _type) { int _total=0; for(int cnt=OrdersTotal()-1;cnt>=0;cnt--) { bool select=OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol() && OrderType()==_type) { _total++; } } return(_total); } Vladimir Pastushak 2017.06.23 19:09 #19136 nys2000 : 감사합니다. 하지만 0에서 OrdersTotal()-1까지의 주문 번호는 OrderSelect(i-1,...)에서 고려됩니다. 역순으로 하세요.. Kirill Belousov 2017.06.23 20:34 #19137 nys2000 : 다음은 간단한 코드입니다. 기능이 실행되는 순간 두 개의 매수 포지션이 열려 있습니다. 이 함수는 두 가지 주문이 있는 경우 두 번 인쇄합니다. 즉, 1번 통과, 2번 통과입니다. 주석을 제거하고 기능을 다시 실행하십시오. 그녀는 하나의 구매 주문을 유쾌하게 부수고 정직하게 "Pass No. 1"을 인쇄하고 사이클을 종료합니다. 2차 주문은 그대로 유지되며 "Pass #2" 메시지가 표시되지 않습니다. 마법은 무엇입니까? 1. i=1, 계산된 주문 ... 조건 확인 1<= 2 ? 네. 주문을 선택하고 마감했습니다. 2. i++ (i=2) 3. OrdersTotal()=1 <---------- 루프 내에서 주문을 닫음으로써 루프를 종료하기 위한 조건을 실제로 변경했습니다. 4. 2<=1 ? 아니요 <---------- 여기에 "마법"이 있으므로 루프에서 종료하십시오. void CloseAllOrders() { bool Ans; int total= OrdersTotal (); for ( int i= 1 ; i <=total; i++) { Print ( "Проход № " , i); if ( OrderSelect (i- 1 , SELECT_BY_POS )== true ) { if ( OrderSymbol () != Symbol ()) continue ; if ( OrderType ()== 0 ) { // Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Bid,Digits),25); } if ( OrderType ()== 1 ) { // Ans=OrderClose(OrderTicket(),OrderLots(), NormalizeDouble(Ask,Digits),25); } } } return ; } Konstantin 2017.06.26 16:06 #19138 차트 ID가 있기 때문에 추가 차트 ID CHART_WINDOW_HANDLE 이 있는 이유는 무엇입니까? 어떤 용도로 필요한가요? [삭제] 2017.06.26 18:14 #19139 Konstantin : 차트 ID가 있기 때문에 추가 차트 ID CHART_WINDOW_HANDLE 이 있는 이유는 무엇입니까? 어떤 용도로 필요한가요? 차트 ID는 mql 환경용이고 HWND는 winapi용이라고 가정하겠습니다. A100 2017.06.26 22:39 #19140 런타임 에러 int f( int t ) { union U { U( int t ) : t1( t ) {} int t2; int t1; }; U u( t ); return u.t2; } void OnStart () { Print ( f( 3 )); } 결과: 난수(물론 3은 아님) 1...190719081909191019111912191319141915191619171918191919201921...3184 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
더 구체적으로, 가능하다면?
처음부터 시작
더 구체적으로, 가능하다면?
처음부터 시작
이는 두 개의 동등한 옵션입니다. (i=1...)인 경우 OrderSelect (i-1,...), (i=0,...)인 경우 - OrderSelect(i,...)
for (i= 1 ; i <= OrdersTotal (); i++) 이 목록의 주문은 0에서 OrdersTotal ()-1까지 번호가 매겨져 있습니다(Artem Trishkin은 실례지만 nys2000에 대한 대기 시간을 단축했습니다).
감사합니다. 하지만 0에서 OrdersTotal()-1까지의 주문 번호는 OrderSelect (i-1,...)에서 고려됩니다.
감사합니다. 하지만 0에서 OrdersTotal()-1까지의 주문 번호는 OrderSelect(i-1,...)에서 고려됩니다.
역순으로 하세요..
다음은 간단한 코드입니다.
기능이 실행되는 순간 두 개의 매수 포지션이 열려 있습니다. 이 함수는 두 가지 주문이 있는 경우 두 번 인쇄합니다. 즉, 1번 통과, 2번 통과입니다.
주석을 제거하고 기능을 다시 실행하십시오. 그녀는 하나의 구매 주문을 유쾌하게 부수고 정직하게 "Pass No. 1"을 인쇄하고 사이클을 종료합니다. 2차 주문은 그대로 유지되며 "Pass #2" 메시지가 표시되지 않습니다.
마법은 무엇입니까?
1. i=1, 계산된 주문 ... 조건 확인 1<= 2 ? 네. 주문을 선택하고 마감했습니다.
2. i++ (i=2)
3. OrdersTotal()=1 <---------- 루프 내에서 주문을 닫음으로써 루프를 종료하기 위한 조건을 실제로 변경했습니다.
4. 2<=1 ? 아니요 <---------- 여기에 "마법"이 있으므로 루프에서 종료하십시오.
차트 ID가 있기 때문에 추가 차트 ID CHART_WINDOW_HANDLE 이 있는 이유는 무엇입니까? 어떤 용도로 필요한가요?
차트 ID가 있기 때문에 추가 차트 ID CHART_WINDOW_HANDLE 이 있는 이유는 무엇입니까? 어떤 용도로 필요한가요?
런타임 에러
결과: 난수(물론 3은 아님)