EXCELでの為替の自動取引プログラムについて
未読分:1件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#1 2015年2月4日(水)21時14分 From: 為替の自動取引 | 返事 削除 変更 |
EXCELでの為替の自動取引プログラムについて参考にしたいのですが内容が全くわからずVBAや関数について詳しい方に解説願いたいのですが。 ↓です。全部入りきらなかったので前半省略してます。 Sub Schedule() If Hour(Time) = 0 Then '午前0時に終了 IE.Quit 'ブラウザ終了 ThisWorkbook.Save 'ブックを保存 Application.Quit 'エクセルを終了 End If 'スケジュールセット While (Second(Time) <> 0) '10:00:00のタイミングまで待機 DoEvents Wend Application.OnTime Time + TimeSerial(0, 0, 59), "Schedule" '59秒後にセット Getminutedata '1分毎のレート取得処理 If timecount >= 25 Then 'データがある程度集まるまでは取引しない GetTrade '取引実行処理 End If End Sub Sub Getminutedata() '1分毎のレート取得 timecount = timecount + 1 'カウント加算 With Sheets(sheetname) Dim rate As Double rate = Val(IE.Document.getElementById("strike").innerText) 'レート '各種情報出力(1分毎に算出する項目) .Cells(timecount + 10, 2) = timecount 'カウント .Cells(timecount + 10, 3) = Hour(Time) & ":" & Minute(Time) & ":" & Second(Time) '時間 .Cells(timecount + 10, 4) = rate 'レート .Cells(timecount + 10, 6) = "=IF(AND(RC[-2]>0,R[3]C[-2]>0),R[3]C[-2]-RC[-2])" '3分後 If timecount > 24 Then .Cells(timecount + 10, 7) = "=MAX(R[-21]C4,R[-18]C4,R[-15]C4," & _ "R[-12]C4,R[-9]C4,R[-6]C4,R[-3]C4,RC4,R[-24]C4)" '最大 .Cells(timecount + 10, 8) = "=MIN(R[-21]C4,R[-18]C4,R[-15]C4," & _ "R[-12]C4,R[-9]C4,R[-6]C4,R[-3]C4,RC4,R[-24]C4)" '最小 .Cells(timecount + 10, 11) = "=(RC7-RC8)*R10C+RC8" 'FR-2 .Cells(timecount + 10, 12) = "=(RC7-RC8)*R10C+RC8" 'FR-1 .Cells(timecount + 10, 13) = "=(RC7-RC8)*R10C+RC8" 'FR0 .Cells(timecount + 10, 14) = "=(RC7-RC8)*R10C+RC8" 'FR+1 .Cells(timecount + 10, 15) = "=(RC7-RC8)*R10C+RC8" 'FR+2 .Cells(timecount + 10, 16) = "=IF(RC[-10]<>0,RC[-10]/ABS(RC[-10]),0)" '3分後の結果方向 'シグナル .Cells(timecount + 10, 21) = "=0" '何か .Cells(timecount + 10, 22) = "=IF(RC[-18]RC[-7],-1,0))" '逆張り .Cells(timecount + 10, 23) = "=0" '総合 '結果 .Cells(timecount + 10, 26) = "=IF(AND(ISNUMBER(RC16),ISNUMBER(RC[-5]))," & _ "IF(RC[-5]=RC16,RC[-5],0))" '結果 .Cells(timecount + 10, 27) = "=IF(AND(ISNUMBER(RC16),ISNUMBER(RC[-5]))," & _ "IF(RC[-5]=RC16,RC[-5],0))" '結果 .Cells(timecount + 10, 28) = "=IF(AND(ISNUMBER(RC16),ISNUMBER(RC[-5]))," & _ "IF(RC[-5]=RC16,RC[-5],0))" '結果 End If End With '1分毎のレート取得終了 End Sub Sub GetTrade() Dim pips As Double 'レンジ外範囲 Dim signalcolumn As Integer '指標採用列 With Sheets(sheetname) signalcolumn = .Cells(9, 23) pips = Val(Mid(IE.Document.getElementById("onePipUp").innerText, 1)) If pips < 0.3 Then '許容レンジ設定 If .Cells(timecount + 10, signalcolumn) = 1 Then '円安 IE.Document.getElementById("up_button").Click 'クリック ElseIf .Cells(timecount + 10, signalcolumn) = -1 Then '円高 IE.Document.getElementById("down_button").Click 'クリック Else Exit Sub End If '購入実行 Application.Wait Time:=[Now() + TimeValue("00:00:00.2")] '0.2秒ウェイト IE.Document.getElementById("invest_now_button").Click 'クリック End If End With '購入実行終了 End Sub |
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降