決まった時間にエントリーして時間でクローズする
ご要望がありました。
このサイトで紹介、配布されている
【cTraNer】+【CloseOnTime】のようなイメージで
指定日指定時刻にに指定Lotの注文を成行き注文&自動決済までしてくれる
cBotがあったらいいなと考えています。
指定時間にエントリーして自動決済したいとのこと。
利用イメージとしては仲値トレードや市場の開始終了時間を狙ったトレードといったところでしょうか。
以前、既存ポジションを指定時間に決済するcBotは作成しました。
-
【cTrader】指定時間にポジション決済or注文キャンセルする【Tools】
cTraderで時間指定決済ってできないの・・・? 先日いただいたコメント読んで気づいたのですが、ごく単純な「指定時間に決済する」機能ってcTrader標準ではないんですよね。 「高度な利確・損切」み ...
続きを見る
これのエントリーもする版ということですね、cTranerのようなというのがちょっとわからないのですが、とりあえず作ってみました。
TradeOnTime
機能概要
エントリーの方向、ロット数、損切り、利確pips、それとエントリー時間、決済時間を指定して起動させると指定時刻にエントリー、決済を行います。
エントリー時間と決済時間は"2023/12/25 10:00"もしくは"10:00"のような形式で指定してください。
時刻はどちらも入力必須です。エントリーだけ時間指定したいが決済は指定したくないという場合は適当に10年後あたりの日付でも入れておいてください。
起動するとチャート上にエントリー予定時刻と決済予定時刻、利確、損切り設定が表示されます。表示が不要ならパラメータで消せます。
利確と損切りはpipsで設定するのですが、場合によってはチャート上の位置で指定したいこともありそうなので、「to price」というボタンを押すと価格で設定できるようにしました。
ボタン押したらチャート上に水平線が出てくるのでそれを動かして設定してください。
なお、利確と損切りを価格で設定した場合、エントリー時刻に利確や損切値を超えてしまっていた場合はエントリーせずにcBotが停止します。
パラメータ
Label Settings
Label
エントリー方向などを示すラベルの位置を指定します。
Horizontal Margin
ラベル位置の左右余白を指定します。
Vertical Margin
ラベル位置の上下余白を指定します。
Font Size
ラベルのフォントサイズを指定します。
Trade Settings
Direction, Lots
BuyかSellとロット数を指定します。
S/L Pips, T/P PIps
損切と利確をpipsで指定します。
EntryTime (Local), CloseTime(Local)
エントリー時刻と決済時刻をローカル時間で設定します。PCが日本時間設定なら日本時間で指定です。cTraderの時間設定は関係ありませんので注意してください。
なお市場の空いてない土日などに設定してもそのまま表示されてしまい、市場が開いた瞬間にエントリーや決済が行われますので注意してください。
MIn S/L Pips, MIn T/P PIps
最低利確損切PIpsを指定します。
損切と利確を価格で指定したときに損切や利確に近すぎる位置でエントリーしないようにするための設定です。
(12/28 追記)
Position Label
ポジションにつけるラベルを指定します。
ダウンロード
ソースコードも付けときますので、わかる方は自由に改変してください。
作ってるうちに二転三転したため、ごちゃごちゃしてますがご了承あれ。
利用上の注意
そこまで丁寧にテストしてないです。
利用する際は必ず最初にデモ口座で試用の上、想定通りの動作をすることを確認したうえで、ライブ口座で利用するようにしてください。
一応エントリーにかかわるcBotのため、注意喚起しておきます。
(追記 12/28)
更新・修正
この要望送ってくれた方がさっそくテストしてくださいました。ありがとうございます!リンク先は修正済みのものに差し替えてあります。
ご指摘いただいた部分
1. 同一通貨にてにつ以上の注文はできない
これ、すみません、書き忘れましたが仕様のつもりでした。
決済まで時間指定する想定で作ったため、誤って止めてしまったとき用に再起動すれば同じポジションを拾えるようにしてあります。
(ただ再起動時の表示がおかしかったので修正しました。)
しかし、決済を時間指定しないケースだと一度止めて別時間で再度設定したいことも確かにあるか、とも思ったため、別で起動して2つめもエントリーできるようにしました。
2つ目のエントリーをしたいときは新たに追加されたPosition Labelパラメータを別の文字列に変更して起動してください。
なお、起動しないときはAutomateタブをご確認ください。パラメータが不正(例えば時間文字列がおかしい、など)の場合、ここにエラーが表示されてcBotが停止するようになっています。