2011年10月23日 (日)

自動発注テスト

先週、新規信用売りのところで上手く自動発注ができなかった

新規建注文のボタンをクリックした後次の操作までの間隔が1秒と短かったために次の画面に変わる前に次の操作をしていたためで間隔を2秒にすると上手くいった

ついでに各注文のテストもやってみました

Gr200

同時にメールも送られています

Gr201

今の注文は全て信用取引を使っているのですが、もしも両建てになっていて、どちらか一方に返済注文が出た場合、売り買い両方が返済される。だから、買建ての方は現物注文を使った方が良いのですが・・・・

 まぁ、今回作り始めた時、現金の枠が殆んど無かったので全部信用にしたんです

 最初に作った時は現物と信用を使い分けていたんですけどね

 気が向いたら直そう

| | コメント (0) | トラックバック (0)

2011年10月11日 (火)

UWSC を的確に動かす

 データを取り込むのに

サイトの更新ボタンを押して

株価をドラッグしそこを右クリック、コピーを左クイックさせます。

BTN(LEFT,DOWN,201,995,100) //現在値をドラッグ1

BTN(LEFT,UP,238,995,100)  //現在値をドラッグ2
SLEEP(1)

とスクリプトを書いて走らせたら、3回に1回ぐらいはドラッグに失敗しよる。そしたら、サイトが目面が細かいソースコードで一杯になりよる

 確実にドラッグさせるにはもっとゆっくりとうがかさないと

 それで

BTN(LEFT,DOWN,201,995,100) //現在値をドラッグ1
MMV(202,995,15)
MMV(204,995,15)
MMV(206,995,15)
MMV(208,995,15)
MMV(210,995,15)
MMV(212,995,15)
MMV(214,995,15)
MMV(216,995,15)
MMV(218,995,15)
MMV(220,995,15)
MMV(222,995,15)
MMV(224,995,15)
MMV(226,995,15)
MMV(228,995,15)
MMV(230,995,15)
MMV(232,995,15)
MMV(234,995,15)
MMV(236,995,15)
BTN(LEFT,UP,238,995,100)  //現在値をドラッグ2
SLEEP(1)

わざと間にマウスの動きを入れてみた 

上手くいった・・・・・・・

 1データ取得に13秒 (笑

| | コメント (0) | トラックバック (1)

2011年10月10日 (月)

テスト

 今日はデータを取り込みながらの自動発注テストをする予定で、朝やり始めたらトラブルばっかり

 UWSC のエラーが途中に出て困った

 各スクリプト毎のテストは終わって上手く入っているので、スクリプト自体の間違いはない。キッパリangry

 まぁそれでも上手くいった

 しかし、本番でエラーメッセージが出たならそこで止まってしまいお手上げだ・・・

 強制的にエラーメッセージBOXの”OK”ボタンを押す事は出来ないだろうか???

 UWSCの安定を祈る!!

| | コメント (0) | トラックバック (2)

通知

つづき

 エクセルのセルDQ4に送信者、セルDQ6に宛先のメールアドレスを記入しておきます

 銘柄、銘柄コード 、株数 は既に入っていますからそれを使います

 問題は  売り、買い、返済売り、返済買いの表示で、これは新たにセルG2に発注するたびに書き換えるようにしました。

 各注文のSUBに赤字の部分を付け加えました

MsgBox " 銘柄: " & .Range("BG13") & vbCr & " 銘柄コード: " & .Range("A2") & vbCr & " 売付株数: " & .Range("AE2") & vbCr & " 指値: " & .Range("AI2"), vbOKOnly, "++かいの返済注文++"
                
                    .Range("AJ2") = .Range("AJ2") - .Range("AE2")
                   
                    .Range("G2") = "返済売り"
                   
                    Call Macro4

        ********

Macro4() は

With ThisWorkbook.Worksheets("kobetu30")

' 本文の編集

    strMOJI = "  **発注しました**" & vbCrLf & vbCrLf _
            & "      銘柄  :   " & .Range("BG13") & vbCrLf _
            & "銘柄コード :   " & .Range("A2") & vbCrLf _
            & "      株数  :   " & .Range("AE2") & vbCrLf _
            & "      S/L  :   " & .Range("G2") & vbCrLf & vbCrLf _
            & "  確認よろしく(笑)"
            

            
    objMAIL.Cc = .Range("DQ4")          '送信者
    objMAIL.To = .Range("DQ6")            '宛先
    objMAIL.Subject = "自動発注のお知らせ"  '件名
    objMAIL.Body = strMOJI                 '本文の代入
    objMAIL.Display   '途中で編集したい時(メール表示してみた)

    objMAIL.Send              
   
End With

 と書き換えました。

        ********

 試しに嫁の携帯のアドレスを書き込みやってみました。

 **発注しました**

      銘柄  :   グリー
銘柄コード :   3632
      株数  :   300
      S/L  :   売ります

  確認よろしく(笑)

と嫁の携帯に送られました

| | コメント (0) | トラックバック (0)

2011年10月 9日 (日)

自動メール送信

 日頃のメールはYAHOOメールを使っていて

 確実に送信できる方法を考えたなら、UWSCを使ってYAHOOメールを動かすよりVBでOutLookを直接動かした方が良いだろう

 ネットで調べるとそのコードが見つかった

 直ぐにそれをVBAにコピーすると 

 簡単に動いた

 しかし、日頃使っていないOutLookをYAHOOメールで使えるように設定しなければならなかった。

ところが、送信トレーまで行くのだがそこから送られずテストでの下書きがトレーに溜まる・・・・・

 なぜ????

 土曜日の朝から作り始めてやっと出来た

 パスワードが間違っていたのであった。sad

 コードは簡単なんで載せておきます。

        *********

Private Sub CommandButton1_Click()

    Dim oApp As Object      'アプリケーションオブジェクト
    Dim objMAIL As Object   'メールのオブジェクト
    Dim strMOJI As String   '本文

    'アプリケーションオブジェクトの作成
    Set oApp = CreateObject("Outlook.Application")

    Set objMAIL = oApp.CreateItem(0)    'olMailItem=0

   
    strMOJI = "発注しました" & vbCrLf _
            & "売り/買い" & vbCrLf _
            & "よろしく(笑)"
            
    objMAIL.Cc = "*********@yahoo.co.jp"         '送信者
    objMAIL.To = "*************@docomo.ne.jp"           '宛先
    objMAIL.Subject = "自動発注のお知らせ"  '件名
    objMAIL.Body = strMOJI                 '本文の代入
            ' objMAIL.Display   '途中で編集したい時(メール表示してみた)

    objMAIL.Send    ' 送信

End Sub

        ********

 これはテスト用なのでエクセルにコントロールボタンを作りそれにコードを乗せました

 これを指示シートに移植し本文を注文状態に合わせて編集させるようにすれば出来上がりですね。例えば

strMOJI = "発注しました" & vbCrLf _
            & "売り/買い" & vbCrLf _
            & "よろしく(笑)"

 の部分に銘柄名とコードと株数と売り又は買いをエクセルから入れると良いでしょう

 エクセルは非常に便利だ

        ********

 今回は非常に勉強になった

 難しそうに考えていたけどこんな簡単なコードで 良いのか

 目から鱗 ダ!!

 此れはいろんな仕事に使えるぞ

Set objMAIL = oApp.CreateItem(0)    'olMailItem=0

 るたぶんメールの操作は(0)と決まっていて他の操作には他の番号が決まっているんだろうなぁ

 objMAIL.Send    ' 送信

最後のこのコマンド調べたサイトには書いていなかった。しかし、なんとなくの感でSendだろうなぁと思った。

 つづく

 明日は売買指示シートへの移植

| | コメント (0) | トラックバック (0)

2011年10月 8日 (土)

これまでのまとめ

 

自動売買ソフト開発記 

という他の過去サイトを今読んでいます

面白いです。

>プログラムから自動発注する場合は、証券会社の発注ツールの使いやすさはまったく関係ありません
はっきり言ってオリックスの発注ツールは最悪です
それでもプログラムはログイン・発注内容の入力・パスワード入力・執行までを一瞬で実行してくれます

 そうか、その通りやなぁ~ 

>ちなみに発注部分はフリーソフトのUWSC(うみうみ氏作)を利用してます
もちろんVBAでも簡単に発注マクロを作れますが、完全自動システムでは不都合がでてきます。

 VBA だけで、データ取得から発注まで全て出来た方が良いのになぁ~、

そうすれば、そのVBAソフトを無料配布し易いんだけど 

そうでもないのか・・・・

>自動売買システムでは、自動売買ソフトだけでは成り立たず、複数のソフトウェアが必要で、そのソフトウェア同士でデータの受け渡しが頻繁におこります
このデータが正しく渡せないと、正しく動きません

>システムの核となるのは
・メインプログラム(全体の制御と売買シグナル発信 VBA使用)
・価格データ取得プログラム(MarketSpeedとRSS)
・発注プログラム (UWSC使用)
・発注ツール(証券会社web発注のためのInternetExplorer)

>ほか、システムの安定のために
・動作監視プログラム
・メール送信プログラム
 (携帯電話とブログにmailを送信し外にいても動作状況を知らせる)
・メモ帳 (mailで配信しているよりも詳細な動作状況のログを記録)

>と全部で6個以上のプログラムを走らせており、それぞれのソフトの間でデータを読み書きしております

  完全無人化しようとすればこれだけ要るんだろうなぁ~

  僕にはまだ安定の為のプログラムは無い 

 価格データ取得の部分は少し違うが下の図のようなイメージだ

Ime1

 僕の場合株価データ配信元はどこでも良い。しかし安定化のプログラムがない分、完璧にデータを読み込める状態にしておかねばならない。

 つづく

 この際だから自動メール送信にも挑戦してみようか

| | コメント (0) | トラックバック (0)

2011年10月 7日 (金)

こういう引けが一番困る

 サインの出る位置が2445辺り

 そして株価は14:30台に2440付近をウロチョロ

 自動化のボタンをそのままにしていたらややっこしい事になったらいけないので自動化ボタンを解除

 そのときは引け後に改めて発注のテストをしようと思った

        ********

 決済時間の14:57:30 には2441で買いサインは出ずに過ぎた

 ところが大引けに@2445を付けて引けたのだった

Gr3

 サインは?????

 それと同時にサインの出るポイントが2445から2446に上がったので、結局は今日もサインは出なかった

 しかし、引けにサインが出ていたとしてもどうする事も出来ない

 また、引け間際の注文は止めて様子を見ようとするこのビビリな性格・・・・・

 実現を阻む要因はいくらでもある

        ********

 そして引け後発注テストしようとするとピクリとも動かない

 ・・・・・・・・・・・

 ・・・・・・・・・・・

 そうだ! 自動解除にしていたのだ・・・・・

| | コメント (0) | トラックバック (0)

システムの 実現性 再現性 3

昨日作ったエクセルのグラフは1分毎に書き換わってくれる。上手く出来た

Gr2

寄り付きに買いのサインが出たのと10:30台に一瞬買いのサインが出たことがこのチャートで分かります(黄色の線を越えているので)。しかし、そのときの終値ではサインは1度も出ていません

        ********

 自動売買の大まかな一連の流れは出来上がっているのですが

 テストをしてみると色んな修正箇所が見つかります。

 先ず、9:01に9:00のデータが入り、9:31には行、列が変わり9:30のデータが入り9:31:30に9:00台の終値でのサインで発注と言う所まで行きました。

 そこで、問題が一つデータの更新作業に15秒程係り

 発注作業が45秒以上かかった場合、発注作業とデータ更新作業が重なってしまう

 場合によってはドッテンで発注作業が連続して2回起こる事もあるだろうから1つの発注作業を20秒以内にしなければならない・・・・

 UWSC のスクリプトの見直しが必要、

 確実な発注をさせて、システムを実現・再現するには、まだその他色々と見直さなければならない点があります

        ********

 前場最後の発注作業は10:00台の終値のサインで発注していた

 なんとなくその修正箇所は分かる。VBAを1箇所修正したら、その修正自体は正解なんだけど、それに関連した箇所の修正を忘れてしまう

 そんなこんなで、システムの実現・再現にはまだ時間がかかる

 それに、まだ、個人使用なら是でも良いけど更に進めようと思えばこれに正しく発注がなされているのかと言うチェック機能が必要だろう。

 まぁ、今の所、そこまでする必要もありませんが・・・・

 

| | コメント (0) | トラックバック (0)

2011年10月 6日 (木)

トレーリングストップ

 なんだかトレーリングストップが機能しているようで機能していない。

 パラを1.0%にしても10.0%(かけないのと同じ)にしても損益にそれほどの差は出なかった

調査中

  まぁ、ガチガチのトレーリングストップをかけても利は伸ばせないので、このシステムにおいてはそれほど重要ではない。かけなければかけないでパラが1個減るのだから・・・

 それに、トレーリングストップは充分に利益が乗った時点から掛けるべき物でそこのところはもっと考えてシステムに取り入れる必要があろう

        ********

 今日のグリーにはサインは出なかった

 Gr1

 イワイFXのチャート風に色づけをしてみました

 今日の動きではサインが出ないのはチャートを見れば明らか

 明日2380を下回りピンクの移動平均線が下向けば売りサインが

 逆に2445を超えれば買いサインが出るだろう・・・・・

  これは予測ではありません。ただ単にサインが出るといっているだけです。その後騰がる下がると言えば予測になるでしょうが僕にはその先は分かりません

 まぁ、どんなシステムでもこんな物と違うのか!!!!

 明日にはここまで騰がります・下がりますと予測して動くシステムがあって、しかも100%的中なら良いのだけど

 実際には10%騰がったら売りとかクロスすれば買い、と言う物で、システムと言ってもそれは単なる投資ルールに過ぎない、それを統計的なエッジなんて言って誤魔化すどこにエッジがあるねん?????

 それなら、チャートやニュースを上手く読み取り予測が出来、しっかりとした投資ルールを持ち、資金管理が出来る裁量投機家の方が遥かに上を行くだろう

    目的はあくまでもコンスタンスに儲ける事なんだ

 

| | コメント (0) | トラックバック (0)

システムの 実現性 再現性 2

 個別株で1分毎のデータが取得できて、それを30分足に加工できるならFXだって出来るでしょう

 ところが、FXの場合24時間休みなしにPCを動かしデータをとり続けなければならない。

 寝てる時もFXは動いているのだ!!!!

 僕のシステムは相場が動いている間は動かしておかないと意味がない。しかし、そんな事は出来ない

 方や株の方はちゃんと休みが在り、その間システムの改良、修正などの時間に当てられる、そして皆が休みなんだから、その間、安心して眠られる。公平だ!!!!

        ********

 また、市販システムには全銘柄を対象としていている物があるようだが、多くの銘柄にサインが出たとしても買えるだけの資金がないならそんなの なんぼ検証結果が良くとも実現出来ない。又その中にはとんでもない銘柄が含まれている・・・・

 まぁ、そんなこんなで、あらゆる角度から対象とする市場、銘柄は絞らねばならないだろう

 資料を色々調べて選ばなければならない

 日曜の休みにそれは出切る。其れぐらいの研究、勉強はして、その部分はシステムまかせ他人まかせであってはいけないと思う

 しかし、個別において銘柄やセクターの選択ミスは高くつくなぁ~~~coldsweats01

| | コメント (0) | トラックバック (0)

より以前の記事一覧