| PAGE-SELECT |

≫ EDIT

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

| スポンサー広告 | --時--分 | comments(-) | trackbacks(-) | TOP↑

≫ EDIT

Yeslanguage 小数点以下の発注枚数

トレードスタジアムのイエスランゲージ(Yeslanguage)では、プログラム上で発注数量を指定することができますが、その数量が整数ではない小数点以下だったらどうなるのか?という疑問から、実験をしてみました。


わざわざ「1.7枚」発注という指定をすることはないにしても、状況に応じて発注枚数を変化させる計算を入れていた場合、計算上小数点以下の数字が出てくる可能性はあります。


## 実験プログラムコード ##
vars:contract(0);

contract = 11 / 4 ;

If Date[1] <> Date Then
Buy("Long",AtMarket,DEF,contract);

MessageLog("%f",contract);

/*デイトレ決済条件*/
If time[1] <=143500 and time > 143500 then
Begin
ExitLong("Ex_hikeLong", AtMarket);
ExitShort("Ex_hikeshort", AtMarket);
End;
###########################

yes0611.jpg

Messagelog関数を使い変数contractがいくらを示しているか確認すると、画像にあるように2.75を示しています。


それでは実際にチャートに適用させてみます。

(予想される答え)
  1.エラーが出て発注されない。

  2.四捨五入された枚数が出る。

  3.切り上げられた枚数が出る。

  4.切り捨てられた枚数が出る。



(結果)
realchart0611.jpg

リアルチャート上では、2枚の発注になっていますので、小数点以下の数字に関しては切り捨てられるようです。


シストレブログランキング

日経225ブログランキング
スポンサーサイト

| プログラミングの勉強 | 09時26分 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

Floor関数

今日のYeslanguge講習会の宿題で新たに使った関数がFloor関数。


プログラム上で仮想証拠金余力を設定し、売買損益(NetProfit + OpenPositionProfit)に応じて取引できる枚数を変化させるようにしなさいという課題でした。

初期値1000万円の証拠金で、売買損益を反映させながら500万円でラージ1枚を取引させるようなプログラムにしなさいという問題でした。

「現在の余力÷500万=枚数」となるわけですが、普通に計算すると当然小数になるので、Floorで切り下げました。


この考えが適切かどうかも含め、課題の内容と解答例は後日UPします。


-------Yeslanguageのヘルプより抜粋-------
関 数 : Floor(num)
説 明 : 少数部分を切り捨てた定数値
参 照 : floor(1.65) → 1をリターン
floor(1.35) → 1をリターン
-----------------------------------------

シストレブログランキング

日経225ブログランキング

| プログラミングの勉強 | 09時36分 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

セクシー・ボリンジャー研究その1

ラジオ日経の人気コーナー、「夕焼け投資日記」で面白いテクニカルの解説をしていました。

その名も

「セクシー・ボリンジャー」

ボリンジャー・バンドの収縮→拡大期を狙ってトレードする方法です。


実際にチャートを見ながら実践されている方も多い方法だと思いますが、これをシステムトレードのコードに落とし込むとどうなるのか、トレードスタジアムでチャレンジしてみます。

そういえば、シストレ講習でシストレ太郎が教わっている先生も、テクニカルの中では「ボリンジャー」がお好きだと言っていたような気がします。



【デフォルトで載っている戦略コード】

デフォルトの戦略を見ると、「売り」用プログラムと「買い」用プログラムが分かれています。


/****************************************************/
Description : Bollinger Bands Short Entry
/****************************************************/
Inputs: Length(9), StdDevUp(2), BarsOver(2);
Variables: BBTop(0);

BBTop = BollBandup(Length, StdDevUp);

If CountIF(Close > BBTop, BarsOver) == BarsOver Then
Sell ("BB", AtStop, BBTop);
/****************************************************/

/****************************************************/
Description : Bollinger Bands Long Entry
/****************************************************/
Inputs: Length(9), StdDevDn(2), BarsBlw(2);
Variables: BBBot(0);

BBBot = BollBanddown(Length, -StdDevDn);

If CountIF(Close < BBBot, BarsBlw) == BarsBlw Then
Buy("BB", AtStop, BBBot);
/****************************************************/


これを合体させるところからはじめ、その後「セクシー」の要素を如何に盛り込むかにトライしてみたいと思います。


シストレブログランキング

日経225ブログランキング

| プログラミングの勉強 | 16時55分 | comments:0 | trackbacks:0 | TOP↑

≫ EDIT

MaxItemsとMaxlist

トレードシグナルの売買プログラミング言語「エキーラ」とトレードスタジアムの「イエスランゲージ」。

異なる製品ではありますが、共通点も多いためプログラムの勉強をする際には両方のコードを参考にします。


エキーラで書かれたプログラムに「MaxItems」という関数がありました。

同じ関数がイエスランゲージになかったので、まずググってみると、エクセルの関数にもあるようでした。

それからエキーラのマニュアルを見て、関数の意味を調べます。

その後、イエスランゲージのマニュアルを見て、同じ用途の関数がないか調べます。すると、Maxlistが同じ意味を持つ関数であることが分かりました。


シストレ太郎はプログラマーでもなんでもないので、このような手順を踏んで関数を勉強しています。


シストレブログランキング

日経225ブログランキング

| プログラミングの勉強 | 14時49分 | comments:0 | trackbacks:0 | TOP↑

| PAGE-SELECT |

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。