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

 
ANDREY :

모두에게 좋은 하루!

mql5를 배우기 시작했습니다. 나는 주문이 열리는 방식을 연구하는 것으로 시작했습니다. 주문을 여는 코드가 별도의 인클루드 파일에 작성되어 있다는 것을 깨달았습니다. 나는 이 코드가 어떻게 작성되었는지 그리고 거래를 위한 최종 버전을 보았습니다. mql5와 비교하여 mql4에서 주문을 여는 것이 얼마나 쉽고 간단한지 놀랐습니다.

문제. 주문을 여는 코드가 포함된 파일이 이미 어딘가에 있고 이 코드를 작성할 필요가 없다는 것을 올바르게 이해하고 있습니까? 어딘가에 그런 파일이 있으면 Expert Advisor에 연결하고 필요한 주문 매개 변수의 값을 설정하기만 하면 됩니다. 어딘가에 그러한 파일이 있다면 어디서 어떻게 찾는지, 무엇이라고 부르는지.

고맙습니다.

내가 당신을 올바르게 이해한다면 이것은 #include <Trade\Trade.mqh>입니다.

파일:
ng4txc.PNG  116 kb
15vegf1.PNG  114 kb
 
SanAlex :

내가 당신을 올바르게 이해한다면 이것은 #include <Trade\Trade.mqh>입니다.

소중한 정보 감사합니다.

이 파일을 어디에서나 찾을 필요가 없다는 것을 올바르게 이해하고 있습니까? 코드의 올바른 위치에 #include <Trade\Trade.mqh> 를 작성하면 됩니다. 그러면 이 파일은 자동으로 내 고문에 합류하고 고문은 필요할 때 액세스?

 
ANDREY :

소중한 정보 감사합니다.

이 파일을 어디에서나 찾을 필요가 없다는 것을 올바르게 이해하고 있습니까? 코드의 올바른 위치에 #include <Trade\Trade.mqh> 를 작성하면 됩니다. 그러면 이 파일은 자동으로 내 고문에 합류하고 고문은 필요할 때 액세스?

예! 찾을 필요가 없습니다. 이미 있습니다.

터미널에서 코드 파일( 이동 평균 .mq5 또는 MACD Sample.mq5 )을 볼 수 있습니다.

 
SanAlex :

예! 찾을 필요가 없습니다. 이미 있습니다.

소중한 정보 정말 감사합니다.
제가 제대로 이해했다면 보내주신 파일은 CLASS라고 합니다. 이 파일은 주문을 열기 위한 파일입니다. 그러한 CLASSES가 많이 있고 각 CLASS는 예를 들어 주문 마감, 주문 수정, 일부 정보 표시 등과 같은 고유한 목적을 가지고 있는 것 같습니다.

질문 자세한 설명과 함께 모든 클래스의 목록은 어디에 있습니까?
도움을 주셔서 다시 한 번 감사드립니다.

 
ANDREY :

소중한 정보 정말 감사합니다.
제가 제대로 이해했다면 보내주신 파일은 CLASS라고 합니다. 이 파일은 주문을 열기 위한 파일입니다. 그러한 CLASSES가 많이 있고 각 CLASS는 예를 들어 주문 마감, 주문 수정, 일부 정보 표시 등과 같은 고유한 목적을 가지고 있는 것 같습니다.

질문 자세한 설명과 함께 모든 클래스의 목록은 어디에 있습니까?
도움을 주셔서 다시 한 번 감사드립니다.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
Artyom Trishkin :

소중한 정보 정말 감사합니다. 이제 멘탈이 닿는 한도 내에서 소화, 즉 동화를 시작하겠습니다.

 
ANDREY :

모두에게 좋은 하루!

mql5를 배우기 시작했습니다. 나는 주문이 열리는 방식을 연구하는 것으로 시작했습니다. 주문을 여는 코드가 별도의 인클루드 파일에 작성되어 있다는 것을 깨달았습니다. 나는 이 코드가 어떻게 작성되었는지 그리고 거래를 위한 최종 버전을 보았습니다. mql5와 비교하여 mql4에서 주문을 여는 것이 얼마나 쉽고 간단한지 놀랐습니다.

문제. 주문을 여는 코드가 포함된 파일이 이미 어딘가에 있고 이 코드를 작성할 필요가 없다는 것을 올바르게 이해하고 있습니까? 어딘가에 그런 파일이 있으면 Expert Advisor에 연결하고 필요한 주문 매개 변수의 값을 설정하기만 하면 됩니다. 어딘가에 그러한 파일이 있다면 어디서 어떻게 찾는지, 무엇이라고 부르는지.

고맙습니다.

나 자신은 전문가이기 때문에 글쓰기에 대한 접근 방식이 다릅니다. 사람들은 열심히 일했고 이미 전문가 초안을 만들었습니다. 내가 직접 수정하면 됩니다.

-(이미 생성된 경우 바퀴를 재발명하는 이유)

-------------------------------------------------- --------------------

여기에서 지표를 선택합니다.

 //+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ( void )
  {
//--- prepare trade class to control positions if hedging mode is active
   ExtHedging=(( ENUM_ACCOUNT_MARGIN_MODE ) AccountInfoInteger ( ACCOUNT_MARGIN_MODE )== ACCOUNT_MARGIN_MODE_RETAIL_HEDGING );
   ExtTrade.SetExpertMagicNumber(MA_MAGIC);
   ExtTrade.SetMarginMode();
   ExtTrade.SetTypeFillingBySymbol( Symbol ());
//--- Moving Average indicator
   ExtHandle= iMA ( _Symbol , _Period ,MovingPeriod,MovingShift, MODE_SMA , PRICE_CLOSE );
   if (ExtHandle== INVALID_HANDLE )
     {
       printf ( "Error creating MA indicator" );
       return ( INIT_FAILED );
     }
//--- ok
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+

그리고 여기에서 우리는 신호에서 표시기가 올바르게 열리도록 선택합니다.

 //+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen( void )
  {
   MqlRates rt[ 2 ];
//--- go trading only for first ticks of new bar
   if ( CopyRates ( _Symbol , _Period , 0 , 2 ,rt)!= 2 )
     {
       Print ( "CopyRates of " , _Symbol , " failed, no history" );
       return ;
     }
   if (rt[ 1 ].tick_volume> 1 )
       return ;
//--- get current Moving Average 

   double    ma[ 1 ];
   if ( CopyBuffer (ExtHandle, 0 , 0 , 1 ,ma)!= 1 )
     {
       Print ( "CopyBuffer from iMA failed, no data" );
       return ;

     }
//--- check signals
   ENUM_ORDER_TYPE signal= WRONG_VALUE ;

   if (rt[ 0 ].open>ma[ 0 ] && rt[ 0 ].close<ma[ 0 ])
      signal= ORDER_TYPE_SELL ;     // sell conditions
   else
     {
       if (rt[ 0 ].open<ma[ 0 ] && rt[ 0 ].close>ma[ 0 ])
         signal= ORDER_TYPE_BUY ;   // buy conditions
     }
//--- additional checking
   if (signal!= WRONG_VALUE )
     {
       if ( TerminalInfoInteger ( TERMINAL_TRADE_ALLOWED ) && Bars ( _Symbol , _Period )> 100 )
         ExtTrade.PositionOpen( _Symbol ,signal,TradeSizeOptimized(),
                               SymbolInfoDouble ( _Symbol ,signal== ORDER_TYPE_SELL ? SYMBOL_BID : SYMBOL_ASK ),
                               0 , 0 );
     }
//---
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin :

MQL5 를 더 빨리 이해하기 위해   , 이 간단한 코드를 MQL4에서 MQL5 코드로 다시 코딩해 주시면 감사하겠습니다.

도와 주셔서 감사합니다.

 int s1,SL,a;
double Lou=Bid,Hay,DL= 0.0030 ;
void OnTick ()
{
if (Bid < Lou)
{
Lou=Bid;
}
if (Bid > Hay)
Hay=Bid;
if (Bid - Lou > DL&& Lou!= 0 )
{
Lou=Bid;
Hay=Bid;
s1= 1 ;
}
////=======================
if (Hay-Bid> 0.0000 )
if (s1== 1 )
{
for ( int c= 0 ; c<= 500 ;c+= 20 )
{
a++;
{
SL= 300 +c;
OrderSend ( Symbol (),OP_SELL, 0.1 ,Bid, 3 ,Ask+SL* Point ,Ask-SL/ 3 * Point , "300" , 100 );
Lou=Bid;
Hay=Bid;
}
}
a= 0 ;
s1= 0 ;
}
}
 

numPosOr = 4;

numStepCount = 1;

iK = (numPosOr - numStepCount) / numPosOr;

이 계산에서 iK = 0이 되는 이유는 무엇입니까?

 
Sysmart :

numPosOr = 4;

numStepCount = 1;

iK = (numPosOr - numStepCount) / numPosOr;

이 계산에서 iK = 0이 되는 이유는 무엇입니까?

모든 코드를 제공하십시오