初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 169

 
sandex:

サイズ1の静的な配列を宣言します。

コンパイルの後に1行表示されるのは、今回と前回のバージョンと同じです。以下はコードの全体像です。

#property copyright ""
#property link      ""
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
#property  indicator_type1   DRAW_LINE
#property  indicator_color1  clrMediumVioletRed
#property  indicator_style1  STYLE_SOLID
#property  indicator_label1  ""
#property  indicator_type2   DRAW_LINE
#property  indicator_color2  clrRed
#property  indicator_style2  STYLE_SOLID
#property  indicator_label2  "Sell TP"
input int Period_ = 34;         //Период
int ma1Handle;
double ma1Val[1];
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {   
SetIndexBuffer(0,ExtMapBuffer1,INDICATOR_DATA);
SetIndexBuffer(1,ExtMapBuffer2,INDICATOR_DATA);
ma1Handle=iMA(_Symbol,_Period,Period_,0,MODE_EMA,PRICE_CLOSE); 
   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[])
  {
ArraySetAsSeries(ma1Val,true);
int bars=Bars(_Symbol,_Period);
for(int i=0;i<bars;i++)
    {
    CopyBuffer(ma1Handle,0,i,1,ma1Val);
    ExtMapBuffer2[i]=ma1Val[0] - ((ma1Val[0]/100)*0.3);//ЗДЕСЬ НЕ ПОЛУЧАЕТСЯ ПОЛУЧИТЬ ЛИНИЮ
    }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
動作コードです。
ファイル:
Ind.mq5  3 kb
 

こんにちは。

MQL5を勉強しようと思い、MetaEditorでEAを生成する方法についての記事を読みました。すべてが明確ですが、EAの一部であるインディケータを自分のルールで取引させる方法は、例えばCCIインディケータは私が望むようには動いてくれません。私も、このところ、どうしたらいいかわからないでいます。

 
vitan06:

こんにちは。

MQL5を勉強しようと思い、MetaEditorでEAを生成する方法の記事を読みました。全ては明確ですが、EAの一部であるインジケータを自分のルールで取引させるにはどうしたらいいでしょうか。例えばCCIインジケータは私が必要としないものを作ります。買い注文は100を超えたところで開き、下から100まで超えたところで閉じ、売りも同じようにする方法です。私も、このところ、どうしたらいいかわからないでいます。

気が抜けた質問があるのですが、MQL4はどのようにお使いですか?
 
やだ
 
sandex:
動作コードです。
ありがとうございました。効果あり!!!
 
vitan06:
やだ

であれば、コードジェネレータのことは忘れても大丈夫です。

MAまたはMACDの配信から標準的な例を開く

インジケータをCCIに変更する

で、行く

 

こんにちは。

私見ではありますが、くだらない質問で申し訳ありません。

mql5でEAを書いて、ちゃんとロードして、テストして、自宅のラップトップでデモで試して、今はVPSでデモが動いているんです。

ノートパソコンからアンインストールしました。VPSのソースに何か細工をした。

VPSからラップトップにロードしようとしたが、MQL5が表示されない!W7のエクスプローラーにはあるべきところにあるが、MQL5にはない。

オープンファイル経由のメタエディターで検索、編集、保存。

コンパイルしようとすると、1行目にCannot create interface of MQL compilerという エラーが出ます。このエラーは何ですか?

どうしたら いいんだろう?

 

インジケータコードで現在の価格を 取得し、別のインジケータと比較して線を引く方法を教えてください。

Expert Advisorで現在の価格を取得する。

MqlTick latest_price;       
double iclose=latest_price.bid;
でも、どうやってインジケーターに取り込めばいいんだろう?
 
forexman77:

インジケータコードで現在の価格を 取得し、別のインジケータと比較して線を引く方法を教えてください。

EAでは、次のように現在の価格を取得しています。

でも、どうやってインジケーターに取り込めばいいんだろう?
インジケーターのコード、関数OnCalculate()を見てください。
理由: