오류, 버그, 질문 - 페이지 770

 
maryan.dirtyn :
...

추신 표준 라이브러리 를 사용하는 것을 참조하는 사람들은 방해하지 마십시오. 저는 제 전문가가 하는 일을 알고 있으며 그가 나중에 평평하게 되지 않기를 바랍니다.

그러나 표준 라이브러리는 보고/연구할 수 있으며 어떤 실수가 있었는지 이해할 수 있습니다. 아주 좋은 기회입니다.
 

테이크 앤 스톱을 즉시 설정하여 주문을 여는 간단한 어린이 기능을 여기에 작성해 달라고 강력히 부탁드려도 될까요.. 지난 6시간 동안 이 작업을 시도해 왔으며 이것이 불가능하다고 생각하는 경향이 있습니다.

나는 표준을 사용하지 않을 것입니다. 실례합니다.

 
maryan.dirtyn :

테이크 앤 스톱을 즉시 설정하여 주문을 여는 간단한 어린이 기능을 여기에 작성해 달라고 강력히 부탁드려도 될까요.. 지난 6시간 동안 이 작업을 시도해 왔으며 이것이 불가능하다고 생각하는 경향이 있습니다.

나는 표준을 사용하지 않을 것입니다. 실례합니다.

표준 라이브러리 에서 무엇이 그렇게 두렵습니까? Trade.mqh 파일에 있는 내용을 확인합니다.

포지션을 여는 기능:

 //+------------------------------------------------------------------+
//| Open position.                                                   |
//+------------------------------------------------------------------+
bool CTrade::PositionOpen( const string symbol, const ENUM_ORDER_TYPE order_type, const double volume,
                           const double price, const double sl, const double tp, const string comment)
  {
//--- check stopped
   if ( IsStopped ( __FUNCTION__ )) return ( false );
//--- clean
   ClearStructures();
//--- checking
   if (order_type!= ORDER_TYPE_BUY && order_type!= ORDER_TYPE_SELL )
     {
      m_result.retcode= TRADE_RETCODE_INVALID ;
      m_result.comment= "Invalid order type" ;
       return ( false );
     }
//--- setting request
   m_request.action      = TRADE_ACTION_DEAL ;
   m_request.symbol      =symbol;
   m_request.magic       =m_magic;
   m_request.volume      =volume;
   m_request.type        =order_type;
   m_request.price       =price;
   m_request.sl          =sl;
   m_request.tp          =tp;
   m_request.deviation   =m_deviation;
   m_request.type_filling=m_type_filling;
   m_request.comment     =comment;
//--- action and return the result
   return ( OrderSend (m_request,m_result));
  }

//---

귀하의 시도와 크게 다르지 않다는 데 동의하십시오. ClearStructures () 함수에 주목하십시오. 포지션을 연 후 스톱을 설정해야 하는 경우 다음 기능이 도움이 될 것입니다.

 //+------------------------------------------------------------------+
//| Modify specified opened position.                                |
//+------------------------------------------------------------------+
bool CTrade::PositionModify( const string symbol, const double sl, const double tp)
  {
//--- check stopped
   if ( IsStopped ( __FUNCTION__ )) return ( false );
//--- clean
   ClearStructures();
//--- setting request
   m_request.action= TRADE_ACTION_SLTP ;
   m_request.symbol=symbol;
   m_request.sl    =sl;
   m_request.tp    =tp;
//--- action and return the result
   return ( OrderSend (m_request,m_result));
  }

//---

모든 것이 간단하고 모든 것이 작동합니다. 그런 다음 적합하다고 생각되는 대로 이미 추가/변경/실험할 수 있습니다.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
maryan.dirtyn :

테이크 앤 스톱을 즉시 설정하여 주문을 여는 간단한 어린이 기능을 여기에 작성해 달라고 강력히 부탁할 수 있습니까 .. 지난 6시간 동안 이 작업을 시도했으며 이것이 불가능하다고 생각하는 경향이 있습니다.

나는 표준을 사용하지 않을 것입니다. 실례합니다.

특별히 당신을 위하여:

 #include <trade\trade.mqh>
void OnStart ()
  {
   CTrade trade;
   trade.Buy( 1.0 , "EURUSD" , SymbolInfoDouble ( "EURUSD" , SYMBOL_ASK ), 1.20000 , 1.50000 , "Yeah, baby!" );
  }

알 수 없는 것을 터치하려면 이 코드를 스크립트에 붙여넣고 컴파일한 다음 커서를 Buy로 이동하고 Alt+G를 누르십시오.

모든 도서관의 내부를 탐색하는 여행이 시작됩니다. 동시에 오류 처리 가 보입니다.

 
Renat :

특별히 당신을 위하여:

알 수 없는 것을 터치하려면 이 코드를 스크립트에 붙여넣고 컴파일한 다음 커서를 Buy로 이동하고 Alt+G를 누르십시오.

모든 도서관의 내부를 탐색하는 여행이 시작됩니다. 동시에 오류 처리가 보입니다.


 "Yeah, baby!"
그러나 목소리를 내는 것도 가능하며 모든 것이 일반적으로 초콜릿으로 이루어질 것입니다. )))
 

내가 알기로는 이 외에 다른 방법은 없고 그냥 자연에 존재하지 않는 것인가?

 #include <trade\trade.mqh>
 
maryan.dirtyn :

내가 알기로는 이 외에 다른 방법은 없고 그냥 자연에 존재하지 않는 것인가?

기본 파일에서 유사한 기능을 만들고 아무것도 포함할 필요가 없습니다.
 

그래서 나는 그것을한다))).6시 .. 그리고 나는 실수가 어디에 있는지 이해할 수 없다.

표준 라이브러리 사용을 꺼리는 것은 플래그와 전역 변수가 함수 내부에서 사용된다는 사실과 trade.mqh 및 기타 항목을 부분으로 구문 분석하는 것이 합리적이지 않기 때문입니다.

 void OnTick (){ if ( PositionsTotal ()< 1 ){OPEN();}}

bool OPEN(){
             MqlTradeRequest request; ZeroMemory(request);
             MqlTradeResult  result;  ZeroMemory(result);
             

             request.symbol       = _Symbol ;
             request.action       = TRADE_ACTION_DEAL ;
             request.type_filling = ORDER_FILLING_FOK ;
             request.deviation    = 100 ;
             request.volume       = NormalizeDouble ( 2 , 2 );
             request.type         = ORDER_TYPE_BUY ;
             request.price        = NormalizeDouble ( SymbolInfoDouble ( _Symbol , SYMBOL_ASK ), _Digits );
             request.tp           = NormalizeDouble ( SymbolInfoDouble ( _Symbol , SYMBOL_ASK ) + 500 * _Point , _Digits );
             request.sl           = NormalizeDouble ( SymbolInfoDouble ( _Symbol , SYMBOL_ASK ) - 500 * _Point , _Digits );

             OrderSend (request,result);     
                        
             if (result.retcode== 10009 || result.retcode== 10008 )   Print ( "Succsesful open" );
             else                                                Print ( "Error open: " , DoubleToString ( GetLastError (), 0 ), "  response code: " ,result.retcode);
    
   return ( true );}
 
maryan.dirtyn :

그래서 나는 그것을한다))).6시 .. 그리고 나는 실수가 어디에 있는지 이해할 수 없다.

표준 라이브러리 사용을 꺼리는 것은 플래그와 전역 변수가 함수 내부에서 사용된다는 사실과 trade.mqh 및 기타 항목을 부분으로 구문 분석하는 것이 합리적이지 않기 때문입니다.

어떤 서버와 어떤 기호에서 시도하고 있습니까?

MetaQuotes-Demo에서 귀하의 코드를 실행했으며 거래가 성공적으로 진행되었습니다.

2012.07.11 15:08:36     Trades  '1026582': deal #109507221 buy 2.00 EURUSD at 1.22625 done (based on order #115678901)
2012.07.11 15:08:36     Trades  '1026582': order #115678901 buy 2.00 / 2.00 EURUSD at 1.22625 done
2012.07.11 15:08:36     Trades  '1026582': instant buy 2.00 EURUSD at 1.22627 sl: 1.22127 tp: 1.23127 (deviation: 100)
 

MetaQuotes-데모

로그인: 1219233

EURUSD

나는 단지 파운드에 그것을 시도했다, 같은 이야기. 정류장이 없습니다. 나는 테스터에서 모든 것을 한다

655 빌드(도움이 되는 경우)