mt4 (MetaTrader4)使い倒シストレ

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


にほんブログ村 為替ブログ FX システムトレード派へ
--/--/--(--) --:--:-- | スポンサー広告 | Trackback(-) | Comment(-)
OrderSelect
bool OrderSelect(int index, int select, int pool=MODE_TRADES)

この関数はオーダーを深く処理する為にオーダーを選択する。
もしTRUEが返れば、成功した。もしFALSEが返れば、失敗している。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
もしチケット番号によってオーダーが選択されるならば、pool変数は無視される。
チケット番号とは重複しないオーダー識別である。選択済みのオーダーリストから見つけるためには、クローズ時間を解析しなければならない。
もしクローズ時間が0ならば、そのオーダーはまだ有効か未決であり、端末の有効ポジションリストから取得される。
それはオーダータイプ毎の未決オーダーから有効ポジションを区別することができる。
もしオーダーのクローズ時間が0以外なら、そのオーダーは決済されたか、削除されたものであり、ターミナルヒストリーから選択される。
それらもまたオーダータイプ毎に異なる。 現在選択されているオーダーの手数料を返す。

Parameters:
index    -   オーダー番号か2番目の引数に依存するオーダーチケット
select      -   選択フラグ。これは以下の値をとる:
                 SELECT_BY_POS - オーダー番号
                 SELECT_BY_TICKET - チケット番号
pool=MODE_TRADES  -   オーダー番号の選択。
                         SELECT_BY_POSを指定した時に用いる。これらは以下の値をとる:
                         MODE_TRADES(デフォルト) - 有効ポジションリストから選択される
                         MODE_HISTORY - ヒストリーリストから選択される

Sample:
  if(OrderSelect(12470, SELECT_BY_TICKET)==true)
    {
     Print("order #12470 open price is ", OrderOpenPrice());
     Print("order #12470 close price is ", OrderClosePrice());
    }
  else
    Print("OrderSelect returned the error of ",GetLastError());


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

現在選択されているオーダーの収益(スワップ、手数料は除く)を返す。
決済していないポジションでは、未確定の収益である。
決済済みポジションでは決定した収益である。
現在選択されているオーダーの収益を返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10, SELECT_BY_POS)==true)
    Print("Profit for the order 10 ",OrderProfit());
  else
    Print("OrderSelect returned the error of ",GetLastError());


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

現在選択されているオーダーの情報を以下のフォーマットでログに出力する。
チケット番号;オープン時間;トレードタイプ;ロット数;オープン価格;ストップロス値;利確値;クローズ時間;クローズ価格;手数料;スワップ;収益;コメント;識別番号;有効期限
オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10, SELECT_BY_TICKET)==true)
    OrderPrint();
  else
    Print("OrderSelect failed error code is",GetLastError());


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

現在選択されているオーダーのオープン時間を返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10, SELECT_BY_POS)==true)
    Print("open time for the order 10 ",OrderOpenTime());
  else
    Print("OrderSelect returned error of ",GetLastError());


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

現在選択されているオーダーのオープン価格を返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10, SELECT_BY_POS)==true)
    Print("open price for the order 10 ",OrderOpenPrice());
  else
    Print("OrderSelect returned the error of ",GetLastError());


にほんブログ村 為替ブログ FX システムトレード派へ
OrderModify
bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color Color=CLR_NONE)

前回開いたポジションや未決オーダーを修正する。
もし成功すれば、この関数はTRUEを返す。
もし失敗すれば、この関数はFALSEを返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Notes:指定価格と有効期限は未決オーダーでのみ変更できる。
もし関数に指定した値で変更されなかった場合、1(ERR_NO_RESULT)エラーが生成される。
未決決済の有効期限が使えないトレードサーバもある。この場合、expiration変数に0でない値を指定すると、147(ERR_TRADE_EXPIRATION_DENIED)エラーを生成する。

Parameters:
ticket    -   重複しないオーダーチケット
price      -   未決オーダーのエントリー価格
stoploss     -   ストップロス値
takeprofit  -   利確値
expiration  -   有効期限
Color     -   チャート上の決済矢印の色。
              もしこの変数が間違っているかCLR_NONE値であれば
              チャート上に何も描かれない。
Sample:
  if(TrailingStop>0)
    {
     OrderSelect(12345,SELECT_BY_TICKET);
     if(Bid-OrderOpenPrice()>Point*TrailingStop)
       {
        if(OrderStopLoss()< Bid-Point*TrailingStop)
          {
           OrderModify(OrderTicket(),OrderOpenPrice(),
                       Bid-Point*TrailingStop,OrderTakeProfit(),0,Blue);
           return(0);
          }
       }
    }


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

現在選択されているオーダーの識別番号を返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10,SELECT_BY_POS)==true)
    Print("Magic number for the order 10 ", OrderMagicNumber());
  else
    Print("OrderSelect returned error of ",GetLastError());


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

現在選択されているオーダーのロット数を返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10,SELECT_BY_POS)==true)
    Print("lots for the order 10 ",OrderLots());
  else
    Print("OrderSelect returned error of ",GetLastError());


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

現在選択されているオーダーの有効期限を返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10, SELECT_BY_TICKET)==true)
    Print("Order expiration for the order #10 is ",OrderExpiration());
  else
    Print("OrderSelect returned error of ",GetLastError());


にほんブログ村 為替ブログ FX システムトレード派へ
OrderDelete
bool OrderDelete( int ticket, color Color=CLR_NONE)

前回開いた未決注文を削除する。
もし成功すれば、この関数はTRUEを返す。
もし失敗すれば、この関数はFALSEを返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
ticket    -   重複しないオーダーチケット番号
Color     -   チャート上の決済矢印の色。
              もしこの変数が間違っているかCLR_NONE値であれば
              チャート上に何も描かれない。
Sample:
  if(Ask>var1)
    {
     OrderDelete(order_ticket);
     return(0);
    }


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

現在選択されているオーダーの手数料を返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10,SELECT_BY_POS)==true)
    Print("Commission for the order 10 ",OrderCommission());
  else
    Print("OrderSelect failed error code is",GetLastError());


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

現在選択されているオーダーのコメントを返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  string comment;
  if(OrderSelect(10,SELECT_BY_TICKET)==false)
    {
     Print("OrderSelect failed error code is",GetLastError());
     return(0);
    }
  comment = OrderComment();
  // ...


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

現在選択されているオーダーのクローズ時間を返す。
もしオーダーのクローズ時間が0でなければ、オーダーは選択され、決済されており、アカウントヒストリーからデータを回収する。
保有中や未決注文のクローズ時間は0である。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(10,SELECT_BY_POS,MODE_HISTORY)==true)
    {
     datetime ctm=OrderOpenTime();
     if(ctm>0) Print("Open time for the order 10 ", ctm);
     ctm=OrderCloseTime();
     if(ctm>0) Print("Close time for the order 10 ", ctm);
    }
  else
    Print("OrderSelect failed error code is",GetLastError());


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

現在選択されているオーダーのクローズ価格を返す。
Note:オーダーはOrderSelect()関数によって事前に選択されていなければならない。

Sample:
  if(OrderSelect(ticket,SELECT_BY_POS)==true)
    Print("Close price for the order ",ticket," = ",OrderClosePrice());
  else
    Print("OrderSelect failed error code is",GetLastError());


にほんブログ村 為替ブログ FX システムトレード派へ
OrderCloseBy
bool OrderCloseBy( int ticket, int opposite, color Color=CLR_NONE)

逆方向のポジション(BUYとSELL、SELLとBUY)を同時に閉じる。
もし成功すれば、この関数はTRUEを返す。
もし失敗すれば、この関数はFALSEを返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
ticket    -   重複しないオーダーチケット番号
lots      -   重複しない逆方向オーダーチケット番号
Color     -   チャート上の決済矢印の色。
              もしこの変数が間違っているかCLR_NONE値であれば
              チャート上に何も描かれない。
Sample:
  if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
     OrderCloseBy(order_id,opposite_id);
     return(0);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
OrderClose
bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)

ポジションを閉じる。
もし成功すれば、この関数はTRUEを返す。
もし失敗すれば、この関数はFALSEを返す。
エラー情報の詳細を得たい場合はGetLastError()関数を呼び出す。
Parameters:
ticket    -   重複しないオーダーチケット
lots      -   ロット数
price     -   決済したい価格
slippage  -   最大スリッページポイント
Color     -   チャート上の決済矢印の色。
              もしこの変数が間違っているかCLR_NONE値であれば
              チャート上に何も描かれない。
Sample:
  if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
    {
     OrderClose(order_id,1,Ask,3,Red);
     return(0);
    }


にほんブログ村 為替ブログ FX システムトレード派へ
Execution errors
いくつかのトレード操作(OrderSend()、OrderClose()、OrderCloseBy()、OrderDelete()、OrderDelete()、OrderModify関数)は失敗する可能性があり、その時エラーとなり、負のチケット番号かFALSEを返す。
失敗した理由を特定するには、GetLastError()関数を呼び出す。
全てのエラーは特別な方法によって処理されなければならない。
最も普通の提案を以下に示す。

エラーコードはトレードサーバから返される。
定数 説明
ERR_NO_ERROR 0 トレード処理成功
ERR_NO_RESULT 1 OrderModify()はすでに設定された値と同じ値を設定しようと試みる。一つ以上の値は変更されるべきであり、修正行為は繰り返すことができる。
ERR_COMMON_ERROR 2 共通エラー。トレードは原因が明確になるまでストップする。もしかするとOSやクライアント端末の再起動が必要。
ERR_INVALID_TRADE_PARAMETERS 3 無効なトレード変数がトレード関数に渡された。例えば不正な通貨、未知のトレード操作子、負のスリッページ、存在しないチケット番号、等。プログラムのロジックを変更しなければならない。
ERR_SERVER_BUSY 4 トレードサーバがビジー状態。ある程度(数分以上)時間が経った後に再度試みる。
ERR_OLD_VERSION 5 クライアント端末が古いバージョン。最新のクライアント端末をインストールしなければならない。
ERR_NO_CONNECTION 6 トレードサーバと接続できない。接続の切断を確認する(例えばIsConnected()関数を使う)必要があり、数秒(5秒以上)後、再接続を試みる。
ERR_TOO_FREQUENT_REQUESTS 8 要求が多すぎる。要求の頻度を少なくするように、プログラムロジックを変更しなければならない。
ERR_ACCOUNT_DISABLED 64 アカウント無効。全てのトレードを停止すべき。
ERR_INVALID_ACCOUNT 65 無効なアカウント。全てのトレードを停止すべき。
ERR_TRADE_TIMEOUT 128 トレード時間切れが迫っている。エントリー前(遅くとも1分前)にトレードが成功していないか(新しいポジションが開いていない、存在する注文が修正されていない、削除されていない。ポジションが閉じていない)を確認する必要がある。
ERR_INVALID_PRICE 129 無効な価格値か正規化されていない価格。5秒後、RefreshRates()関数を用いてデータの更新をした後、再度試みる。もし、エラーが無くならなければ、トレードを停止し、プログラムロジックを変更しなければならない。
ERR_INVALID_STOPS 130 ストップ値が非常に近い、もしくは価格が不正か注文価格が正規化されていない。もし価格の衰微が原因でエラーが起きただけなら、試みを繰り返すことができる。5秒後、RefreshRates()関数を用いてデータの更新をした後、再度試みる。もし、エラーが無くならなければ、トレードを停止し、プログラムロジックを変更しなければならない。
ERR_INVALID_TRADE_VOLUME 131 無効なロット数で、精度に問題がある。全てのトレードを停止し、プログラムロジックを変更しなければならない。
ERR_MARKET_CLOSED 132 市場が閉じている。ある程度(数分以上)時間が経った後に再度試みる。
ERR_TRADE_DISABLED 133 トレード無効化。全てのトレードを停止するべき。
ERR_NOT_ENOUGH_MONEY 134 売買するための十分な資金が無い。同じ変数でのトレードでは再試行できない。5秒後にロット数を落として再試行する。しかし売買を完了するのに十分な資金があることを確認する必要がある。
ERR_PRICE_CHANGED 135 価格値が変更された。RefreshRates()関数を用いて、すぐにデータの更新をし、再試行する。
ERR_OFF_QUOTES 136 相場価格が無い。何かの原因(例えば、セッションが始まってからの価格ではない、正規化されていない価格、市場より早い)によって、仲介業者がその価格を提供せず、拒否している。5秒後、RefreshRates()関数を用いてデータの更新をした後、再度試みる。。もし、エラーが無くならなければ、トレードを停止し、プログラムロジックを変更しなければならない。
ERR_REQUOTE 138 指定した価格が時間外の価格、またはbidとaskがごちゃ混ぜになっている。RefreshRates()関数を用いて、すぐにデータの更新をし、再試行する。もし、エラーが無くならなければ、トレードを停止し、プログラムロジックを変更しなければならない。
ERR_ORDER_LOCKED 139 注文がロックされている。全てのトレードを停止し、プログラムロジックを変更しなければならない。
ERR_LONG_POSITIONS_ONLY_ALLOWED 140 買いポジションだけ許されている。SELL操作子で再試行することはできない。
ERR_TOO_MANY_REQUESTS 141 要求が多すぎる。要求の頻度を少なくするように、プログラムロジックを変更しなければならない。

142 その注文は仲介業者の実行待ち状態である。エラーではないが、クライアント端末とトレードサーバ間の相互作用コードである。このコードは稀にしか得ることができず、売買操作の実行中に接続切断、再接続が起きた時にしか得ることができない。このコードはエラー128と同じように処理するべきである。

143 注文が仲介業者に受け入れられた。クライアント端末とトレードサーバ間の相互作用コードである。コード142と同様の理由で現れる。このコードはエラー128と同じように処理するべきである。

144 注文がクライアント側の確認作業によって破棄された。クライアント端末とトレードサーバ間の相互作用コードである。
ERR_TRADE_MODIFY_DENIED 145 オーダー値が市場値と近く、すぐに実行することができないので修正が拒否された。RefreshRates()関数を用いて、15秒後にデータの更新をし、その後再試行する。
ERR_TRADE_CONTEXT_BUSY 146 トレード状況がビジー状態。IsTradeContextBusy()関数がFALSEを返す場合だけ再試行する。
ERR_TRADE_EXPIRATION_DENIED 147 期限切れの注文を使用したため、仲介業者によって破棄された。有効期限がゼロ化されているなら、再試行することができる。
ERR_TRADE_TOO_MANY_ORDERS 148 オーダー数が仲介側の設定した限度を超えている。存在するポジションやオーダーを閉じるか、削除した後にだけ、新しいポジションや未決注文を置くことができる。


にほんブログ村 為替ブログ FX システムトレード派へ
Trading functions
トレードを担う関数群。

OrderSend()OrderClose()OrderCloseBy()OrderDelete()OrderModify()、関数はカスタムインジケータから呼び出すことはできない。

トレード関数はエキスパートかスクリプト内でしか使えない。
トレード関数は"Allow live trading"プロパティにチェックが入っている場合だけ、呼び出すことができる。

エキスパートやスクリプトからトレードをするには、プログラムのトレード状況(エキスパートやスクリプトからの自動売買)に一つのスレッドしか与えられない。
なぜならば、もしこの状況がエキスパート売買によって占領されていれば、他のエキスパートやスクリプトは146 (ERR_TRADE_CONTEXT_BUSY)エラーが原因でしばらくの間、トレード関数を呼び出すことができないからである。
トレードの不可をチェックするにはIsTradeAllowed()関数を用いる。
トレード状況へのアクセス占有をクリアするために、GlobalVariableSetOnCondition()関数を用いて変更すべきグローバル変数値を基本とするセマフォを使うことができる。



にほんブログ村 為替ブログ FX システムトレード派へ
iVolume
double iVolume( string symbol, int timeframe, int shift)

symboltimeframeshiftによって指定された出来高を返す。
もし、過去データが読み込めず、カラだった場合、この関数は0を返す。
現在のチャートにおいて終値は定義済み変数Volume[]内にある。
Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
shift      - 現在の足から何本前の値を出したいか
Sample:
  Print("Current bar for USDCHF H1:",
        iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
        iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
        iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));


にほんブログ村 為替ブログ FX システムトレード派へ
iTime
datetime iTime( string symbol, int timeframe, int shift)

symboltimeframeshiftによって指定された時間を返す。
もし、過去データが読み込めず、カラだった場合、この関数は0を返す。
現在のチャートにおいて終値は定義済み変数Time[]内にある。
Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
shift      - 現在の足から何本前の値を出したいか
Sample:
  Print("Current bar for USDCHF H1:",
        iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
        iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
        iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));


にほんブログ村 為替ブログ FX システムトレード派へ
iOpen
double iOpen( string symbol, int timeframe, int shift)

symboltimeframeshiftによって指定された始値を返す。
もし、過去データが読み込めず、カラだった場合、この関数は0を返す。
現在のチャートにおいて終値は定義済み変数Open[]内にある。
Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
shift      - 現在の足から何本前の値を出したいか
Sample:
  Print("Current bar for USDCHF H1:",
        iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
        iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
        iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));


にほんブログ村 為替ブログ FX システムトレード派へ
iLowest
int iLowest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

指定されたtype、期間内で最小値を持つ足のシフト値を返す。

Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
type       - 直列配列識別子。識別子のどれか。
count      - 計算を実行する本数(最新足から過去足方向へ数える)。
start      - 現在の足から数えて何本前の足から計算するか
Sample:
// calculating the lowest value on the 10 consequtive bars in the range
// from the 10th to the 19th index inclusive on the current chart
double val=Low[iLowest(NULL,0,MODE_LOW,10,10)];


にほんブログ村 為替ブログ FX システムトレード派へ
iLow
double iLow( string symbol, int timeframe, int shift)

symboltimeframeshiftによって指定された安値を返す。
もし、過去データが読み込めず、カラだった場合、この関数は0を返す。
現在のチャートにおいて終値は定義済み変数Low[]内にある。
Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
shift      - 現在の足から何本前の値を出したいか
Sample:
  Print("Current bar for USDCHF H1:",
        iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
        iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
        iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));


にほんブログ村 為替ブログ FX システムトレード派へ
iHighest
int iHighest( string symbol, int timeframe, int type, int count=WHOLE_ARRAY, int start=0)

指定されたtype、期間内で最大値を持つ足のシフト値を返す。

Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
type       - 直列配列識別子。識別子のどれか。
count      - 計算を実行する本数(最新足から過去足方向へ数える)。
start      - 現在の足から数えて何本前の足から計算するか
Sample:
  double val;
  // calculating the highest value on the 20 consequtive bars in the range
  // from the 4th to the 23rd index inclusive on the current chart
  val=High[iHighest(NULL,0,MODE_HIGH,20,4)];


にほんブログ村 為替ブログ FX システムトレード派へ
iHigh
double iHigh( string symbol, int timeframe, int shift)

symboltimeframeshiftによって指定された高値を返す。
もし、過去データが読み込めず、カラだった場合、この関数は0を返す。
現在のチャートにおいて終値は定義済み変数High[]内にある。
Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
shift      - 現在の足から何本前の値を出したいか
Sample:
  Print("Current bar for USDCHF H1:",
        iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
        iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
        iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));


にほんブログ村 為替ブログ FX システムトレード派へ
iClose
double iClose( string symbol, int timeframe, int shift)

symboltimeframeshiftによって指定された終値を返す。
もし、過去データが読み込めず、カラだった場合、この関数は0を返す。
現在のチャートにおいて終値は定義済み変数Close[]内にある。
Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
shift      - 現在の足から何本前の値を出したいか
Sample:
  Print("Current bar for USDCHF H1:",
        iTime("USDCHF",PERIOD_H1,i),", ",  iOpen("USDCHF",PERIOD_H1,i),", ",
        iHigh("USDCHF",PERIOD_H1,i),", ",  iLow("USDCHF",PERIOD_H1,i),", ",
        iClose("USDCHF",PERIOD_H1,i),", ", iVolume("USDCHF",PERIOD_H1,i));


にほんブログ村 為替ブログ FX システムトレード派へ
iBarShift
int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)

開始時間から足を検索する。
この関数は指定された開始時間に該当する足のシフト値を返す。
もし指定された開始時間を持つ足が見つからない場合、この関数は-1を返す。
exactの値によっては最も近い足のシフト値を返す。
Parameters:
symbol     - 通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
time       - 検索したい開始時間
exact      - 見つからなかった場合の返り値モード。
              false:最も近い足のシフト値
              true:-1
Sample:
  datetime some_time=D'2004.03.21 12:00';
  int      shift=iBarShift("EUROUSD",PERIOD_M1,some_time);
  Print("shift of bar with open time ",TimeToStr(some_time)," is ",shift);


にほんブログ村 為替ブログ FX システムトレード派へ
iBars
double iBars( string symbol, int timeframe)

指定されたチャートの足の数を返す。
現在のチャートにおいて、足の数は定義済み変数Barsである。

Parameters:
symbol     - 計算したい通貨名。NULLを指定すると現在の通貨。
timeframe - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
Sample:
  Print("Bar count on the 'EUROUSD' symbol with PERIOD_H1 is",
        iBars("EUROUSD",PERIOD_H1));


にほんブログ村 為替ブログ FX システムトレード派へ
Timeseries access
様々な通貨や期間の価格データにアクセスする為の関数群。

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

テストにおいて価格データは、同一通貨であれば他の時間枠であっても、出来高を除いて正しくモデル化される。
他の時間枠の出来高はモデル化されない。
他通貨の価格データもモデル化されない。
しかし、時系列のbarsの値はどのような状況でも正しくモデル化される。



にほんブログ村 為替ブログ FX システムトレード派へ
iWPR
double iWPR( string symbol, int timeframe, int period, int shift)

Larry William's Percent Rangeを計算し、値を返す。

Parameters:
symbol      - 計算したい通貨名。NULLを指定すると現在の通貨。
timeframe   - 時間枠。時間枠列挙型のどれか。0は現在の時間枠。
period      - 計算で使用する足の数
shift       - 現在の足から何本前の値を出したいか
Sample:
if(iWPR(NULL,0,14,0)>iWPR(NULL,0,14,1)) return(0);


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