OrderSend를 사용하여 MT5에서 올바르게 작동하는 방법 - 페이지 2 123456789...13 새 코멘트 Renat Fatkhullin 2016.10.10 20:48 #11 fxsaber : 이것은 용어 분쟁입니다. 나쁜 상황은 위에서 자세히 설명했습니다. 표준 라이브러리 는 이것을 고려하지도 않습니다. 아니요. 하지만 계속 버티세요. 더 이상 설명하지 않겠습니다. fxsaber 2016.10.10 20:57 #12 Renat Fatkhullin : 아니요. 하지만 계속 버티세요. 더 이상 설명하지 않겠습니다. 사람들은 포럼에 그것에 대해 씁니다. 그리고 한 번도 아닙니다. 반응은 이렇습니다. prostotrader 2016.10.10 21:00 #13 fxsaber : 사람들은 포럼에 그것에 대해 씁니다. 그리고 한 번도 아닙니다. 반응은 이렇습니다. 사람들은 스스로 생각하기를 원하지 않지만 다른 사람들이 우리를 위해 그것을 해주기를 원합니다. 불행히도 이것은 그렇습니다. fxsaber 2016.10.10 21:05 #14 prostotrader : (MT5 로봇을 사용하여 실제 계정에서 거래한 개인적인 경험에서) 이러한 사건을 해결하는 데 도움을 주시겠습니까? 추가됨 완전 무료 :) 돼지 저금통에 추가 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 OrderSend() 전송 후 서버 응답을 기다리는 중 데니스 사르타코프 , 2016.10.08 15:43 함수는 동기식입니다. 이 기능이 완료되면 기록이 동기식으로 업데이트되지 않습니다. 저는 이렇게 합니다. OnTrade() 및 기타 문제를 어지럽히는 것보다 더 쉽다고 생각합니다. bool ClosePosition() { if (! PositionSelect ( _Symbol )) { return ( false ); } bool b_Result; b_Result = m_trade.PositionClose( _Symbol ,mi_Deviation); if (!b_Result) { Print ( "The PositionClose() method has failed. Return code=" ,m_trade.ResultRetcode(), ". Code description: " ,m_trade.ResultRetcodeDescription()); return ( false ); } if (b_Result) { if (m_trade.ResultRetcode() == TRADE_RETCODE_DONE ) { while ( PositionSelect ( _Symbol )) { } Print ( "The PositionClose() has been successfully executed. Return code=" ,m_trade.ResultRetcode(), " (" ,m_trade.ResultRetcodeDescription(), ")" ); return ( true ); } if (m_trade.ResultRetcode() != TRADE_RETCODE_DONE ) { Print ( "The PositionClose() failed. Return code=" ,m_trade.ResultRetcode(), " (" ,m_trade.ResultRetcodeDescription(), ")" ); return ( false ); } } return ( false ); } //+------------------------------------------------------------------+ fxsaber 2016.10.10 21:06 #15 prostotrader : 사람들은 스스로 생각하기를 원하지 않지만 다른 사람들이 우리를 위해 그것을 해주기를 원합니다. 불행히도 이것은 그렇습니다. 사람들은 생각만 하는 것이 아니라 결정을 공유하기도 합니다. 불행히도 개발자는 이에 대해 침묵합니다. 이 주제에 대한 문서의 단일 예가 아닙니다. 그리고 이것은 주요 기능입니다. prostotrader 2016.10.10 21:11 #16 fxsaber : 사람들은 생각만 하는 것이 아니라 결정을 공유하기도 합니다. 불행히도 개발자는 이에 대해 침묵합니다. 이 주제에 대한 문서의 단일 예가 아닙니다. 그리고 이것은 주요 기능입니다. 당신이 위에 준 예, 죄송합니다 - 완전히 넌센스입니다. 이것은 시작할 곳이 아닙니다! fxsaber 2016.10.10 21:14 #17 prostotrader : 당신이 위에 준 예, 죄송합니다 - 완전히 넌센스입니다. 이것은 시작할 곳이 아닙니다! 내 버전 거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼 오류, 버그, 질문 fxsaber , 2016.10.09 09:39 OrderSend가 전송되면 이것이 완료되었음을 기억해야 합니다(잠재적인 취약점이 있음). 또한 해당 메시지가 OnTrade에 도착할 때까지 현재 이력(거래 환경)에 주의를 기울이지 마십시오. 그것이 오면 기억해야 할 것은 잊어버려야 합니다. STORED 데이터가 없으면 MT4와 같이 이력을 신뢰할 수 있습니다. 오류, 버그, 질문 mql5 언어의 특징, 미묘함 mql4 언어의 기능, 미묘함 prostotrader 2016.10.10 21:28 #18 //+------------------------------------------------------------------+ //| OrderSend.mq5 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" // bool is_busy; ulong order_ticket; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit () { //--- is_busy= false ; order_ticket= 0 ; //--- return ( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit ( const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick () { //--- if (!is_busy && (order_ticket== 0 )) //Только при выполнении данного условия мы продолжаем работать(кроме отложенного ордера) { MqlTradeRequest request={ 0 }; MqlTradeResult result={ 0 }; if ( PositionSelect ( Symbol ())) { if ( OrderSend (request, result) { if (result.retcode== TRADE_RETCODE_PLACED ) //для биржи TRADE_RETCODE_PLACED { if (result.order> 0 ) { is_busy= true ; order_ticket=result.order; Print ( "Order plased, ticket = " ,result.order); } else { Print ( "Internal error!" ); } } else { //смотрим причину result.retcode } } else { Print ( "Order NOT send!" ); } } else { } } } //+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction ( const MqlTradeTransaction & trans, const MqlTradeRequest & request, const MqlTradeResult & result) { //--- В зависимости от того, квкой тип ордера мы устанавливали, смотрим, что с ордером произошло // и только после полного понимания снимаем флаг is_busy=false; order_ticket=0; // вот и все премудрости OrderSend } //+------------------------------------------------------------------+ 즐기다. fxsaber 2016.10.10 21:29 #19 prostotrader : 즐기다. 글쎄, 이것은 내가 위에 쓴 것과 어떻게 다른가요? 좋은 사람은 심지어 나에게 이 주제에 대해 진지한 성경을 던졌습니다. 사람들은 해결책을 찾습니다. 안보리에서도 개발자들 자신이 이것을 가지고 있지 않다는 사실에 관한 것입니다. prostotrader 2016.10.10 21:35 #20 fxsaber : 글쎄, 이것은 내가 위에 쓴 것과 어떻게 다른가요? 좋은 사람은 심지어 나에게 이 주제에 대해 진지한 성경을 던졌습니다. 사람들은 해결책을 찾습니다. 안보리에서도 개발자들 자신이 이것을 가지고 있지 않다는 사실에 관한 것입니다. 싫어요 - 사용하지 마세요. 123456789...13 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
이것은 용어 분쟁입니다. 나쁜 상황은 위에서 자세히 설명했습니다. 표준 라이브러리 는 이것을 고려하지도 않습니다.
아니요.
하지만 계속 버티세요. 더 이상 설명하지 않겠습니다.
아니요.
하지만 계속 버티세요. 더 이상 설명하지 않겠습니다.
사람들은 포럼에 그것에 대해 씁니다. 그리고 한 번도 아닙니다. 반응은 이렇습니다.
사람들은 포럼에 그것에 대해 씁니다. 그리고 한 번도 아닙니다. 반응은 이렇습니다.
(MT5 로봇을 사용하여 실제 계정에서 거래한 개인적인 경험에서) 이러한 사건을 해결하는 데 도움을 주시겠습니까?
추가됨
완전 무료 :)
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
OrderSend() 전송 후 서버 응답을 기다리는 중
데니스 사르타코프 , 2016.10.08 15:43
함수는 동기식입니다. 이 기능이 완료되면 기록이 동기식으로 업데이트되지 않습니다.
저는 이렇게 합니다. OnTrade() 및 기타 문제를 어지럽히는 것보다 더 쉽다고 생각합니다.
사람들은 스스로 생각하기를 원하지 않지만 다른 사람들이 우리를 위해 그것을 해주기를 원합니다. 불행히도 이것은 그렇습니다.
사람들은 생각만 하는 것이 아니라 결정을 공유하기도 합니다. 불행히도 개발자는 이에 대해 침묵합니다.
이 주제에 대한 문서의 단일 예가 아닙니다. 그리고 이것은 주요 기능입니다.
사람들은 생각만 하는 것이 아니라 결정을 공유하기도 합니다. 불행히도 개발자는 이에 대해 침묵합니다.
이 주제에 대한 문서의 단일 예가 아닙니다. 그리고 이것은 주요 기능입니다.
당신이 위에 준 예, 죄송합니다 - 완전히 넌센스입니다.
이것은 시작할 곳이 아닙니다!
당신이 위에 준 예, 죄송합니다 - 완전히 넌센스입니다.
이것은 시작할 곳이 아닙니다!
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
오류, 버그, 질문
fxsaber , 2016.10.09 09:39
OrderSend가 전송되면 이것이 완료되었음을 기억해야 합니다(잠재적인 취약점이 있음). 또한 해당 메시지가 OnTrade에 도착할 때까지 현재 이력(거래 환경)에 주의를 기울이지 마십시오. 그것이 오면 기억해야 할 것은 잊어버려야 합니다.
STORED 데이터가 없으면 MT4와 같이 이력을 신뢰할 수 있습니다.
즐기다.
즐기다.
글쎄, 이것은 내가 위에 쓴 것과 어떻게 다른가요? 좋은 사람은 심지어 나에게 이 주제에 대해 진지한 성경을 던졌습니다.
사람들은 해결책을 찾습니다. 안보리에서도 개발자들 자신이 이것을 가지고 있지 않다는 사실에 관한 것입니다.
글쎄, 이것은 내가 위에 쓴 것과 어떻게 다른가요? 좋은 사람은 심지어 나에게 이 주제에 대해 진지한 성경을 던졌습니다.
사람들은 해결책을 찾습니다. 안보리에서도 개발자들 자신이 이것을 가지고 있지 않다는 사실에 관한 것입니다.