mt4 (MetaTrader4)使い倒シストレ

メタトレーダー、自作インジケータ、自作EAで完全自動売買。使えるものは何でも使え。
インジケーター、EA(自動売買システム)製作のご依頼はこちらへ
Googolyen FX Factory
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


にほんブログ村 為替ブログ FX システムトレード派へ
--/--/--(--) --:--:-- | スポンサー広告 | Trackback(-) | Comment(-)
SetLevelValue
void SetLevelValue( int level, double value)

別ウィンドウに表示するインジケータのレベル表示の値を設定する。

Parameters:
level   -   レベル番号(0-31)
value    -   レベルの値
Sample:
SetLevelValue(1,3.14);


にほんブログ村 為替ブログ FX システムトレード派へ
スポンサーサイト
SetLevelStyle
void SetLevelStyle( int draw_style, int line_width, color clr=CLR_NONE)

この関数は別ウィンドウに表示されるインジケータのレベル表示のスタイル、幅、色を設定する。

Parameters:
draw_style   -   線種。1px以上の幅を持つ時に使われる。
                   EMPTYを設定すると、線種は変更されない。
line_width   -   線の幅。1-5までが有効。EMPTYを設定すると、幅は変更されない。
clr           -   ラインの色。この変数がなければラインの色は変更されない。
Sample:
//---- show levels as thick red lines
   SetLevelStyle(STYLE_SOLID,2,Red);


にほんブログ村 為替ブログ FX システムトレード派へ
SetIndexStyle
void SetIndexStyle( int index, int type, int style=EMPTY, int width=EMPTY, color clr=CLR_NONE)

インジケータラインのタイプ、スタイル、幅、色を設定する。

Parameters:
index   -   ラインインデックス。0-7
type    -   形式スタイル。形式識別子の内のどれか。
style   -   線種。1px以上の幅を持つ時に使われる。
             EMPTYを設定すると、線種は変更されない。
width   -   線の幅。1-5までが有効。EMPTYを設定すると、幅は変更されない。
clr      -   ラインの色。この変数がなければラインの色は変更されない。
Sample:
  SetIndexStyle(3, DRAW_LINE, EMPTY, 2, Red);


にほんブログ村 為替ブログ FX システムトレード派へ
SetIndexShift
void SetIndexShift( int index, int shift)

インジケータラインのシフト値を設定する。
もし正の数を設定すれば、ラインは右方向へシフトし、負の数を設定すれば左方向へシフトする。
つまり、現在の足において計算されている値は、現在の足に対して相対的にシフトして描かれる。

Parameters:
index   -   ラインインデックス。0-7
code   -   シフトさせる足の数
Sample:
//+------------------------------------------------------------------+
//| Alligator initialization function                                |
//+------------------------------------------------------------------+
int init()
  {
//---- line shifts when drawing
   SetIndexShift(0,JawsShift);
   SetIndexShift(1,TeethShift);
   SetIndexShift(2,LipsShift);
//---- first positions skipped when drawing
   SetIndexDrawBegin(0,JawsShift+JawsPeriod);
   SetIndexDrawBegin(1,TeethShift+TeethPeriod);
   SetIndexDrawBegin(2,LipsShift+LipsPeriod);
//---- 3 indicator buffers mapping
   SetIndexBuffer(0,ExtBlueBuffer);
   SetIndexBuffer(1,ExtRedBuffer);
   SetIndexBuffer(2,ExtLimeBuffer);
//---- drawing settings
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexStyle(2,DRAW_LINE);
//---- index labels
   SetIndexLabel(0,"Gator Jaws");
   SetIndexLabel(1,"Gator Teeth");
   SetIndexLabel(2,"Gator Lips");
//---- initialization done
   return(0);
  }


にほんブログ村 為替ブログ FX システムトレード派へ
SetIndexLabel
void SetIndexLabel( int index, string text)

データウィンドウに表示される、ラインの解説を設定する。

Parameters:
index   -   ラインインデックス。0-7
text   -   説明文。NULLを設定するとデータウィンドウに表示されない。
Sample:
//+------------------------------------------------------------------+
//| Ichimoku Kinko Hyo initialization function                       |
//+------------------------------------------------------------------+
int init()
  {
//----
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,Tenkan_Buffer);
   SetIndexDrawBegin(0,Tenkan-1);
   SetIndexLabel(0,"Tenkan Sen");
//----
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,Kijun_Buffer);
   SetIndexDrawBegin(1,Kijun-1);
   SetIndexLabel(1,"Kijun Sen");
//----
   a_begin=Kijun; if(a_begin< Tenkan) a_begin=Tenkan;
   SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_DOT);
   SetIndexBuffer(2,SpanA_Buffer);
   SetIndexDrawBegin(2,Kijun+a_begin-1);
   SetIndexShift(2,Kijun);
//---- Up Kumo bounding line does not show in the DataWindow
   SetIndexLabel(2,NULL);
   SetIndexStyle(5,DRAW_LINE,STYLE_DOT);
   SetIndexBuffer(5,SpanA2_Buffer);
   SetIndexDrawBegin(5,Kijun+a_begin-1);
   SetIndexShift(5,Kijun);
   SetIndexLabel(5,"Senkou Span A");
//----
   SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_DOT);
   SetIndexBuffer(3,SpanB_Buffer);
   SetIndexDrawBegin(3,Kijun+Senkou-1);
   SetIndexShift(3,Kijun);
//---- Down Kumo bounding line does not show in the DataWindow
   SetIndexLabel(3,NULL);
//----
   SetIndexStyle(6,DRAW_LINE,STYLE_DOT);
   SetIndexBuffer(6,SpanB2_Buffer);
   SetIndexDrawBegin(6,Kijun+Senkou-1);
   SetIndexShift(6,Kijun);
   SetIndexLabel(6,"Senkou Span B");
//----
   SetIndexStyle(4,DRAW_LINE);
   SetIndexBuffer(4,Chinkou_Buffer);
   SetIndexShift(4,-Kijun);
   SetIndexLabel(4,"Chinkou Span");
//----
   return(0);
  }


にほんブログ村 為替ブログ FX システムトレード派へ
SetIndexEmptyValue
void SetIndexEmptyValue( int index, double value)

カラ値を設定する。カラ値は描かれず、またデータウィンドウに値が表示されない。
デフォルトではカラ値はEMPTY_VALUEである

Parameters:
index   -   ラインインデックス。0-7
code   -   新しいカラ値
Sample:
int init()
  {
//---- 2 allocated indicator buffers
    SetIndexBuffer(0,ExtUppperBuffer);
    SetIndexBuffer(1,ExtLowerBuffer);
//---- drawing parameters setting
    SetIndexStyle(0,DRAW_ARROW);
    SetIndexArrow(0,217);
    SetIndexStyle(1,DRAW_ARROW);
    SetIndexArrow(1,218);
//---- 0 value will not be displayed
    SetIndexEmptyValue(0,0.0);
    SetIndexEmptyValue(1,0.0);
//---- displaying in DataWindow
    SetIndexLabel(0,"Fractal Up");
    SetIndexLabel(1,"Fractal Down");
//---- initialization done
   return(0);
  }


にほんブログ村 為替ブログ FX システムトレード派へ
SetIndexDrawBegin
void SetIndexDrawBegin( int index, int begin)

インジケータラインを開始する足の番号を設定する。
インジケータは左から右方向へ描かれる。
右から左方向へデータが与えられているインジケータ配列の値はデータウィンドウやチャートに表示することはできない。
デフォルトとして0を設定すれば、すべてのデータが描かれる。
Parameters:
index   -   ラインインデックス。0-7
begin   -   描き始める足の位置
Sample:
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(3);
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);
   SetIndexDrawBegin(0,SignalSMA);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 indicator buffers mapping
   SetIndexBuffer(0,ind_buffer1);
   SetIndexBuffer(1,ind_buffer2);
   SetIndexBuffer(2,ind_buffer3);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
//---- initialization done
   return(0);
  }


にほんブログ村 為替ブログ FX システムトレード派へ
SetIndexBuffer
bool SetIndexBuffer( int index, double array[])

グローバルで宣言された配列変数をカスタムインジケータの定義済みバッファと結合させる。
インジケータの計算に必要なバッファの数はIndicatorBuffers()関数で設定し、8を超えることはできない。
もし結合が成功すれば、TRUEを返し、それ以外はFALSEを返す。
エラーに関する情報を得たい場合は、GetLastError()関数を呼び出せばよい。


Parameters:
index   -   ラインインデックス。0-7
array[]   -   インジケータ値を保存しておく配列
Sample:
  double ExtBufferSilver[];
  int init()
    {
      SetIndexBuffer(0, ExtBufferSilver); // first line buffer
      // ...
    }


にほんブログ村 為替ブログ FX システムトレード派へ
SetIndexArrow
void SetIndexArrow( int index, int code)

DRAW_ARROW型の描写スタイルを持つインジケータラインの矢印コードを設定する
矢印コードは33から255以外使えない。

Parameters:
index   -   ラインインデックス。0-7
code   -   Wingdingsフォント矢印定数のコード値
Sample:
int init()
  {
//---- 2 allocated indicator buffers
    SetIndexBuffer(0,ExtUppperBuffer);
    SetIndexBuffer(1,ExtLowerBuffer);
//---- drawing parameters setting
    SetIndexStyle(0,DRAW_ARROW);
    SetIndexArrow(0,217);
    SetIndexStyle(1,DRAW_ARROW);
    SetIndexArrow(1,218);
//---- displaying in the DataWindow
    SetIndexLabel(0,"Fractal Up");
    SetIndexLabel(1,"Fractal Down");
//---- initialization done
   return(0);
  }


にほんブログ村 為替ブログ FX システムトレード派へ
IndicatorShortName
void IndicatorShortName( string name)

データウィンドウ、サブウィンドウに表示されるカスタムインジケータの簡易名を設定する

Parameters:
name   -   新しい簡易名
Sample:
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(3);
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);
   SetIndexDrawBegin(0,SignalSMA);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 indicator buffers mapping
   SetIndexBuffer(0,ind_buffer1);
   SetIndexBuffer(1,ind_buffer2);
   SetIndexBuffer(2,ind_buffer3);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
//---- initialization done
   return(0);
  }


にほんブログ村 為替ブログ FX システムトレード派へ
IndicatorDigits
void IndicatorDigits( int digits)

インジケータ値の精度(小数点以下の桁数)を設定する。
その通貨の価格精度は、インジケータが設置された通貨チャートの価格精度がデフォルト値として使われる。

Parameters:
digits   -   精度。小数点以下の桁数
Sample:
int init()
  {
//---- 2 additional buffers are used for counting.
   IndicatorBuffers(3);
//---- setting of drawing parameters
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);
   SetIndexDrawBegin(0,SignalSMA);
   IndicatorDigits(Digits+2);
//---- 3 allocated buffers of an indicator
   SetIndexBuffer(0,ind_buffer1);
   SetIndexBuffer(1,ind_buffer2);
   SetIndexBuffer(2,ind_buffer3);
//---- "short name" for DataWindow and indicator subwindow
   IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
//---- initialization done
   return(0);
  }


にほんブログ村 為替ブログ FX システムトレード派へ
IndicatorCounted
int IndicatorCounted( )

この関数はインジケータが起動して以降、変化していないローソク足の数を返す。
大部分のローソク足に再計算は必要ない。
大抵の場合、インデックス値の数の内、再計算が必要のないものがある。
この関数は計算の最適化を行うために使う。

Note:大抵の場合、最も新しいローソク足は計算されてはおらず、そのローソク足だけの再計算が必要となる。
しかしながら、新しいローソク足の最初のティックにおいて、カスタムインジケータがエキスパートから呼ばれた場合、ある境界問題が起こる。
一本前のローソク足の最終ティックは処理されず (というのは最後のティックが登場した時に、最後のティックではなくそのティックが処理されるからである)、カスタムインジケータは呼ばれず、上記の理由により計算されない。
このような状況でインジケータの計算エラーを回避する為に、IndicatorCounted()関数はローソク足の数から1引いた数を返す。
オフライン状態、もしくは市場取引が行われていない場合は、ティックが変化しない為、常に0を返す。
Sample:
  int start()
    {
     int limit;
     int counted_bars=IndicatorCounted();
  //---- check for possible errors
     if(counted_bars<0) return(-1);
  //---- the last counted bar will be recounted
     if(counted_bars>0) counted_bars--;
     limit=Bars-counted_bars;
  //---- main loop
     for(int i=0; i< limit; i++)
       {
        //---- ma_shift set to 0 because SetIndexShift called abowe
        ExtBlueBuffer[i]=iMA(NULL,0,JawsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
        ExtRedBuffer[i]=iMA(NULL,0,TeethPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
        ExtLimeBuffer[i]=iMA(NULL,0,LipsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);
       }
  //---- done
     return(0);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
IndicatorBuffers
void IndicatorBuffers( int count)

カスタムインジケータが計算する時のバッファのメモリ割り当てに用いる。
バッファの数は、8つを超えることはできず、またindicator_buffersプロパティで設定された値より小さくなってはならない。
もしカスタムインジケータにバッファを追加しなければならない時は、この関数を用いてバッファの総数を指定しなければならない。

Parameters:
count   -   メモリにバッファを割り当てる数。indicator_buffersか8を超えてはならない。
Sample:
#property  indicator_separate_window
#property  indicator_buffers 1
#property  indicator_color1  Silver
//---- インジケータ変数
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- インジケータバッファ
double     ind_buffer1[];
double     ind_buffer2[];
double     ind_buffer3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 2つのバッファを追加する。
   IndicatorBuffers(3);
//---- drawing settings
   SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,3);
   SetIndexDrawBegin(0,SignalSMA);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3つのバッファをマッピングする
   SetIndexBuffer(0,ind_buffer1);
   SetIndexBuffer(1,ind_buffer2);
   SetIndexBuffer(2,ind_buffer3);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("OsMA("+FastEMA+","+SlowEMA+","+SignalSMA+")");
//---- initialization done
   return(0);
  }


にほんブログ村 為替ブログ FX システムトレード派へ
Custom indicators
カスタムインジケータを造る時に使われる関数群。

これらの関数はエキスパートやスクリプト内では使うことができない。



にほんブログ村 為替ブログ FX システムトレード派へ
Designed by aykm.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。