株てくおーとトレード日記

完全自動売買システムによるトレード日記。

特殊動的可変パラメタ(KtecAutoStop)による株てくてくの自動停止

2011-06-29 09:25:21 | 株てくてく

 リアル株価分析式に特殊動的可変パラメタ(KtecAutoStop)を指定することにより、株価分析式の内容で株てくてくを自動停止できるようになります。
  (株てくてくバージョン21.3.0以降)

指定フォーマット

 If 判定式 Then KtecAutoStop = 1 Else KtecAutoStop = 0 EndIf

 注1) 本指定を新規注文リアル株価分析式に追加する。
 注2) 判定式により、KtecAutoStop = 1がセットされれば、株てくてくは停止します。
 注3) 本機能は日足フィルター等で、分析しても発注しないようなストラテジーの場合、株てくてくを起動していても無駄なので、PC負荷の低減のために利用します。
     (日足フィルターを判定式に指定することにより、株てくてくを停止することができ、PCの負荷が低減される。)


指し値と同値の取り消し注文は行ってはいけない。

2011-06-23 14:30:03 | 株てくてく

 株てくてくでは自動売買時、取り消し注文分析を指定することにより注文の取り消しを行うことができる。
 このとき、取り消し注文分析には指し値と同値の場合、取り消しを行う指定を行ってはならない。

 たとえば、買い注文の取り消し注文分析には、以下のように同値を含まない場合のみ取り消し注文を行うように指定する。

 
 分足取得時刻 <= 分足現在時刻 And
 分足取得価格 < 分足売買後最安値 And
 分足時刻(15:12) <= 分足現在時刻 And
 分足時刻(15:15) >= 分足現在時刻 Or
 分足取得価格 < 分足売買後最安値 And
 分足取得時刻 + { 分足時刻(30) - 分足時刻(0) } <= 分足現在時刻 

  これは、同値で約定されている場合に、取り消し注文を行うと、証券会社への取り消し注文がエラーになるだけではなく、建玉情報もクリアしてしまうため、返済注文が行えなくなってしまうからです。

 同値の場合で約定されていない場合に取り消し注文を行わないことによる影響は以下のことが考えられます。

 1.30分以上経過しても取り消しできず、発注時に考えていたテクニカルポイント以外のところで約定してしまうケースがある。
   (たとえば、3時間後に指し値の価格以下になってもこのときのテクニカルの情報が発注時と異なっており、買い条件ではないかもしれないが、証券会社に発注済みのため約定されてしまう。)

 2.15:12になっても取り消しできない。(通常、有効期間を本日中にしているため、証券会社がこの注文を取り消すため、問題なし)
   
 1のケースが問題ではあるが、建玉情報をクリアして、返済注文が行えなくなってしまうよりはよいのでこのようにする。

 (買い条件でない場合に買っても最悪ロスカット値までの損ですむむが、返済注文ができなくなるとロスカット値以上の損が発生する場合がある。)

 売り注文の取り消し注文分析には、以下のように指定する。

 分足取得時刻 <= 分足現在時刻 And
 分足取得価格 > 分足売買後最高値 And
 分足時刻(15:12) <= 分足現在時刻 And
 分足時刻(15:15) >= 分足現在時刻 Or
 分足取得価格 > 分足売買後最高値 And
 分足取得時刻 + { 分足時刻(30) - 分足時刻(0) } <= 分足現在時刻 


分足分析式の時間と日付の特殊処理

2011-06-16 00:52:08 | 売買アルゴリズム

 株てくてくの分足分析式で、特殊な処理をする以下の分析式があります。
 (イブニングセッションが3時まで延長になるため、時刻と日付に関する分析式の結果が通常と異なります。)

 分足取得時刻
 分足現在時刻
 分足取得日付
 分足現在日付
 分足日付

 通常、時刻は1未満の小数で取得されますが、日をまたいで1時(25時)の場合、小数に1を加えた値で求めます。
 通常、日付は現在時刻の日付が取得されますが、日をまたいで1時(25時)の場合、前日の日付を求めます。

 これは、株てくてくでは分足ファイルの単位を9時から翌日の6時(30時)までとして考えているためです。
 (ニューヨーク取引終了までイブニングセッションが延長されることを考慮し、6時までは前日の時刻として扱います。)

 このようにすることで、以下のような分析式も問題なく判断できます。

 分足時刻(09:00) <= 分足現在時刻 And
 分足時刻(27:00) >= 分足現在時刻

 注)日をまたいだ3時を指定するためには分足時刻(03:00)でもかまいませんが、わかりやすくするため、分足時刻(27:00)のように記述することをおすすめします。

 現在時刻が10時の場合も、翌日の1時(25時)の場合も上記分析式は正しいと判断されます。
 もし、時刻を通常通り1未満の小数で求めていると、日をまたいだ場合、正しいと判断さません。(現在時刻が1時(25時)の場合、9時よりも小さいと判断するため)

 また、株てくてくバージョン21.2.0で実際の日時がわかる以下の分析式を追加します。

 分足取得日時
 分足現在日時
 分足日時(x)

 この分析式を指定した場合、日をまたいだ日時ではその日の実際の日時が取得されます。

  この結果、日時、日付、時刻の関係は、以下のようになります。

 分足取得日時 = 分足取得日付 + 分足取得時刻

 分足現在日時 = 分足現在日付 + 分足現在時刻

  分足日時(0)  <> 分足日付(0) + 分足現在時刻

  分足日時(0)と分足日付(0) + 分足現在時刻は、同じではありません。日付は同じですが時刻の値は異なります。

  分足日時(0)の時刻はローソク足毎の時刻で、分足現在時刻は本当の現在時刻です。

 たとえば、5分足のチャートの場合、
 
 現在時刻が09:00であっても、09:04であっても分足日時(0)の値は同じになります。分足日付(0) + 分足現在時刻の値は同じではありません。


指し値と同値の取り扱い変更

2011-06-11 10:55:16 | 株てくてく

 株てくてくの自動売買で指し値注文した場合、新規注文が約定したのかがわからないまま返済注文の分析を始める。
 このため、新規注文が買いの場合、返済注文の分析式に

 分足取得価格 >= 分足売買後最安値 And

 を追加することにより、約定された場合のみ返済注文の分析を行うとしていたが、指し値と分足売買後最安値が同値の場合、約定されているケースと約定されていないケースがある。
 そこで、確実に約定されたことを確認後に返済注文の分析を行いたい場合は、返済注文の分析式に

 分足取得価格 > 分足売買後最安値 And

 を追加する。

 新規注文が売りの場合、返済注文の分析式に

 分足取得価格 < 分足売買後最高値 And

 を追加する。

 これならば、確実に約定されていることが判断できる。
 さらに、指し値と同値で約定されているケースを考慮し、返済注文の分析式に時間による返済を行う。
 たとえば、

 分足時刻(15:12) <= 分足現在時刻

 を指定し、15:12になれば返済注文を行う。

 指し値と同値で約定されていないケースで時間による返済注文を行うと、建玉がないために証券会社への注文がエラーになるが、指し値と同値で約定されていて返済注文が行われず、持ち越してしまうリスクがあるよりは良いのでこのようにする。

 自動売買(マルチシステム)での指し値注文の詳細は、http://blog.goo.ne.jp/k873911/d/20101001を参照


SQ日の自動決済抑止

2011-06-10 02:50:43 | 売買アルゴリズム

 SQ売買最終日かどうかが判定できれば、返済注文に条件式を加えることによりSQ売買最終日に全ての建玉を返済することが可能なため、SQ日の自動決済抑止ができます。

 株てくてくバージョン21.1.1で、SQ売買最終日かどうかを分足分析式で指定できるようにします。

 例) SQ売買最終日かどうかを判定する場合、以下の式を指定する。(0:SQ売買最終日以外 1:SQ売買最終日)

    分足SQ売買最終日 = 1

 返済注文の分析式に以下の分析式を加えることにより、建玉を返済することができます。

    分足SQ売買最終日 = 1 And
    分足時刻(15:12) <= 分足現在時刻 And
    分足時刻(15:15) >= 分足現在時刻


SQ日前日の夕場開始時の処理

2011-06-09 10:31:22 | 株てくおーと

 
 スイングトレードでSQ日前日の日中までに売買して返済されない建玉は、SQ日に自動決済される。このため、株てくおーと起動時にSQ日前日のイブニングセッションならば、先物口座_持ち株情報*.txtファイルを削除するようにした。
  (デイトレードの場合は日中に売買した建玉はその日のうちに返済するのでファイルはあっても建玉情報は空白だが、スイングトレードの場合は建玉情報が残っている。)

  SQ日前日の日中までに売買して返済されない建玉は夕場には返済売買できず、SQ日に自動決済される。
  たとえば6月のSQ日前日の夕場に売買できるのは、9月限月からで6月限月は売買できない。(各限月の最終の取引は、SQ日の前営業日の日中取引となる)

 SQ日前日の日中までに売買して返済されない建玉は、株てくてくの自動売買で返済するのではないため、先物口座_持ち株情報*.txtファイルを削除しておく必要がある。

 注)株てくてくの自動売買では、先物口座_持ち株情報*.txtファイルがなければ建玉があるとは思わないため、返済注文を行わない。


本日より前に新規売買したテクニカル情報

2011-06-08 12:16:07 | 売買アルゴリズム

 新規売買時のテクニカル情報を求めるには、buyselltimeパラメタを指定することにより求められましたが、前日以前に新規取得されたテクニカル情報は求めることができませんでした。

 株てくてくバージョン21.1.0より、前日以前に新規取得されたテクニカル情報も求められるようになります。

 現在株価が新規売買時の高値より高いかどうかを判定する場合、以下のように記述します。
 
 分足高値(buyselltime) < 分足終値(0)


分足取得日付

2011-06-06 18:34:10 | 売買アルゴリズム

 従来、新規売買時の時刻を求めることができましたが、日付を求めることができませんでした。
(株てくてくの自動売買は、デイトレード用であったため必要なかった。)

 株てくてくの自動売買で、スイングトレードも行えるようにしたため、新規売買時の日付も求められるようにしました。
 (株てくてくバージョン21.1.0)

 取得日時を求めるには以下のように記述します。

 分足取得日付 + 分足取得時刻

 現在日時を求めるには以下のように記述します。

 分足日付(0) + 分足現在時刻

 たとえば、取得時刻よりも3時間以上経過しているかどうかをチェックする場合、以下のように記述する必要があります。

 分足取得日付 + 分足取得時刻 + { 分足時刻(180) - 分足時刻(0) } <= 分足日付(0) + 分足現在時刻

 もし、以下のような記述のみだと、前日の20:00新規売買されていて、スイングトレードで次の日以降に返済売買するようなケースの場合、正しい値が求まりません。

 分足取得時刻 + { 分足時刻(180) - 分足時刻(0) } <= 分足現在時刻


新規売買の分析間隔と返済売買の分析間隔

2011-06-02 18:29:28 | 株てくてく

 株てくてくで自動売買する場合、分析間隔を新規と返済で異なる間隔を指定できるようにしました。

 たとえば、ローソク足の形で分析する場合、5分足ならば5分の間隔で分析し、新規売買を行えばよいが、返済売買の場合、5分間隔で分析すると、実際にはロスカット価格になったにもかかわらず、5分間は発注できなかった。

 今までは、分析間隔は新規も返済も関係なく1つの間隔しか指定できなかったため、すぐにロスカット分析が行えるように分析間隔を5秒に指定していた。
 このため、新規売買分析では無駄に分析することになり、PCに負荷がかかっていた。

 そこで、新規売買の分析間隔と返済売買の分析間隔を別々に指定できるようにし、新規売買では無駄に分析することがなく、返済売買ではすぐにロスカット分析が行えるようになった。