어드바이저가 5-6시간 안에 포지션을 닫을 수 있는 코드를 알려주시겠습니까? 또는 링크를 게시하십시오.
관심이 있으시면 직접 시도하십시오. 먼저 PositionSelect() 함수를 사용하여 열린 위치를 확인합니다. 성공하면 PositionGetInteger( POSITION_TIME )를 사용하여 포지션 오픈 시간을 알아내고 약 5-6시간 동안 상태를 확인합니다. 포지션을 청산해야 할 때라면 포지션 유형( ENUM_POSITION_TYPE ) PositionGetInteger( POSITION_TYPE ) 및 해당 볼륨 PositionGetDouble( POSITION_VOLUME)을 찾으십시오. 그런 다음 동일한 볼륨으로 반대 방향으로 주문합니다. 포지션 마감 방법의 예는 MQL5\Include\Trade\Trade.mqh\PositionClose(const string symbol,ulong deviation=ULONG_MAX)에서 찾을 수 있습니다 .
어드바이저가 5-6시간 안에 포지션을 닫을 수 있는 코드를 알려주시겠습니까? 또는 링크를 게시하십시오.
관심이 있으시면 직접 시도하십시오. 먼저 PositionSelect() 함수를 사용하여 열린 위치를 확인합니다. 성공하면 PositionGetInteger( POSITION_TIME )를 사용하여 포지션 오픈 시간을 알아내고 약 5-6시간 동안 상태를 확인합니다. 포지션을 청산해야 할 때라면 포지션 유형( ENUM_POSITION_TYPE ) PositionGetInteger( POSITION_TYPE ) 및 해당 볼륨 PositionGetDouble( POSITION_VOLUME)을 찾으십시오. 그런 다음 동일한 볼륨으로 반대 방향으로 주문합니다. 포지션 마감 방법의 예는 MQL5\Include\Trade\Trade.mqh\PositionClose(const string symbol,ulong deviation=ULONG_MAX)에서 찾을 수 있습니다 .
감사합니다, 그것이 당신에게 필요한 것 같습니다.
설마.
"마우스 클릭" 이벤트를 수신하려면 OnChartEvent() 를 사용해야 하지만 스크립트에서는 사용할 수 없습니다. 어떻게 해야 할까요? 이것은 보편적인 기능이 작동하지 않는다는 것을 의미합니까?
설마.
"마우스 클릭" 이벤트를 받으려면 OnChartEvent()를 사용해야 하는데 스크립트에서는 사용할 수 없습니다. 어떻게 해야 할까요? 이것은 보편적인 기능이 작동하지 않는다는 것을 의미합니까?
그런 다음 GetKeyState + GetPosition + 그래픽 개체의 알려진 좌표를 사용합니다.
윈에이피?
그게 다야, 목록에서 파일을 보고 선택하는 범용 기능(일종의 미니 파일 관리자)을 만들고 싶은 마음이 사라졌습니다. :(
윈에이피?
그게 다야, 목록에서 파일을 보고 선택하는 범용 기능(일종의 미니 파일 관리자)을 만들고 싶은 마음이 사라졌습니다. :(
그럼 왜 스크립트입니까?
포지션 마감 방법의 예는 MQL5\Include\Trade\Trade.mqh\PositionClose(const string symbol,ulong deviation=ULONG_MAX)에서 찾을 수 있습니다 .
고맙습니다.
그러나 수업에서는 여전히 상호 이해를 얻지 못합니다. 비록 내가 얻는 것은 일반적으로 어딘가에서보고 알아 낸 사실 때문입니다.
그는 진드기에 관심이 없기 때문에 - 진드기가 똑딱거리거나 똑딱거리지 않습니다.
그러나 수업에서는 여전히 상호 이해를 얻지 못합니다. 비록 내가 얻는 것은 일반적으로 어딘가에서보고 알아 낸 사실 때문입니다.
글쎄, 모든 클래스 메서드 는 일반 코드입니다. 이 코드를 구문 분석해 보십시오.
MqlTradeRequest m_request={0}; // request data MqlTradeResult m_result={0}; // result data MqlTradeCheckResult m_check_result={0}; // result check data bool partial_close=false; int retry_count =10; uint retcode =TRADE_RETCODE_REJECT; do { //--- checking if ( PositionSelect (symbol)) { if (( ENUM_POSITION_TYPE ) PositionGetInteger ( POSITION_TYPE )== POSITION_TYPE_BUY ) { //--- prepare request for close BUY position m_request.type = ORDER_TYPE_SELL ; m_request.price= SymbolInfoDouble (symbol, SYMBOL_BID ); } else { //--- prepare request for close SELL position m_request.type = ORDER_TYPE_BUY ; m_request.price= SymbolInfoDouble (symbol, SYMBOL_ASK ); } } else { //--- position not found m_result.retcode=retcode; return ( false ); } //--- setting request m_request.action = TRADE_ACTION_DEAL ; m_request.symbol =symbol; m_request.deviation =(deviation== ULONG_MAX ) ? m_deviation : deviation; m_request.type_filling=m_type_filling; m_request.volume = PositionGetDouble ( POSITION_VOLUME ); //--- check volume double max_volume= SymbolInfoDouble (symbol, SYMBOL_VOLUME_MAX ); if (m_request.volume>max_volume) { m_request.volume=max_volume; partial_close= true ; } else partial_close= false ; //--- order check if (! OrderCheck (m_request,m_check_result)) { //--- copy return code m_result.retcode=m_check_result.retcode; return ( false ); } //--- order send if (! OrderSend (m_request,m_result)) { if (--retry_count!= 0 ) continue ; if (retcode== TRADE_RETCODE_DONE_PARTIAL ) m_result.retcode=retcode; return ( false ); } retcode= TRADE_RETCODE_DONE_PARTIAL ; if (partial_close) Sleep ( 1000 ); } while (partial_close);전문가는 신경 쓰지 않습니다. 스크립트는 왜?