検索

Google
Web www.icefree.org

RSS of recent changes

 

関数

2017-06-20 (火) 23:23:54 (2495d)
10 Nov 2006-

標準の組み込み関数の解説です。

途中で、ですます調に変えたので語尾が統一されていません。気が向いたら直します。

avg

  • 機能 平均を求める
  • 書式 Double avg(TimeSeries?)
  • 文例 avg(close({0})
  • 解説
    TimeSeries?の相加平均を返す。
  • 実装 ArithmeticLibrary?::CalcAverage?

sqrt

  • 機能 平方根を求める
  • 書式
    Double sqrt(Double)
    TimeSeries? sqrt(TimeSeries?)
  • 文例 sqrt(100)
    sqrt(close({0}))
  • 解説
    引数がDoubleの場合、その平方根を返す。
    引数がTimeSeries?の場合、各要素の平方根を求め、同じ長さのTimeSeries?を返す。
     
    引数、特にTimeSeries?の場合はいずれかの要素に負数が含まれないように注意する必要がある。負数が渡された場合、内部エラーとなる。
  • 実装 ArithmeticLibrary?::CalcSqrt?

pow

  • 機能 べき乗を求める
  • 書式
    Double pow(Double,Double)
    TimeSeries? pow(TimeSeries?,Double)
  • 文例 pow(close({0}),2)
  • 解説
    第一引数がDoubleの場合、そのべき乗を返す。
    第一引数がTimeSeries?の場合、各要素のべき乗を求め、同じ長さのTimeSeries?を返す。
  • 実装 ArithmeticLibrary?::CalcPow?

log

  • 機能 自然対数を求める
  • 書式
    Double log(Double)
    TimeSeries? log(TimeSeries?)
  • 文例 log(close({0}))
  • 解説
    引数がDoubleの場合、その対数を返す。
    引数がTimeSeries?の場合、各要素の対数を求め、同じ長さのTimeSeries?を返す。
     
    対数は自然対数である。
  • 実装 ArithmeticLibrary?::CalcLog?

sdev

  • 機能 0を基準とする標準偏差を求める
  • 書式 Double sdev(TimeSeries?)
  • 文例 sdev(close({0}) - avg({0}))
  • 解説
    0を平均として与えられたTimeSeries?の標準偏差(母集団法)を求めます。
    平均を0としない場合は、呼び出し側で平均値を引いておく必要がある。
  • 実装 ArithmeticLibrary?::CalcStandardDeviation?

first

  • 機能 TimeSeries?の最初の要素を得る
  • 書式 Double first(TimeSeries?)
  • 文例 first(close({0}))
  • 解説
    TimeSeries?の最初の要素を返す。
  • 実装 ArithmeticLibrary?::CalcFirst?

last

  • 機能 TimeSeries?の最後の要素を得る
  • 書式 Double last(TimeSeries?)
  • 文例 last(close({0}))
  • 解説
    TimeSeries?の最後の要素を返す。
  • 実装 ArithmeticLibrary?::CalcLast?

value_at

  • 機能 n営業日前の状態でExpressionを評価する
  • 書式 AnyType? value_at(Double, Expression)
  • 文例 value_at(1, close())
  • 解説
    n日前の状態でExpressionを評価します。
    戻り値の型はExpressionによります。
     
    value_at(0, expression)で、expression単独で使ったときと同じ値になります。
     
    第一引数は範囲の制限がないので、負数でも指定できます。その場合、有効なデータがあるならば未来のデータを得ることができます。
  • 実装 ArithmeticLibrary?::CalcValueAt?

each

  • 機能 日付をずらしながらExpressionを評価しTimeSeries?を作る。
  • 書式 TimeSeries? each(Double, Expression)
  • 文例 each(25, close())
  • 解説
    現時点からn−1日前の状態まででExpressionを評価し、各時点での評価の結果からTimeSeries?(サイズn)を作ります。
    ExpressionはDoubleを返さないといけません(型チェックはされません)。
    TimeSeries?の先頭から古いデータになります。
  • 実装 ArithmeticLibrary?::CreateTimeSeriesForEach?

第一引数の型チェックなし。

diff

  • 機能
  • 書式 TimeSeries? diff(TimeSeries?)
  • 文例 diff(close({0}))
  • 解説
    隣り合う2要素の差分を要素に持つTimeSeries?を返します。
    元のTimeSeries?よりも1つ小さいTimeSeries?になります。
  • 実装 ArithmeticLibrary?::CalcDiff?

sum

  • 機能 TimeSeries?の全要素の総和を得る。
  • 書式 Double sum(TimeSeries?)
  • 文例 sum(close({0}))
  • 解説
    各要素の総和を返す。
  • 実装 ArithmeticLibrary?::CalcSum?

min

  • 機能 最小を求める
  • 書式
    Double min(TimeSerires?)
    Double min(Double, Double, ...)
  • 文例 min(-1,0,1,2)
  • 解説
    与えられた引数で最小の要素を返します。
     
    TimeSeries?の要素数が0の場合、Doubleの最大値を返します。
  • 実装 ArithmeticLibrary?::CalcMin?

多分、多引数の型チェックなし。

max

  • 機能 最大を求める
  • 書式
    Double max(TimeSerires?)
    Double max(Double, Double, ...)
  • 文例 max(close({0}))
  • 解説
    与えられた引数で最小の要素を返します。
     
    TimeSeries?の要素数が0の場合、Doubleの最小値を返します。
  • 実装 ArithmeticLibrary?::CalcMax?

suma

  • 機能 絶対値の総和を求める
  • 書式 Double suma(TimeSeries?)
  • 文例 suma(close({0}) - avg({0}))
  • 解説
    各要素の絶対値を求め、その総和を返す。
    sum(abs(引数))と同等。
  • 実装 ArithmeticLibrary?::CalcSumAbsolute?

sump

  • 機能 正数のみの総和を求める
  • 書式 Double sump(TimeSeries?)
  • 文例 sump(close({0}) - avg({0}))
  • 解説
    負数を無視し、正数のみを加算した値を返す。
  • 実装 ArithmeticLibrary?::CalcSumPositive?

sumn

  • 機能 負数のみの総和を求める
  • 書式 Double sumn(TimeSeries?)
  • 文例 sumn(close({0}) - avg({0}))
  • 解説
    正数を無視し、負数のみを加算した値を返す。
  • 実装 ArithmeticLibrary?::CalcSumNegative?

series

  • 機能 パラメータを変えながらTimeSeries?を作る
  • 書式 TimeSeries? series(Double start,Double end,Double ai,Expression)
  • 文例 series(1,101,0,{0})
  • 解説
    ai番目のパラメータをstartからend-1まで1ずつ加算していき、Expressionを評価する。その結果をTimeSeries?として返す。
    TimeSeries?の先頭がstartの評価値となる。
     
    series(1,101,0,{0})
    とすれば、1から100までが順に格納されたTimeSeries?が得られる。
     
    外部から同じパラメータが与えられているときは、seriesで新しく作ったパラメータによって上書きされる。
    例えば、{0}が外部から与えられているときに、ai = 0とすると、そのパラメータはExpressionの評価ではseries内で作られた値となる。
    さらに、この変えられた値はseries内のExpressionだけでなく、その外にも影響を及ぼす点に注意が必要です。
     
    end - startのサイズのTimeSeries?を生成します。
    Expressionの結果がDoubleでなければいけません(型チェックはしていません)。
  • 実装 ArithmeticLibrary?::CreateTimeSeries?

引数の型チェックなし。

rankcorrelation

  • 機能 RCIのための計算を行う
  • 書式 Double rankcorrelation(TimeSeries?)
  • 文例 rankcorrelation(close({0}))
  • 解説
    (日付の順位 - 株価の順位)の二乗の総和を求めます。
  • 実装 ArithmeticLibrary?::CalcRankCorrelation?

引数の型チェックなし。

if

  • 機能 条件文
  • 書式 AnyType? if(Bool, AnyType?, AnyType?)
  • 文例 if(close() > open(), -1, 1)
  • 解説
    第一引数が真ならば、第二引数を返す。
    第一引数が偽ならば、第三引数を返す。
    第2、3引数の型はBool/Double/TimeSeries?のいずれでも良い。
  • 実装 ArithmeticLibrary?::CalcIf?

abs

  • 機能 絶対値を求める。
  • 書式
    Double abs(Double)
    TimeSeries? abs(TimeSeries?)
  • 文例 abs()
  • 解説
    与えられた引数の絶対値を返す。
    TimeSeries?が与えられた場合は、要素ごとに計算し、同じ長さのTimeSeries?を返す。
  • 実装 ArithmeticLibrary?::CalcAbs?

abs(bool)でも怒られない

pdm

  • 機能 DMIのために+DMを求める
  • 書式 Double pdm(Double)
  • 文例 pdm(0)
  • 解説
    第一引数nの場合、-n営業日前(td1)と、さらにその前日(td2)について、
    pdm = td2.high() - td1.high()
    mdm = td1.low() - td2.low()
    とし、
    pdm > 0 でかつ pdm > mdm であれば pdm を返します。
    それ以外の場合には、0を返します。
  • 実装 ArithmeticLibrary?::CalcPDM

型チェックなし。

mdm

  • 機能 DMIのために-DMを求める
  • 書式 Double mdm(Double)
  • 文例 mdm(0)
  • 解説
    第一引数nの場合、-n営業日前(td1)と、さらにその前日(td2)について、
    pdm = td2.high() - td1.high()
    mdm = td1.low() - td2.low()
    とし、
    mdm > 0 でかつ mdm > pdm であれば mdm を返します。
    それ以外の場合には、0を返します。
  • 実装 ArithmeticLibrary?::CalcMDM

sq_length

  • 機能 SQまでの日数を求める
  • 書式 Double sq_length()
  • 文例 sq_length()
  • 解説
    SQまでの日数を求めます。
     
    SQは、木曜でかつ7〜13日の翌日です。
  • 実装 ArithmeticLibrary?::CalcSQLength

refbrand

  • 機能
  • 書式 AnyType? refbrand(Double,Expression)
  • 文例 refbrand(8306,avg(close{0}))
  • 解説
    第一引数は整数として解釈されます。(型チェックはしていません)
    第一引数をコードとします。対応する銘柄がない場合は実行時にエラーになります。
     
    第二引数にはExpressionを指定します。コードで指定した銘柄に対して、Expressionを実行します。戻り値の型はExpressionによります。
    指定銘柄に有効なデータが含まれていなかった場合は、0を返します。
  • 実装 ArithmeticLibrary?::RefBrand?

unit_trading

  • 機能 単元株数を得る
  • 書式 Double unit_trading()
  • 文例 unit_trading()
  • 解説
     単元株数を得ます。
     指数や派生銘柄のように有効な単元株数がない場合は0を返す。
  • 実装 ArithmeticLibrary?::CalcUnitTrading?

yobine

  • 機能 呼値を求める
  • 書式 Double yobine(Double)
  • 文例 yobine(2500)
  • 解説
     与えられた値に対する呼値を返す。
  • 実装 ArithmeticLibrary?::CalcYobine?

引数の型チェックなし。

datalength

  • 機能 データある期間を得る
  • 書式 Double datalength()
  • 文例 datalength()
  • 解説
     データの長さを得ます。DataFarm?TotalLength?です。
     一般にはデータのある日数になります。
  • 実装 ArithmeticLibrary?::CalcDataLength?

sq_forecast

  • 機能 非公開関数
  • 書式 sq_forecast()
  • 文例 sq_forecast()
  • 解説
     非公開の関数です。
  • 実装 ArithmeticLibrary?::CalcSQForecast

sqma_forecast

  • 機能 非公開関数
  • 書式 sqma_forecast()
  • 文例 sqma_forecast()
  • 解説
     非公開の関数です。
  • 実装 ArithmeticLibrary?::CalcSQMAForecast

コメント

  • 坂田 2007-01-17 (水) 20:39:36
    sq_forecast() とsqma_forecast() は非公開の関数ではありませんよ?

http://www.omegachart.org/download/okajima/sqmaforecast.omega
の、SQ日移動平均予測とSQ予測で使われています。

  • vvp 2007-01-17 (水) 21:06:49
    コメントありがとうございます。
    ご指摘の2つの関数は、拡張キット内でプログラム的な制限は無く、自由に使うことができますが、
    ArithmeticLibrary?.csには、
    //以下は非公開
    Add("sq_forecast", new EvalDelegate(CalcSQForecast), default_dr);
    Add("sqma_forecast", new EvalDelegate(CalcSQMAForecast), default_dr);
    とあります。このマニュアルはソースを第一としています。
    また、公式の拡張キットマニュアルにも記載されていません。
    これらのことから、原作者は非公開にしたいと考えているのだろうと推測して、このマニュアルでも詳細は非公開という扱いにしています。

Counter: 3132, today: 4, yesterday: 1