初心者の方からの質問 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);
     }
コンパイル時に2つのエラーが発生します。 何が問題で、どう修正すればいいのかがわかりません。ヒントをください。
 
Alexandr Saprykin:
コンパイル時に2つのエラーが発生:何が問題で、どう修正すればいいのかがわからない。修正方法を教えていただけませんか?
テレパソは休日で、コードヘッダも拡張子もないんですね。どうすれば、それが何であるか、何語であるかを知ることができるのでしょうか :)
 
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:

テレパシーがない人へ))))

OnInit()からLotSize関数を取り出してください。
 
edutak:

ロジックに誤りがある、なぜ反対注文が開かないのか?

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

初心者の方からの質問

カルプトフ ウラジミール 2016.04.16 13:04

テレパソは休日で、コードヘッダも拡張子もないでしょ。それが何であるか、何語であるかを考えてきてください :)

 
Karputov Vladimir:

アルゴリズムの記述が必要な場合
 
edutak:
アルゴリズムの記述が必要な場合

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

初心者の方からの質問

カルプトフ ウラジミール 2016.04.16 13:04

テレパソは休日で、 コードヘッダも拡張子もないでしょ それが何であるか、何語であるかを考えてきてください :)

 
savinkins:
端末のユーザー名とパスワードはデフォルトのままです。選択リストにサーバー名がないので、コピーする。現在、ネットワークリストには、残高は表示されているものの、エージェントが全く表示されていません。
 
savinkins:

端末を更新 するには、MetaQuotes-Demoの取引サーバーに接続します。


理由: