초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 560

 
매 틱마다 주문이 열리지 않도록 코드에 무엇을 작성해야 하는지 알려주십시오.
 
int OnInit ()
  {
   double LotSize( string symbol, datetime tbar)
     {
       double size;
       string BQ,currency= AccountCurrency ();
       switch ( MarketInfo (symbol, MODE_PROFITCALCMODE ))
        {
         case 0 :
           {
             int sbar= iBarShift (symbol, 0 ,tbar);
            size= MarketInfo (symbol, MODE_LOTSIZE );
             if ( StringSubstr (symbol, 3 , 3 )== "USD" ) break ;
             if ( StringSubstr (symbol, 0 , 3 )== "USD" ) size=size/ iClose (symbol, 0 ,sbar);
             else
              {
               BQ= StringSubstr (symbol, 0 , 3 )+ "USD" ;
               if ( iClose (BQ, 0 , 0 )== 0 ) BQ= "USD" + StringSubstr (symbol, 0 , 3 );
               if ( iClose (BQ, 0 , 0 )== 0 ) break ;
               int BQbar= iBarShift (BQ, 0 ,tbar);
               if ( StringSubstr (BQ, 0 , 3 )== "USD" ) size=size/ iClose (BQ, 0 ,BQbar)/ iClose (symbol, 0 ,sbar);
               else size=size* iClose (BQ, 0 ,BQbar)/ iClose (symbol, 0 ,sbar);
              }
           }
         break ;
         case 1 : size= MarketInfo (symbol, MODE_LOTSIZE ); break ;
         case 2 : size= MarketInfo (symbol, MODE_TICKVALUE )/ MarketInfo (symbol, MODE_TICKSIZE );
        }
       if (currency!= "USD" )
        {
         BQ=currency+ "USD" ;
         if ( iClose (BQ, 0 , 0 )== 0 )
           {
            BQ= "USD" +currency;
            size*= iClose (BQ, 0 , iBarShift (BQ, 0 ,tbar));
           }
         else size/= iClose (BQ, 0 , iBarShift (BQ, 0 ,tbar));
        }
       return (size);
     }
컴파일하는 동안 두 가지 오류가 있습니다. 무엇이 잘못되었고 어떻게 수정해야 하는지 모르겠습니다. 제발 내게 말해줘.
 
Alexandr Saprykin :
컴파일할 때 두 가지 오류가 있습니다. 무엇이 잘못되었는지, 어떻게 고칠 수 있는지 알 수 없습니다. 제발 내게 말해줘.
텔레파시가 휴가 중이고 헤더 코드에 헤더도 확장명도 없습니다. 가서 그것이 무엇인지, 어떤 언어로 쓰여져 있는지 알아보세요 :)
 
Karputov Vladimir :
텔레파시가 휴가 중이고 헤더 코드에 헤더도 확장명도 없습니다. 가서 그것이 무엇인지, 어떤 언어로 쓰여져 있는지 알아보세요 :)

텔레파시가 아닌 경우)))

 //+------------------------------------------------------------------+
//|                                                   Break Even.mq4 |
//|                                                 Copyright 2016,  |
//|                                         /ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, "
#property link        "/ru"
#property version    "1.00"
#property strict
#property indicator_chart_window    //отображение внутри основного окна
#property indicator_buffers 1
#property indicator_plots    1
//--- plot BreakEven
#property indicator_label1   "BreakEven"      //название индикатора
#property indicator_type1   DRAW_LINE        //рисовать линией
#property indicator_color1   clrGold        // цвет индикатора
#property indicator_style1   STYLE_SOLID    //стиль индикатора
#property indicator_width1   1
//--- indicator buffers
double          BreakEvenBuffer[];
//+------------------------------------------------------------------+
//| Рассчитываем точку безубыточности                                |
//+------------------------------------------------------------------+
int OnInit ()
  {
   double LotSize( string symbol, datetime tbar)
     {
       double size;
       string BQ,currency= AccountCurrency ();
       switch ( MarketInfo (symbol, MODE_PROFITCALCMODE ))
        {
         case 0 :
           {
             int sbar= iBarShift (symbol, 0 ,tbar);
            size= MarketInfo (symbol, MODE_LOTSIZE );
             if ( StringSubstr (symbol, 3 , 3 )== "USD" ) break ;
             if ( StringSubstr (symbol, 0 , 3 )== "USD" ) size=size/ iClose (symbol, 0 ,sbar);
             else
              {
               BQ= StringSubstr (symbol, 0 , 3 )+ "USD" ;
               if ( iClose (BQ, 0 , 0 )== 0 ) BQ= "USD" + StringSubstr (symbol, 0 , 3 );
               if ( iClose (BQ, 0 , 0 )== 0 ) break ;
               int BQbar= iBarShift (BQ, 0 ,tbar);
               if ( StringSubstr (BQ, 0 , 3 )== "USD" ) size=size/ iClose (BQ, 0 ,BQbar)/ iClose (symbol, 0 ,sbar);
               else size=size* iClose (BQ, 0 ,BQbar)/ iClose (symbol, 0 ,sbar);
              }
           }
         break ;
         case 1 : size= MarketInfo (symbol, MODE_LOTSIZE ); break ;
         case 2 : size= MarketInfo (symbol, MODE_TICKVALUE )/ MarketInfo (symbol, MODE_TICKSIZE );
        }
       if (currency!= "USD" )
        {
         BQ=currency+ "USD" ;
         if ( iClose (BQ, 0 , 0 )== 0 )
           {
            BQ= "USD" +currency;
            size*= iClose (BQ, 0 , iBarShift (BQ, 0 ,tbar));
           }
         else size/= iClose (BQ, 0 , iBarShift (BQ, 0 ,tbar));
        }
       return (size);
     }
//--- indicator buffers mapping
   SetIndexBuffer ( 0 ,BreakEvenBuffer);

//---
   return ( INIT_SUCCEEDED );
  }
 
Alexandr Saprykin :

텔레파시가 아닌 경우)))

LotSize 함수를 OnInit() 외부로 이동합니다.
 
edutak :

논리의 오류를 알려주십시오. 반대 주문이 열리지 않는 이유는 무엇입니까?

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

초보자의 질문

카르푸토프 블라디미르 , 2016.04.16 13:04

텔레파시가 휴가 중이고 헤더 코드에 헤더도 확장명도 없습니다. 가서 그것이 무엇인지, 어떤 언어로 쓰여져 있는지 알아보세요 :)

 
Karputov Vladimir :

알고리즘을 설명해야 합니까?
 
edutak :
알고리즘을 설명해야 합니까?

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

초보자의 질문

카르푸토프 블라디미르 , 2016.04.16 13:04

텔레파시가 휴가 중이고 헤더 코드에 헤더도 확장명도 없습니다. 가서 그것이 무엇인지, 어떤 언어로 쓰여져 있는지 알아보세요 :)

 
savinkins :
기본적으로 가지고 있는 터미널의 로그인 비밀번호입니다. 서버 이름이 선택 목록에 없어서 복사합니다. 이제 잔액이 표시되지만 네트워크 목록에 에이전트가 하나도 없습니다.
 
savinkins :

터미널을 업데이트 하려면 MetaQuotes-Demo 거래 서버에 연결해야 합니다.


사유: