積年の悩みがこれで解決か

昨年TradingViewの本に当社の自動売買システムを12ページ取り上げていただきました。

TradingViewとの連携システム自体はもう3年は稼働しています。

しかし、解決できていない課題がありました。

第12章 トレーディングビューの自動売買
第1節 チャンスを逃さない「自動売買」
第2節 自動売買ツールでの設定例 ~「メールdeオーダー」用~

まだ自分でもプログラムのコードを書きます
オートマチックトレード
松村博史

いきなりですがその課題とは

TradingViewからの信号がロストすることがある。

これ結構致命的ですよね。

新規建てならまだいいです。

いや良くはないけど

トレードの機会を逸するだけということもできます。

しかし返済のシグナルが届かない、または消える

これは避けたいところです。

我々はロストと呼んでいる現象ですが

本当に原因がつかめなくて

TradingView技術チームにも協力して調べてもらいましたが

やっぱりわからない。

当社側に原因があるのかと

サーバーをいつも使っている会社とさらに2社使ったり

プログラムをシグナルを受けるだけというシンプルな

ものにして

実験してみましたが

そのいずれもでロストは発生するんです。

でもTradingViewでもシグナルは送信しているという。

これは埒があかない。

でも、私たちで解決するしかない。

他にも手を入れたいシステムがある中、アイデアが浮かんでは

実験するということを続けていました。

転機はTradingViewのPineスクリプトのバージョンが上がったこと。

ライブラリを使うという機能が追加されました。

そこで、ライブラリに建玉が減ったら返済注文を再送するという

プログラムを書いておいて

自動売買システムに連携するPineスクリプトではライブラリを読み込み

売買判断のたびにその中の関数を呼び出すということをしてみようではないかと

あっライブラリを使わずとも書けるのですが、非常に煩雑なプログラムになってしまいます。

で、実験すること1か月。

それまで、建玉が残るということが起こっていたプログラムでも

全くその兆候がない。

これは使ってもいいのではないでしょうか?

ちなみにシグナルの再送信は次の足で行われております。

それでも残り続けるより10000倍はいい。

10000倍に根拠はないけれど、この場合はとてもとてもとてもという意味で。

実験しているプログラムをそのまま掲載します。

まずはこのロジックの成績。

2020-10-1から2023-3-31までずっと回し続けて、ミニ1枚をドテンです。

なんと268万円のゲイン。

ちなみに3987回の取引があります。

往復100円の手数料でも、268万円のゲインに対し40万円くらいの手数料です。

まだ220万のゲインがありますね。

次にソースコードです

//@version=5
strategy(title='Arnaud Legoux Moving Average Strategy', shorttitle='ALMA Strategy', overlay=true)

import Alchemist_Roy/SendOrder/4 as ax

var my_position_size = 0.0


windowsize = input(title='Window Size', defval=9)
offset = input(title='Offset', defval=0.85)
sigma = input.float(title='Sigma', defval=6)

point = input.int(5, minval=5, step=5)
bar = input.int(2, minval=1)

currentALMA = ta.alma(close, windowsize, offset, sigma)
beforeALMA = ta.alma(close[bar - 1], windowsize, offset, sigma)

short = currentALMA - beforeALMA < -point
long = currentALMA - beforeALMA > point
if(long)
    strategy.entry('long', strategy.long)
if(short)
    strategy.entry('short', strategy.short)

my_position_size := ax.checkPositions(my_position_size)

plot(currentALMA)

この中で

import Alchemist_Roy/SendOrder/4 as ax

var my_position_size = 0.0

my_position_size := ax.checkPositions(my_position_size)

が返済シグナルを再送するときに必要な部分です。

上の2行はスクリプトの上の方に入れておきます。

Alchemist_Roy/SendOrder/4  がライブラリですね。

下の分はスクリプトの終わりかけのplotの前にでも入れておけばいいでしょう。

このコードから応用していろいろ使っていただきたいと思います。

また、フィードバックもあるととっても嬉しいです。

よろしくお願いします。

メールdeオーダー with TradingView
http://mdolp.autore.jp/with_TradingView
TradingViewまだ使ってないという方はこちらです。

活動歴10年の信用、老舗プラットフォームKENSHIRO-225連動システム
「シグナルdeオーダー for KENSHIRO-225」
https://www.reed-jp.com/
https://sdo4k.autore.jp/


.プログラム知識なしで利用できる自動売買システム
オートレシリーズ
http://www.autore.jp

プロの出すシグナルが取引注文に変換されるシステム
シグナルdeオーダー
http://sdo.autore.jp

サヤ取りの注文がワンクリックで「サヤトレ連動−オートレ発注」
https://investars.jp/

600人の叡智を集結、株価予測アルゴリズム販売ストア「QuantX」連動システム
「シグナルdeオーダー for QuantX
https://quantx.io/
https://sdo4q.autore.jp/

オートレ松村 について

オートマチックトレード株式会社 Automatictrade.Inc 機関投資家が行なっている自動売買も個人投資家も必要になる時代がくるとの思いから2006年自動売買関連システム専業のシステム開発会社を立ち上げる。 以来、個人投資家に自動売買サービスを提供する一方、証券会社のサービスの構築、証券会社とAPIを通じたコラボレーション、証券取引所から相談を受けたりなど、自動売買業界の先駆者として活動している。
カテゴリー: 開発, TradingViewをサインツールにして自動売買 パーマリンク