MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1019

 
Artyom Trishkin:
ビジュアルモードでのPrint()

素晴らしいありがとうございました。すべてうまくいった。すべての変数を一度にチェック。

 
Roni Iron:

こんにちは。

この種のデータを取得するためのオプションは何か。

時刻(UTC),アスク,ビッド,アスクボリューム,ビッドボリューム

Ask,Bid -指定すれば十分です。あまり複雑に考える必要はありませんし、FXには1巻しかありません。

iVolume

対応するチャートのバー(shift パラメータで指定)のティックボリュームの値を返します。

long  iVolume( 
   string           symbol,          // символ 
   int              timeframe,       // период 
   int              shift            // сдвиг 
   );
 
MQL4にカスタムインジケータを インストールすると、すべてがうまくいくのですが、別のタイムフレームに切り替えると、(前のタイムフレームからの)deinitのみが機能し、initは新しいタイムフレームでは機能しません。手動で新しいタイムフレームにインジケータを設定すると、すべてがうまくいく。何が問題なのでしょうか?
 

これはまさにトリックで、FXにはバーのティックボリュームがありますが、ティックトレードボリュームは 存在しません。しかし、ティッククォートのソース(Ducascopyなど)では、価格値の後にAskVolume,BidVolumeの 値が0.32,0.12(しかもカンマ付きの2桁なのか4 桁なのかよくわからない)という形で表示されます。

ありがとうございました。

 
セパレータのないCSVファイルを作成するコツはありますか?
 

こんにちは。

アドバイスお願いします。 MQL4 用に書いたコードをMQL5用に書き直しました

EMAを2本、1本にしています。

コンパイル時にエラーは出ないのですが、MQL4と同じような 結果が出ません。

MQL5のマニュアルに目を通したが、何も わからない。

//+------------------------------------------------------------------+
//|                                                           MA.mq5 |
//|                        Copyright 2019, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2019, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot 1
#property indicator_label1  "MA 1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrLime
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot 2
#property indicator_label2  "MA 2"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrYellow
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//
input int PER=8; //Period
//
double         MA_1[];
double         MA_2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MA_1,INDICATOR_DATA);
      SetIndexBuffer(1,MA_2,INDICATOR_DATA);
         IndicatorSetInteger(INDICATOR_DIGITS,2);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   program(rates_total,prev_calculated,close);
   return(rates_total);
  }
//+------------------------------------------------------------------+
//+---EMA

double EMA(double N,double P,double EMA0=0)//формула
  {
   double  A=2/(N+1);                      //расчета
   return(A*P+(1-A)*EMA0);                 //ЕМА
  }
//+---
void program(int rates_total,int prev_calculated,const double &close[])
  {

   int Y=rates_total-prev_calculated;
   if(prev_calculated==0) Y=Y-PER-1;

   for(Y=Y; Y>=0; Y=Y-1)

     {
     
      MA_1[Y]=EMA(PER,close[Y],MA_1[Y+1]);//первая
      MA_2[Y]=EMA(PER,MA_1[Y],MA_2[Y+1]);//на неё вторая

     }
   return;
  }
//+------------------------------------------------------------------+
 
imknk:

こんにちは。

アドバイスお願いします。 MQL4 用に書いたコードをMQL5用に書き直しました

EMAを2本、1本にしています。

コンパイル時にエラーは出ないのですが、MQL4と同じような 結果が出ません。

もう、MQL5のマニュアルで目をつぶってしまいました、何も わかりません。

mql5では、バッファは後方に行くので、反転させる必要があります。

施工を追加して読む

ArraySetAsSeries(MA_1,true);
Документация по MQL5: Пользовательские индикаторы / SetIndexBuffer
Документация по MQL5: Пользовательские индикаторы / SetIndexBuffer
  • www.mql5.com
[in]  Тип данных, хранящихся в индикаторном массиве. По умолчанию INDICATOR_DATA (значения рассчитанного индикатора). Может также принимать значение INDICATOR_COLOR_INDEX, тогда данный буфер предназначен для хранения индексов цветов для предыдущего индикаторного буфера. Можно задать до 64 цветов в строке #property indicator_colorN. Значение...
 
Vitaly Muzichenko:

mql5では、バッファを反転させなければならないので、逆になってしまうのです。

施工を追加して読む

ありがとうございます、これからやってみます。
 

助けてください、どこにエラーがあるのですか?

if条件を 関数に渡すと「'all_clouse' -function not defined」と警告されるのはなぜか?

if(buy>=position)
 {
   All_clouse();  // 'All_clouse' - wrong parameters count

 }
..............
дальше код
..............
Уже за пределами OnTick
void All_clouse(int a,double x, double y)
  {
.............
   } к самой функции закрытия ордеров у него претензий нет.
 
Gilmor:

助けてください、どこにエラーがあるのですか?

関数にジャンプするif条件において 、「'all_clouse' -function not defined」と表示されるのはなぜですか?

関数にパラメータを投入する必要があるのに、空のAll_clouse()を呼び出しているため

void All_clouse(int a,double x, double y)
理由: