Kenさん
一般株式市場の半自動売買ソフトについて
こちら岡三RSSにて、一般株の半自動売買のデイトレードソフト(人力で保有したい銘柄コードを入力すれば、後は、発注から手仕舞いまで全部自動的に処理される)作りに挑戦しようと思い、サンプルシートを各種ダウンロードしました。ところが、一部分の機能はあるものの、全体として半自動的に売買が実行されるようなサンプルを発見する事ができませんでした。サンプルの中には、非常に便利なものがありました。例えば、09_trailorder.xlsm というサンプルです。これは、保有している株の銘柄コードおよびその他パラメータを入れてやりさえすれば、後は、自動的に手仕舞い処理が実行されます。そこで、これと同じように、エントリも、銘柄コード(および株数)を入力しさえすれば、自動的にエントリが行われるようなサンプルを探しました。これと09_trailorderを組み合わせれば、簡単に半自動売買ソフトが作れると考えたからです。ところがそれはうまくいきませんでした。どなたか、この辺りをご存知の方がおられましたら、よろしく教えていただければ幸いです。(当方先物での岡三RSSを使った自動売買の経験は多少あります)
2023年03月23日
Kenさん
以下確認しました。
<・参照不可となっている項目が無いか
ありませんでした。
<・岡三RSSにチェックが入っているか
チェックが入っていました。
2023年03月31日
大野 了
なるほどー
それでしたら、全体のソースが分からないため、
投稿されたソースコードを見る限りですが
『ws01』にSheetオブジェクトは格納されていますでしょうかー?
多分ですが、ws01の変数の中身が空っぽのような気がします!!
2023年03月31日
Kenさん
以下のコードで、中身を確認しました。
MsgBox (ws01.Range("C6")): MsgBox (ws01.Range("C7"))
MsgBox (ws01.Range("C8")): MsgBox (ws01.Range("C9"))
MsgBox (ws01.Range("C10")): MsgBox (ws01.Range("C11"))
MsgBox (ws01.Range("C12")): MsgBox (ws01.Range("C13"))
MsgBox (ws01.Range("C14")): MsgBox (ws01.Range("C15"))
MsgBox (ws01.Range("C16")): MsgBox (ws01.Range("C17"))
MsgBox (ws01.Range("C18")): MsgBox (ws01.Range("C19"))
MsgBox (ws01.Range("C20")): MsgBox (ws01.Range("C21"))
MsgBox (ws01.Range("C22"))
すべてOKでした。(ただし、C13、C19、C20 はカラです)
と申しますのは、サンプルシートを使用しておりますので
(発注が実際に実行されるのを確認済み)問題ないはずですが、、
2023年03月31日
大野 了
申し訳ありません、こちらはどちらのサンプルになりますでしょうか?
ご提示いただきたページのサンプルを全部開いてみたのですが、
VBAから発注を行っているサンプルが見つけらえず・・・
2023年03月31日
Kenさん
日本株サンプル(抜粋).xlsx (35.1KB)
大野様へ
<VBAから発注を行っているサンプルが見つけられず・・・
確かに、私も、VBAから発注しているサンプルは未だ発見出来ておりません。
私が発見したのは、ビデオでした。以下そのビデオのpdfのURLです。
https://www.okasan-online.co.jp/ont/use/rss/seminar/pdf/seminar04.pdf
この6~7ページに渡って、VBAで発注する場合の説明があります。
それから、私が使用したサンプルシート 「日本株サンプル.xlsx」の
シート“注文管理画面”だけを抜き取ったファイル「日本株サンプル(抜粋)xlsx」
を添付しましたのでそれを見ていただければ幸いです。
norder = neworder(ws01.Cells(6, 3), ws01.Cells(7, 3)、、、、、、、、)というコードは
シート“注文管理画面”のC6~C22 を参照している。という事です。
本日又、シートで発注されることを確認しました。
更にVBAでの発注をトライしましたが、同じエラーが発生し、発注出来ませんでした。
以上よろしくお願い申し上げます。
2023年04月01日
大野 了
Kenさん、こんにちは
>確かに、私も、VBAから発注しているサンプルは未だ発見出来ておりません。
ということは、先日からご質問いただいているソースコードは、
サンプルファイルではなく、Kenさんご自身で記述されたコードということでしょうか?
そうなると、その他のコードを見てみないと何とも原因がわからないのが現状です。
また、添付いただきましたファイルはVBAが削除されているため、VBAの確認はできませんでした。
xlsmのまま、保存いただきファイルの拡張子をxlsxに変更後、再投稿いただけますでしょうかー?
2023年04月01日
Kenさん
neworderの質問_v001(2023年4月2日).xlsx (0.5MB)
大野様へ
ご指定のように、無理矢理xlsmをxlsxに変えたファイルを添付しました。
このファイルのマクロモジュールの2個目のB_簡易発注手仕舞い系 の中の
Sub 発注処理() の中に norder = neworder(ws0、、、、、)が存在しております。
よろしくお願い申し上げます。
2023年04月02日
大野 了
Kenさん、こんにちは
すみません、肝心なことを忘れてていました
VBAからNEWORDER関数は使用できません。
VBAからはNEWORDER_CL関数を使用して発注を行う必要があります。
引数が一つ少ないのですので、以下のように行うと発注ができると思います。
norder = neworder(ws01.Range("C6"), ws01.Range("C7"), ws01.Range("C8"), ws01.Range("C9"), ws01.Range("C10"), ws01.Range("C11"), ws01.Range("C12"), ws01.Range("C13"), ws01.Range("C14"), ws01.Range("C15"), ws01.Range("C16"), ws01.Range("C17"), ws01.Range("C18"), ws01.Range("C19"), ws01.Range("C20"), ws01.Range("C21"), ws01.Range("C22"))
2023年04月02日
Kenさん
norder = neworder(ws01.Range(、、、、 は
norder = neworder_cl(ws01.Range(、、、、の 間違いですね??
このように、_CLを挿入して実験したところ、発注のウインドウがでました!
注文のボタンを押したところ、ウインドウがでました。「パスワードロックがかかっています。解除の
手続きをしてください」とのことです。2日前まで問題なく使えていたんですが、、
ということで、これから電話して解除してもらいますが、、
これで解決したようです!
大変ありがとうございました!
2023年04月03日
Kenさん
大野様へ
現在08:30ですが、VBAでの発注は完全にうまくいきました!
(パスワードロックが2回もかかり、解除するのに、電話を2回もしました!
パスワードを間違えていました!)
大変ありがとうございました。
ところで、早速ですが、次の質問です。
発注は、自動売買ですので、成り行きで行う予定にしております。
次のシート“trailorder”に、仕事を引き渡す必要があります。
一番大事な情報は、取得価格です。
これを知るには、orderquery 関数にて
1) 約定状態 が 完了 であることを確認し、
2) 平均約定単価 を コピーして trailorder に引き渡す。
ということでよろしいでしょうか?
なにとぞよろしくお願い申し上げます。
2023年04月03日
大野 了
Kenさん、こんにちは!
上手く行ってよかったです!!
>一番大事な情報は、取得価格です
取得単価というのは、新規発注し約定した後の単価が欲しいということでしょうか?
それでしたら、Kenさんのおっしゃられているやり方でも大丈夫ですし、
POSITION関数で『取得単価』を参照されると、
現在持っているポジションの約定価格となります!
2023年04月03日