mt4 (MetaTrader4)使い倒シストレ

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


にほんブログ村 為替ブログ FX システムトレード派へ
--/--/--(--) --:--:-- | スポンサー広告 | Trackback(-) | Comment(-)
ArraySort
int ArraySort( double&array[], int count=WHOLE_ARRAY, int start=0, int sort_dir=MODE_ASCEND)

1次元目をソートする。直列配列ではArraySort()ではソートできない。
Parameters:
array[]   -   ソートする配列
count     -   ソートする要素の数。デフォルトでは、全要素
start     -   ソートする最初のインデックス。デフォルトでは最初の要素からソートする
sort_dir  -   ソート方向。以下の値をとる:
               MODE_ASCEND:順方向
               MODE_DESCEND:逆方向
Sample:
  double num_array[5]={4,1,6,3,9};
  // now array contains values 4,1,6,3,9
  ArraySort(num_array);
  // now array is sorted 1,3,4,6,9
  ArraySort(num_array,WHOLE_ARRAY,0,MODE_DESCEND);
  // now array is sorted 9,6,4,3,1


にほんブログ村 為替ブログ FX システムトレード派へ
スポンサーサイト
ArraySize
int ArraySize( object &array[])

配列に含まれる全要素の数を返す。
1次元配列においてArraySize関数による返り値はArrayRange(array,0)と同じである。
Parameters:
array[]     -   配列
Sample:
int count=ArraySize(array1);
for(int i=0; i < count; i++)
  {
   // some calculations.
  }


にほんブログ村 為替ブログ FX システムトレード派へ
ArraySetAsSeries
bool ArraySetAsSeries( object &array[], bool set)

配列のインデックス方向を設定する。
もしset変数がTRUEの場合、配列は逆順にインデックス化される。
つまり最終要素のインデックスが0となる。
FLASEの場合は基本的なインデックス順である。
この関数は前の状態を返す。
Parameters:
array[] -   設定する配列
set     -   配列のインデックス順
Sample:
double macd_buffer[300];
double signal_buffer[300];
int    i,limit=ArraySize(macd_buffer);
ArraySetAsSeries(macd_buffer,true);
 
for(i=0; i< limit; i++)
   macd_buffer[i]=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)
                   - iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i);
   
for(i=0; i< limit; i++)
   signal_buffer[i]=iMAOnArray(macd_buffer,limit,9,0,MODE_SMA,i);


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayResize
int ArrayResize( object &array[], int new_size)

1番目の次元を新しいサイズに設定する。
もし成功したらリサイズ後の配列要素数を返し、リサイズできなかった場合は-1を返す。
Note:関数内のようにローカルで宣言されていたりリサイズされた配列は、この関数を用いても変更されない。この関数が再び呼ばれた後、配列は宣言時とは異なる大きさになる。
Parameters:
array[]     -   リサイズする配列
new_size    -   1番目の次元の新しいサイズ
Sample:
double array1[][4];
int    element_count=ArrayResize(array1, 20);
// 新しいサイズは80となる


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayRange
int ArrayRange( object &array[], int range_index)

配列内の指定した次元内にある要素の数を返す。インデックスは0から始まり、最大要素のインデックスは、次元サイズ-1となる。
Parameters:
array[]     -   検索する配列
range_index -   次元番号
Sample:
int    dim_size;
double num_array[10,10,10];
dim_size=ArrayRange(num_array, 1);


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayMinimum
int ArrayMinimum( object array[], int count=WHOLE_ARRAY, int start=0)

要素内の最小値を検索する。この関数は最小値要素を持つ配列内の位置を返す。
Parameters:
array[]   -   検索する配列
count     -   検索する要素の数。デフォルトでは、全要素
start     -   検索する最初のインデックス。デフォルトでは最初の要素から検索 
Sample:
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int    minValueidx=ArrayMinimum(num_array);
Print("Min value = ", num_array[minValueIdx]);


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayMaximum
int ArrayMaximum( object array[], int count=WHOLE_ARRAY, int start=0)

要素内の最大値を検索する。この関数は最大値要素を持つ配列内の位置を返す。
Parameters:
array[]   -   検索する配列
count     -   検索する要素の数。デフォルトでは、全要素
start     -   検索する最初のインデックス。デフォルトでは最初の要素から検索 
Sample:
double num_array[15]={4,1,6,3,9,4,1,6,3,9,4,1,6,3,9};
int    maxValueIdx=ArrayMaximum(num_array);
Print("Max value = ", num_array[maxValueIdx]);


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayIsSeries
bool ArrayIsSeries( object array[])

もし配列が直列配列 (Time[]、Open[]、Close[]、High[]、Low[]、Volume[])である場合にTRUEを返す。それ以外はFALSEを返す。
Parameters:
array[]  -   チェックしたい配列
Sample:
   if(ArrayIsSeries(array1)==false)
     ArrayInitialize(array1,0);
   else
     {
      Print("Series array cannot be initialized!");
      return(-1);
     }


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

数値配列の要素を同じ値で設定する。初期化した要素の数を返す。
Note:カスタムインジケータのinit()関数のような関数内でインデックスバッファを、"empty_value"で自動的に初期化することは推奨されない。
Parameters:
array[]   -   初期化したい数値配列
value     -   初期値
Sample:
  //---- initializing of all array elements with 2.1
  double myarray[10];
  ArrayInitialize(myarray,2.1);


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayGetAsSeries
int ArrayGetAsSeries( object array[])

もし配列が直列配列 (配列要素が最古から最新の順でインデックス化されている)である場合にTRUEを返す。それ以外はFALSEを返す。
Parameters:
array[]  -   チェックしたい配列
Sample:
  if(ArrayGetAsSeries(array1)==true)
    Print("array1 is indexed as a series array");
  else
    Print("array1 is indexed normally (from left to right)");


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayDimension
int ArrayDimension( object array[])

複次元配列の次元数を返す。
Parameters:
array[]  -   次元数を知りたい配列
Sample:
int num_array[10][5];
int dim_size;
dim_size=ArrayDimension(num_array);
// dim_size=2


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayCopySeries
int ArrayCopySeries(double &array[], int series_index, string symbol=NULL, int timeframe=0)

直列配列をコピーし、コピーした要素の数を返す。

データ配列の実メモリ割り当てはせず、何もコピーされない。
このような配列へのアクセスはリダイレクトされる。
カスタムインジケータにおけるインデックス配列として代入された配列は除く。
この場合、データは実コピーされる。

もし今とは異なる通貨名や時間枠のデータが他のチャートからコピーされれば、必要データが不足する可能性がある。
この時ERR_HISTORY_WILL_UPDATEDエラー(4066 - 要求されたデータが未更新)が最後のエラー値になった場合、ある一定の時間を置いた後で、再コピーをする必要がある。

Notes:もしseries_indexがMODE_TIMEならば、関数へ渡される配列はdetetime型でなければならない。

Parameters:
array[]      -   double型2次元配列のコピー先への参照
series_index -   直列アレイ識別子。これらは直列データ識別子のどれかの値をとる。
symbol       -   シンボル名 (通貨ペア名)
timeframe    -   時間枠。これらは時間枠の値のどれかをとる
Sample:
datetime daytimes[];
int      shift=10,dayshift,error;
//---- the Time[] array was sroted in the descending order
ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);
error=GetLastError();
if(error==4066)
  {
   //---- make two more attempts to read
   for(int i=0;i<2; i++)
     {
      Sleep(5000);
      ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);
      //---- check the current daily bar time
      datetime last_day=daytimes[0];
      if(Year()==TimeYear(last_day) && Month()==TimeMonth(last_day) 
        && Day()==TimeDay(last_day)) break;
     }
  }
if(Time[shift]>=daytimes[0]) dayshift=0;
else
  {
   dayshift=ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND);
   if(Period()< PERIOD_D1) dayshift++;
  }
Print(TimeToStr(Time[shift])," corresponds to ",dayshift," day bar opened at ",
      TimeToStr(daytimes[dayshift]));



にほんブログ村 為替ブログ FX システムトレード派へ
ArrayCopyRates
int ArrayCopyRates(double &dest_array[], string symbol=NULL, int timeframe=0)

チャートの価格情報配列から価格を2次元配列にコピーし、コピーした足の数を返す。
価格情報配列の最初の次元は足の数が含まれている。
2番目の次元には6つの要素がある:
0-時間、
1-始値、
2-安値、
3-高値、
4-終値、
5-出来高、

もしデータ(現在の通貨、時間枠と異なるデータ)が他のチャートから要求された場合、クライアント端末でそのチャートを開くことはできず、必要なデータはサーバへと要求しなければならない。
この時、ERR_HISTORY_WILL_UPDATEDエラー(4066 - 要求されたデータが未更新)が最後のエラー値になった場合、サーバへ再要求をしなければならない(ArrayCopySeries()のExampleを参照)。

Notes:この価格配列は通常、DLL関数へデータを渡す為に使われる。 メモリはデータ配列には割り当てられず、厳密はコピーではない。このような配列へのアクセスはリダイレクトされる。
Parameters:
dest_array[]  -   double型2次元配列のコピー先への参照
symbol        -   シンボル名 (通貨ペア名)
timeframe     -   時間枠。これらは時間枠の値のどれかをとる
Sample:
double array1[][6];
  ArrayCopyRates(array1,"EURUSD", PERIOD_H1);
  Print("Current bar ",TimeToStr(array1[0][0]),"Open", array1[0][1]);


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayCopy
int ArrayCopy(object &dest[], object source[], int start_dest=0, int start_source=0, int count=WHOLE_ARRAY)

配列を他の配列にコピーする。配列同士は同じ型でなければならないが、double[]、int[]、datetime[]、color[]、bool[]型は同じ型としてコピーされる。
コピーされた要素数を返す。

Parameters:
dest[]         -   コピー先の配列
source[]       -   コピー元の配列
start_dest     -   コピー先の配列の開始インデックス。デフォルトでは0
start_source   -   コピー元の配列の開始インデックス。デフォルトでは0
count          -   コピーする要素数。デフォルトでは全要素
Sample:
double array1[][6];
  double array2[10][6];
  // array2 is filled with some data
  ArrayCopyRates(array1);
  ArrayCopy(array2,array1,0,0,60);
  // array2 is having the first 10 bars from the history now
  //(first bar considered as bar with index [Bars-1])
  ArrayCopy(array2,array1,0,Bars*6-60,60);
  // array2 is having the last 10 bars from the history now
  //(last bar considered as current bar, bar wit index [0])


にほんブログ村 為替ブログ FX システムトレード派へ
ArrayBsearch
int ArrayBsearch(double array[], double value, int count=WHOLE_ARRAY, int start=0, int direction=MODE_ASCEND)

配列の最初の次元において、一致した値がある場合はそのインデックスを、一致した値が無い場合は最も近い値のインデックスを返す。 この関数は文字列配列、直列配列で使うことはできない (足の開始時間配列は除く)。
Note:二分探索法ではソート済み配列しか処理できない。数値配列をソートするにはArraySort()関数を用いる。

Parameters:
array[]   -   検索する配列
value     -   検索する値 
count     -   検索する要素の数。デフォルトでは、全要素
start     -   検索する最初のインデックス。デフォルトでは最初の要素から検索 
direction -   検索方向。以下の値をとる:
                MODE_ASCEND:順方向
                MODE_DESCEND:逆方向
Sample:
datetime daytimes[];
   int      shift=10,dayshift;
   // All the Time[] series are sorted in descendant mode
   ArrayCopySeries(daytimes,MODE_TIME,Symbol(),PERIOD_D1);
   if(Time[shift]>=daytimes[0]) dayshift=0;
   else
     {
      dayshift=ArrayBsearch(daytimes,Time[shift],WHOLE_ARRAY,0,MODE_DESCEND);
      if(Period()< PERIOD_D1) dayshift++;
     }
   Print(TimeToStr(Time[shift])," corresponds to ",dayshift," day bar opened at ",
         TimeToStr(daytimes[dayshift]));


にほんブログ村 為替ブログ FX システムトレード派へ
Array functions
配列を操作する為の関数群。

配列は最高4次元まで許されている。
各次元は0から次元サイズ-1でインデックス化されている。
詳しく言うと、50要素の1次元配列の場合、最初の要素へのアクセスはarray[0]と表現でき、最終要素はarray[49]と表現できる。

配列の特性が量的、質的に変化しない配列へこれらの関数を用いることによって、 Time[]Open[]High[]Low[]Close[]Volume[] のような定義済の時系列配列を処理することができる。


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