システムトレードで、株・商品先物・日経平均先物(TOPIX・日経225)・FX(外国為替証拠金取引)の相場を生き残る!
システムトレードで楽ちん投資
トップページ | トレード実践録 | インフォ〜 | プロフィール | 更新履歴 | リンク | メルマガ | お問い合わせ

システムトレード実践売買録 共通関数の作成(トレイリングストップ)

念願のトレイリング・ストップを実装する。
為替や商品先物では、めずらしくないトレスト注文も、株式では採用しているところが少ない。
そこで、トレイリングストップと同等の機能をエクセルに実装してしまえば、成行注文しかだせない
ところでも、代用できる。
 
さて、トレスト注文代行機能となる関数式だが、これは難しい。
最大ドローダウンの関数式を参考にすればいいのだが、正攻法だと壁にぶつかって立ち往生だ。
エクセルの仕様なのだろうが、まともにやっていて、うまくいかないところがある。
 
なんとか、この問題を回避して作ったのが下図。
 
トレイリングストップ(トレール)注目代行用の関数式
 
売りポジ・買いポジでトレスト幅を変更できるようにした。
トレスト更新値というのは、現在のポジションにおける最大の含み益がどれくらいかを示す。
約定値よりも、トレスト幅を下回ったら決済するという条件式にした。
 
トレイリングストップを図示すると、次のようになる(50円幅を設定)。
 
トレイリング・ストップ(トレール)注文
 
トレイリング・ストップの関数式を実装するということは、利益の縮小を防止することと、建値から
逆行した場合の損切り価格を設定することでもある(そのように作る)。
 
約定して、その日のうちに含み損が指定幅(トレスト注文執行幅)に達すると、即、手仕舞いだ。
日足はデイトレードとことなり、日ごとのギャップもあって、トレスト幅を小さく設定すると、すぐに
決済しなければならない。
※含み損益の関数式が、これまでに掲載されたシートとは異なります。
 
プロフィットファクターのマッピングを実行してみたが、思いのほか利益が出ていない。
日足と分足では、トレスト注文との相性は異なるのだろうか?
トレスト注文は、デイトレードと通常トレード、どちらのトレードに組み合わせて使うことが適して
いるのだろうか? 以後の課題とする。
  
 
右端の仮判定の作成が難航した。
条件分岐式(IF文のこと)で使えるカッコの数に限度があるためだ。
Excel2000では、7個が限界のようだ。8個目を使うと、エラーになる。
次の判定式を1列(ひとつのセル)で、書きたかったのだが、力量不足で断念。2列にまたがって
書くことにした。
 
=IF(AM211="途転売",IF(AS211=0,"新売",IF(AS211=1,"途転売","")),IF(AM211="途転買",
IF(AS211=0,"新買",IF(AS211=-1,"途転買","")),IF(AND(AQ211="仕売",AS211=1),"仕売",
IF(AND(AR211="仕買",AS211=-1),"仕買",IF(AND(AM211="新買",AS211=0),"新買",
IF(AND(AM211="新売",AS211=0),"新売",IF(AND(AM211="仕売",AS211=1),"仕売",
IF(AND(AM211="仕買",AS211=-1),"仕買",""))))))))
  
その後、うんうん唸って取り組んでいたら、7個の括弧に押さえることができた。
悩んでいた組み合わせがコレ。
 
 
次の関数式で、エクセルから文句を言われることもなく、組み込めた。
=IF(AM211="途転売",IF(AS211=0,"新売",IF(AS211=1,"途転売","")),IF(AM211="途転買",
IF(AS211=0,"新買",IF(AS211=-1,"途転買","")),IF(AS211=1,IF(AQ211="仕売","仕売",
IF(AM211="仕売","仕売","")),IF(AS211=0,IF(AM211="新買","新買",IF(AM211="新売",
"新売","")),IF(AS211=-1,IF(AM211="仕買","仕買",IF(AR211="仕買","仕買","")))))))
  
変則的な組み方になっているが、通ったのでよしとする。
 
 
 
システムトレード実践録 へ戻る
 
TOPへ戻る

  
Google
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Copyright (C) toushikenbunroku.com, All Rights Reserved.