サヤ取りは、何が「サヤ」なのか理解しないと勝てない

世界三大利殖法の1つと言われる「サヤ取り」手法ですが、サヤの本質を理解してないと勝てません。
 
FXで言えば、確実にサヤ取り出来るのはスワップポイントくらいでしょう。スワップアービトラージという手法です。
南アフリカランドやトルコリラなど高金利通貨で、スワップ受取りの多い業者で買ポジションを持ち、スワップ支払いの少ない業者で売ポジションを持ちます。なお買と売のポジションのロット数は同じにします。
『スワップ受取り>スワップ支払い』の関係が成り立てば、ランドやリラのレートがいくら変動しようとも損することはありません。国債なんかよりも利回りの良い投資になるでしょう。
もっとも、利用される業者は損をしてしまうので、業者によっては口座凍結されるかもしれません。
また世界的な金融緩和の影響で、利幅も小さくなっているようです。
 
スワップポイント以外でもFXでサヤ取りする方法はあります。
FXが普及し始めた頃は、米雇用統計などの指標イベントでレートが急変した時、レートの配信が業者毎に異なる(一部の業者のレート配信が遅れる)ことがありました。
例えば米雇用統計でドル円が急落したとします。ある業者でレート急落を検出し、もう一方の業者ではまだレートが落ちていない時(配信が遅れている)、既に急落した業者でドル買、レート配信の遅れている業者でドル売をします。理論的には2業者分のポジションを建てた時点で既に利益が出ており、以降のレート変動の影響は受けません。頃合いをみて決済します。
業者間アービトラージと言われる手法ですね。(狭義では業者間のレート差を突いたサヤ取り、広義ではスワップアービトラージも業者間アービトラージに含まれる)
 
ただし、業者間アービトラージは禁断の手法とも言われており、サヤを取られる側の業者にバレたら確実に口座凍結を喰らいます。業者によっては、指標イベントを狙った取引を禁止している場合もあります。
現在は指標イベントの際にスプレッドが大きく広げたり、一時的に発注出来なくしたりと、業者側もアービトラージ対策をしているので、利益を出すのは難しいようです。
 
その他、MT4のEAでよく見掛けるのが、コアラとキウイの組合せなど、相関性の高い2つ通貨でサヤ取りする方法です。
EAの説明を見ると合理的に思えてしまうのですが、よくよく考えるとAUD/NZDの売買をしているに過ぎません。
でもって、この手のEAは煽り文句ばかりで稼げません。稼げるEAを見たことがありません。
※試しに、AUD/NZDやEUR/GBPで稼げるEAを挙げてみて下さい。
 
レートの相関関係が高いからといって、2つの通貨でサヤ取り出来るとは限りません。そもそも豪ドルとNZドルは直接的な関連性はありませんし…
どちらかと言えば、ドルと人民元のほうが直接的な関連性がある(人民元レートの算出にドルレートを参照している)ので、そのような通貨同士ならサヤ取りのチャンスがあるかもしれませんが…
 
通貨間のレート差でサヤ取りをするのであれば、2つの通貨の関連性を慎重に調べましょう。
サヤが開きっぱなしになってしまっては、サヤ取りどころか損失が広がるばかりです。それは最早「サヤ」とは言えません。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

米国冬時間に移行します。取引時間限定型EAの場合は設定を確認しましょう。

来週から米国冬時間(標準時間)に移行します。
これに伴い、月曜日のマーケットオープンも朝7時に移行します。
 
拙作のEAには何ら影響はありません。
しかし市販されているEAについては、夏時間⇔冬時間移行に伴い、設定変更が必要な事があります。特に取引時間限定型の場合は注意して下さい。
 
一例として「ごとうびエントリー」を取り上げてみます。
 
ごとうびの早朝にエントリーするシンプルなモデルのEA
ごとうびエントリー
ごとうびエントリー | fx-on.com
 
「ごとうびエントリー」は、5日や10日など5の倍数の日の東京市場で、仲値に向けてドル買い需要が多くなることに注目してドル買いをするEAです。
早朝にドル買でエントリーし、仲値決定前にエグジットします。
 
エントリー時間はEAのパラメータで日本時間を設定するようですが、デフォルト設定(ENTRY_TIME=6)のまま米国冬時間を迎えると、朝6時には市場がまだ開いていないためエントリーが出来ません。
米国冬時間の期間は、エントリー時間設定を日本時間朝7時に変更する必要があります。(ENTRY_TIME=7)
 
fx-onのフォワード計測はEAのデフォルトパラメータで稼働されていますので、米国冬時間の期間(2014/11/2~2015/3/7)の取引がおかしくなっています。
(ゴトウ日の早朝ではなく、ゴトウ日翌日の早朝にエントリーしている)
 
当然、成績にも影響が現れていて、
 米国夏時間:19勝15敗1分、勝率55.88%、総損益+17,330、PF2.36
 米国冬時間:5勝13敗、勝率27.78%、総損益-2,010、PF0.87
と、冬時間の期間の成績が大きく落ち込んでいます。
ですので、エントリー時間設定は必ず変更しましょう。
 
「ごとうびエントリー」は4,980円と安価で、かつ勝算の高いEAですのでオススメですが、願わくばエントリー・エグジット時間とも分単位まで設定できれば良いのになぁ…と思いました。
ちなみに東京仲値は日本時間9:55頃の為替レートを元に算出され、10:00に公示されます。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

【自作EA】レンジを避けるロジックは一切入っていません

カコテン iIchimoku AUDJPY で連敗が続いていて「レンジを避けるロジックは入っていないのか?」と疑問の声が挙がっているようですが、拙作のEAにはレンジを避けるロジックは一切入っていません。ゴメンナサイ。
カコテン iIchimoku AUDJPY | fx-on.com
 
一応理由はあって、市販EAをリサーチしたとき、「レンジを避けるロジック」系統が有効に機能しているEAを見付けることが出来ませんでした。
よって、市販されているEAで「レンジを避けるロジック搭載」を謳っていたとしても、販促効果以外に期待できないと判断しています。
 
ただ拙作EAの弱点である自覚はあるので(懐が痛いし…)、レンジ相場での無駄な売買を避けるロジックの研究は続けています。
 
現状、拙作EAの勝率が4~5割に留まるのは、フィルターを一切掛けていないのも1つの要因です。
勝率とリスクリワードレシオ(平均利益÷平均損失)の両立はとても難しい事ですので、勝率は自然体に任せつつ、リスクリワードレシオを重視した損小利大トレードで利益を確保する方向で設計しています。
 
※フィルターを掛けないのは、フィルター自体にも寿命があってEAの寿命を縮める要因になる、という理由もあります。
 
何卒ご理解下さい。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

【VPS】ディスク速度の比較

前回の続きで、VPSのディスク速度を測定してみました。
ちなみに全て最小構成プランです。
 
使えるねっと FX専用VPS
crystaldiskmark_tsukaeru_net_151019.png
 
お名前.com デスクトップクラウド for FX
crystaldiskmark_onamae_com_151019.png
 
ABLENET VPS仮想デスクトップ
crystaldiskmark_ablenet_151019.png
 
Amazon EC2
crystaldiskmark_aws_151019.png
 
WEBKEEPERS
crystaldiskmark_webkeepers_151019.png
 
 
専用サーバーに構築された仮想環境だけあって、どこも速いですね!
ランダムアクセスはSSDを使っているWEBKEEPERSが抜きん出ていましたが、最小構成プランとしてはオーバースペックの気がしないでもありません。
MT4の稼働数限界はCPU能力とメモリ量(=契約内容)で決まりそうです。
 
VPS最小構成プラン(1CPU、1GB)の場合、業者の推奨は1つのMT4・1つのEA稼働になっていると思います。
実際は複数のMT4・複数EAの稼働も可能ですが、日中は問題なくても、夜10時頃になるとティック受信頻度増加に伴い、MT4が固まってしまうことがありますので、無理はしないようにしましょう。
 
僕は楽観的にMT4を多数稼働させてしまうので、使えるねっと、お名前.com、Amazon EC2とも、MT4を黙らせたことがありますよ!
(MT4「応答なし」状態
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

【VPS】MT4サーバーとのping比較

VPSの追加契約を検討をする中で、MT4の取引用サーバーとのping時間を比較してみた。
mt4_server_ping_151017.png
 
取引用サーバーの所在地は、楽天(FXCM)とFXTFが日本、GAINCapital(FOREX.com)とOANDAが米国東部、GEMFOREXは推測だがシンガポール、XMも推測だが英国近辺と思われる。
 
表中、平均欄の黄色は最速、灰色は最遅。
 
使えるねっと FX専用VPS(データセンター選択:日本)
mt4_server_ping_151017_tsukaeru_net.png
僅かな差だがGEMFOREXは最速値だった。XEもレスポンス良いほう。
10月31日まで最大50%offのキャンペーン実施中
 
お名前.comデスクトップクラウド for FX(データセンター選択:日本)
mt4_server_ping_151017_onamae_com.png
標準的。Windowsの設定縛りが少なく、自宅PCの感覚で扱える。
 
ABLENET VPS仮想デスクトップ
mt4_server_ping_151017_ablenet.png
比較的安価。Windowsの設定縛りが少なく、自宅PCの感覚で扱える。
 
Amazon EC2(データセンター選択:東京)
mt4_server_ping_151017_amazon_ec2.png
楽天(FXCM)とFXTFは驚異の3ms未満!
リージョンは米国東部やアイルランド、シンガポールなども選択出来るので、ブローカーに合わせると良い。
なおリージョンによって料金が異なる。(米国東部の方が安い)
最小構成は12ヶ月間無料でお試し可能。
Windowsの設定縛りが少なく自宅PCの感覚で扱えるが、Windowsは英語版となる。(言語パッケージ適用による日本語化は可能)
 
WEBKEEPERS
mt4_server_ping_151017_webkeepers.png
国内最安級、月1,080円~のWindows VPS。データセンターは海外にあるようだ。(恐らく米国西部)
1ヶ月契約でも1,180円~なので、長期契約を申し込む前に1ヶ月契約で試した方が良いと思う。
 
(参考)自宅PC
mt4_server_ping_151017_nekonote_pc.png
参考ということでXMに最遅の色付けはしていない。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

【うっかりで済むのか?】Windows Updateすると勝手にWindows7/8がWindows10にアップグレードされるエラーが発生

情報ソース:GIGAZINE
Windows Updateすると勝手にWindows7/8がWindows10にアップグレードされるエラーが発生
 
> 2015年10月のWindows UpdateでオプションであるはずのWindows 10への自動アップグレードがWindows Updateプログラム内に「最初からチェックが入った」状態となっており、そのままだとWindows Updateしたつもりがそれだけで済まず、Windows 10へのアップグレード手続きが始まってしまうというもの。
> 今回の騒動自体はMicrosoftの「うっかりミス」が原因とのことですが、…

これは、、、うっかりで済まして良い話なのか??
 
ちなみに、FXトレードの観点で言えばWin10は使えなくもないが、
あえて使う必要性は全く感じないOS
である。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

【Win10Home】MT4稼働中に勝手に再起動しました(WindowsUpdate起因)

先日「問題なく運用できています」と言っていたWindows10 Homeですが、本日問題が発生しました。
 
WindowsUpdateの自動適用により、
MT4稼働中に勝手に再起動しました!
win10_update_rebootlog_151015.png
 
再起動の理由が「計画済」になっています。窓達の計画的犯行ですね!!
 
MT4の操作履歴を確かめたところ、通常終了する際のログ
“ xxxx MT4 build xxx stopped ”
が残っていないため、MT4は強制終了させられたものと思われます。
 
PC自体は自動ログインおよびMT4自動起動の設定をしてあったので、今回はMT4運用面での影響は出ていません。
が、懸念されてた通りになってしまった…
 
とりあえずWindowsUpdateのインストール方法を「再起動の日時を設定するように通知する」に戻しました。
win10_update_options_151015.png
 
この状態で暫く様子を見ようと思います。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

【注意】Myfxbookを過信してはいけませんよ?

EAの検証サイトで「Myfxbookのフォワードが~」という論評を見掛けますが、EA開発元が計測しているMyfxbookを過信しすぎると、案外痛い目に遭うかもしれません。
 
自分もMyfxbookでフォワード計測しているのですが、初期入金額や入出金の回数・金額・タイミングによってはグダグダになることが分かっています。
myfxbook_nekonote_151013_1819.png
 
楽天(FXCM)のリアル口座「ねこぱんち(neko-panchi)」は18万%なんて天文学的な利益など何処にも無いですし(PF1.5未満…手数料もあるし…)、GEMFOREXリアル口座は-93%の破綻状態ではありません(再びマイナス圏に沈んではいますが…)。
 
GEMFOREXではドローダウン2千%なんてのも記録しています。
myfxbook_nekonote_gemfx-real_151013_drawdown_peak.png
 
そもそも、楽天(FXCM)のように口座履歴が1ヶ月程度しか残らないブローカーでも、MT4サーバー履歴の検証済みを示す「Track Record Verified」に出来てしまうんですよ!
myfxbook_nekonote_neko-panchi_151013_1826.png
 
その気になれば、見栄え良いフォワードを作る事も可能でしょう。
 
先週、出品中EAのフォワード集計を掲載した自分が言うのも変な話かもしれませんが、開発元が販促用として掲載しているMyfxbookを鵜呑みにしてはダメです。
開発元ではない第三者が計測したフォワード(fx-onやゲムトレード等)があれば、必ず確認するようにしましょう。
 
さらに言えば、開発元でも販売元・提供元でもない、実際に運用している方々のフォワード公開が多ければ多いほど、フォワードの信憑性は高くなります。
 
※Myfxbookを疑えとは言っていません。ただ販促用のデータについては、過信は禁物という事をお伝えしたいだけです。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

Forexiteからヒストリカルデータをダウンロードするスクリプト、応用編

昨日の「Forexiteからヒストリカルデータをダウンロードして通貨ペア別ファイルを作成するスクリプト」の続きです。
応用というか、スクリプト読めば自明なのですが…
 
2回目以降の実行の際、予めprnDataフォルダをリネームすると、差分データのみのPRNファイルを作成できます。
forexite_historical_prnfile_151010.png
 
MT4へのインポートも、差分取込であればサクッと終わりますよ!
 
VBスクリプトのprnフォルダ作成時に実行日付を付加して、常に差分データを作成するようにカスタマイズしても良いでしょう。
 prnFolder = prnFolder & "_" & Replace(FormatDateTime(Date, 2), "/", "")

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

Forexiteからヒストリカルデータをダウンロードして通貨ペア別ファイルを作成するスクリプト

ヒストリカルデータをダウンロード可能なところは幾つかありますが、1分足で10年間以上の長期ヒストリカルデータを入手できる所ではForexiteが有名です。
桁数は2桁/4桁ですが、主要通貨ペアは2001年以降のデータが揃っていますし、キウイ円なども2003年から入手可能です。
 
ただし配布形式は1日1ファイルで通貨ペア混在のため、MT4にインポートするには通貨ペア別にデータを分ける必要があり、手間が掛かっていました。
 
そこで今回は、ダウンロードから通貨ペア別ファイル作成までの一連の作業を、一括で行うVBスクリプトを作ってみました。
 
Forexiteヒストリカルデータ取得.vbs
Option Explicit

'**************************
' ダウンロード期間の指定
'**************************
Const PeriodStart = #2015/01/02#    ' 2001/01/03~取得可能
Const PeriodEnd = 0                 ' ゼロで前日分まで取得

' ADODB.Stream 定数
Const adTypeBinary = 1
Const adTypeText = 2
Const adSaveCreateNotExist = 1
Const adSaveCreateOverWrite = 2

' Scripting.TextStream 定数
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8

' NameSpace.CopyHere 定数
Const FOF_SILENT = &H4
Const FOF_NOCONFIRMATION = &H10


'**************************
' メイン処理呼び出し
'**************************
Call Main


'----------------------------------------------------------------
' メイン処理
'----------------------------------------------------------------
Sub Main()
    
    Dim objFs
    Dim historicalDate, PeriodEndDate
    Dim zipFile, txtFile
    Dim exportResult
    
    If MsgBox("処理しますか?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
    
    Set objFs = CreateObject("Scripting.FileSystemObject")
    
    If PeriodEnd = 0 Then
        PeriodEndDate = Now() - 1
    Else
        PeriodEndDate = PeriodEnd
    End If
    
    For historicalDate = PeriodStart To PeriodEndDate
        
        ' 土曜日以外は取得
        If Weekday(historicalDate) <> 7 Then
        
            zipFile = HistoricalDataDownloadFromForexite(historicalDate)
            txtFile = ExtractHistoricalZip(zipFile)
            
            If txtFile <> "" Then
                exportResult = DivideHistoricalPrn(txtFile)
                If Not exportResult Then Exit For
                objFs.DeleteFile txtFile
            End If
            
        End If
        
    Next
    
    Set objFs = Nothing
    
    MsgBox "処理が終わりました", vbInformation
    
End Sub

'----------------------------------------------------------------
' Forexiteからヒストリカルデータをダウンロードする
' 【引数】
'   HistoricalDate … ダウンロードするデータの日付
' 【戻り値】
'   保存したZIPファイル名
'----------------------------------------------------------------
Function HistoricalDataDownloadFromForexite(historicalDate)
    
    Dim objFs, objWinHttpRequest, objAdoStream
    Dim downloadFolder, remoteFileName, localFileName
    Dim yyyy, yy, mm, dd
    
    HistoricalDataDownloadFromForexite = ""
    
    If IsDate(historicalDate) Then
        
        Set objFs = CreateObject("Scripting.FileSystemObject")
        Set objWinHttpRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
        Set objAdoStream = CreateObject("ADODB.Stream")
        
        yyyy = CStr(Year(historicalDate))
        yy = Right(yyyy, 2)
        mm = Right("0" & Month(historicalDate), 2)
        dd = Right("0" & Day(historicalDate), 2)
        
        ' ダウンロードフォルダ作成
        downloadFolder = objFs.BuildPath(objFs.GetFile(WScript.ScriptFullName).ParentFolder.Path, "download")
        If Not objFs.FolderExists(downloadFolder) Then objFs.CreateFolder downloadFolder
        
        ' リモートファイル名はDDMMYY.zip
        remoteFileName = "https://www.forexite.com/free_forex_quotes/" & yyyy & "/" & mm & "/" & dd & mm & yy & ".zip"
        
        ' ローカルファイル名はYYYYMMDD.zipで保存
        localFileName = objFs.BuildPath(downloadFolder, yyyy & mm & dd & ".zip")
        
        If Not objFs.FileExists(localFileName) Then
            
            ' ダウンロードリクエスト
            objWinHttpRequest.Open "GET", remoteFileName, False
            objWinHttpRequest.Send
            
            If objWinHttpRequest.GetResponseHeader("Content-Type") = "application/zip" Then
                
                ' ZIPファイルを保存
                objAdoStream.Type = adTypeBinary
                objAdoStream.Open
                objAdoStream.Write objWinHttpRequest.ResponseBody
                objAdoStream.SaveToFile localFileName, adSaveCreateOverWrite
                objAdoStream.Close
                
                HistoricalDataDownloadFromForexite = localFileName
                
            End If
            
        End If
        
    End If
    
    Set objAdoStream = Nothing
    Set objWinHttpRequest = Nothing
    Set objFs = Nothing
    
End Function

'----------------------------------------------------------------
' ZIPファイルを解凍する
' 【引数】
'   HistoricalZipFile … ダウンロードしたヒストリカルZIPファイル
' 【戻り値】
'   解凍したtxtファイル名
'----------------------------------------------------------------
Function ExtractHistoricalZip(HistoricalZipFile)
    
    Dim objFs, objShell, objFolder, objZipFolder
    Dim workFolder, zipFile, txtFile
    
    Set objFs = CreateObject("Scripting.FileSystemObject")
    Set objShell = CreateObject("Shell.Application")
    
    If objFs.FileExists(HistoricalZipFile) Then
        
        ' 作業フォルダ作成
        workFolder = objFs.BuildPath(objFs.GetFile(WScript.ScriptFullName).ParentFolder.Path, "work")
        If Not objFs.FolderExists(workFolder) Then objFs.CreateFolder workFolder
        
        ' ZIPファイルを解凍
        Set objFolder = objShell.Namespace(workFolder)
        Set objZipFolder = objShell.Namespace(HistoricalZipFile)
        objFolder.CopyHere objZipFolder.Items(), FOF_SILENT Or FOF_NOCONFIRMATION
        WScript.Sleep 1000
        
        ' 解凍確認
        zipFile = objFs.GetBaseName(HistoricalZipFile)
        If Len(zipFile) = 8 Then
            txtFile = objFs.BuildPath(workFolder, Right(zipFile, 2) & Mid(zipFile, 5, 2) & Mid(zipFile, 3, 2) & ".txt")
        Else
            txtFile = objFs.BuildPath(workFolder, zipFile & ".txt")
        End If
        
        If objFs.FileExists(txtFile) Then ExtractHistoricalZip = txtFile
        
    End If
    
    Set objZipFolder = Nothing
    Set objFolder = Nothing
    Set objShell = Nothing
    
End Function

'----------------------------------------------------------------
' ヒストリカルを通貨ペア別に分けて保存する(prn形式)
' 【引数】
'   HistoricalTxtFile … ダウンロードしたヒストリカルTxtファイル
' 【戻り値】
'   成功時True、失敗時False
'----------------------------------------------------------------
Function DivideHistoricalPrn(HistoricalTxtFile)
    
    Dim objFs, objTextStream
    Dim prnFolder, prnFile
    Dim txtData, prnHeader, prnData, symbol
    Dim txtPos, searchPos, sectionPos
    Dim errFlg
    
    Set objFs = CreateObject("Scripting.FileSystemObject")
    
    If objFs.FileExists(HistoricalTxtFile) Then
    
        ' prnフォルダ作成 ※'PRN'はシステム予約語のためファイル名使用不可
        prnFolder = objFs.BuildPath(objFs.GetFile(WScript.ScriptFullName).ParentFolder.Path, "prnData")
        If Not objFs.FolderExists(prnFolder) Then objFs.CreateFolder prnFolder
        
        ' txtファイル読込
        Set objTextStream = objFs.OpenTextFile(HistoricalTxtFile, ForReading)
        txtData = objTextStream.ReadAll
        objTextStream.Close
        Set objTextStream = Nothing
        
        If Len(txtData) > 50 Then
            
            ' ヘッダー抽出
            searchPos = InStr(1, txtData, vbCrLf)
            If searchPos > 0 Then
                prnHeader = Left(txtData, searchPos - 1)
                txtPos = searchPos + 2
            Else
                MsgBox "ヘッダー取得に失敗しました" & vbLf & HistoricalTxtFile, vbCritical
                errFlg = True
            End If
            
            
            ' 通貨ペア分割
            Do While Len(txtData) > txtPos And Not errFlg
                
                ' 通貨ペア取得
                searchPos = InStr(txtPos, txtData, ",")
                If searchPos > 0 Then
                    symbol = Mid(txtData, txtPos, searchPos - txtPos)
                    
                    ' 該当通貨ペアのヒストリカルデータ最終行検索
                    searchPos = InStrRev(txtData, symbol)
                    If searchPos > 0 Then
                        
                        ' 通貨ペア別ヒストリカルデータ取得
                        sectionPos = InStr(searchPos, txtData, vbCrLf)
                        If sectionPos = 0 Then sectionPos = Len(txtData) + 1
                        prnData = Mid(txtData, txtPos, sectionPos - txtPos)
                        txtPos = sectionPos + 2
                        
                        ' prnファイル出力
                        prnFile = objFs.BuildPath(prnFolder, symbol & ".prn")
                        If Not objFs.FileExists(prnFile) Then prnData = prnHeader & vbCrLf & prnData
                        
                        Set objTextStream = objFs.OpenTextFile(prnFile, ForAppending, True)
                        objTextStream.WriteLine prnData
                        objTextStream.Close
                        Set objTextStream = Nothing
                        
                    Else
                        MsgBox "通貨ペア分割に失敗しました" & vbLf & HistoricalTxtFile, vbCritical
                        errFlg = True
                        
                    End If
                    
                Else
                    MsgBox "通貨ペア取得に失敗しました" & vbLf & HistoricalTxtFile, vbCritical
                    errFlg = True
                    
                End If
                
            Loop
            
        Else
            MsgBox "テキスト読込に失敗しました" & vbLf & HistoricalTxtFile, vbCritical
            errFlg = True
        
        End If
        
    Else
        MsgBox "テキストファイルがありません" & vbLf & HistoricalTxtFile, vbCritical
        errFlg = True
        
    End If
    
    Set objFs = Nothing
    
    DivideHistoricalPrn = Not errFlg
    
End Function
 
ヒストリカルデータの取得期間は最初の定数宣言で指定して下さい。
このスクリプトを実行すると、VBSを実行したフォルダに3つのフォルダが作成されます。
forexite_historical_download_script_151008.png
 
VBSなので処理状況は表示されませんが、downloadフォルダの中を見ていれば、状況はだいたい判ると思います。
Forexiteは2001/1/3~取得可能ですが、全期間を一度に処理すると数時間以上掛かると思います。VBSのため中断できないのでご注意下さい。
なお2回目以降は差分ダウンロード・追記方式のため、処理時間はさほど掛かりません。
 
MT4インポート用のテキストファイルは「prnData」にPRN形式で保存されますが、MT4が扱うPRN形式は、ほぼCSVと同じです。
PRN形式の利点は、通貨ペアの列を除去しなくてもインポート可能であり、Forexiteのテキストをそのまま流用可能な点になります。
 
全期間ダウンロードした場合のディスク使用容量は、ダウンロードしたZIPファイルが約1GB、prnファイルが約9.6GBになります。
 
 
MT4へのインポート方法はいつもの通りです。
ForexiteのヒストリカルデータはGMT+1なので、必要に応じて時間をシフトして下さい。
prn_usdjpy_m1_import_151008.png
 
1つ注意点として、15年ものヒストリカルデータになるとファイルサイズが約300MBになりますので、連続してインポートし続けているとMT4の動作がおかしくなる事があります。
これはMT4のhstファイル作成タイミングが、インポート直後ではなくMT4を終了させた後であり、メモリ上でヒストリカルデータを保持し続ける事により、32ビットアプリのメモリ制限2GBを使い切ってしまう為と思われます。
 
長期間のヒストリカルデータをインポートする際は、2~4通貨ペアのインポート毎に一旦MT4を終了したほうが良いでしょう。
 

テーマ : FX(外国為替証拠金取引)
ジャンル : 株式・投資・マネー

プロフィール

nekonote

Author:nekonote

EAを作るのが趣味になってしまったらしい。

あとマニアックな運用とかetc...その時の気分で書き殴る(?)
そんなブログ

※当ブログ記事へのリンクはご自由にどうぞ

 
運用は…fx-onのみんなのMT4に公開しているかも?
fx-on 通常会員ページ
fx-on 出品者ページ

最新記事
最新コメント
月別アーカイブ
カテゴリ
検索フォーム
ブログランキング
にほんブログ村 為替ブログ システムトレード 自作EA派へ





QRコード
QR
RSSリンクの表示
リンク
FX情報サイト
 優秀トレーダーの投資法をゲット!
FX投資情報コミュニティfx-on.com


国内MT4取扱会社
外為ファイネスト カコテン iOsMA (type DI) EURAUD タイアップキャンペーン

アヴァトレード・ジャパン株式会社 カコテン iOsMA (type DI) EURAUD タイアップキャンペーン

FOREX.com×タイアップキャンペーン☆Beatrice-07 FXTF×ForexSolidタイアップキャンペーン



自作EA紹介


EAフォワード集計結果
海外MT4業者
海外業者を選ぶ際は、まず金融庁の「注意喚起」を熟読して下さい。無登録業者で事故っても自己責任ですよ!
自分はゲムトレード&GEMFOREXに突撃してみましたw




自分もカコテンシリーズを幾つか出品しています。 運用結果でネタが集まれば時々記事にします。

ゲムトレードはEAの将来価値をリスクヘッジするには良い仕組みを提供していると思います。ただし本当に実力のあるEAはfx-on等から買った方が良いでしょう。
取引明細には現れませんがIBのような仕組みでゲムトレードへ報酬が渡っていますので、単一EAの長期運用ではデメリットが成績に現れると思われます。

※繰り返しますが海外業者でトラブっても自己責任です。お忘れなく!
FX専用VPS
レンタルサーバーなら使えるねっと



みんなのMT4
紫色:リアル口座
水色:デモ口座
ねこぱんち | fx-on.com
ねこぱんちMAXでも | fx-on.com
ねこのまえあし | fx-on.com
€$ XM demo | fx-on.com
£$ FxPro demo | fx-on.com
€¥ IFC Markets demo 2nd! | fx-on.com
£¥ IC Markets demo  | fx-on.com
$¥ MGK Global demo | fx-on.com
BigBoss demo AUDJPY | fx-on.com
€x LandFX demo | fx-on.com
KAKO10 iIchimoku リアル OANDA | fx-on.com
KAKO10 iIchimoku デモ FXTF | fx-on.com
KAKO10_iMA(H27.5~) | fx-on.com
KAKO10 iMA デモ Axiory(運用終了) | fx-on.com
KAKO10 iMA デモ Axiory新鯖 | fx-on.com
Ava demo iOsMA方向性スイング(運用終了) | fx-on.com
カコテン iOsMA (type DI) デモ Centrade | fx-on.com
カコテン iMomentum (type DI) デモ Arena | fx-on.com
瞬殺!!! NCSEC demo ※運用終了 | fx-on.com
GEMFOREX demo 新サーバーお試し ※破綻 | fx-on.com
 | fx-on.com
 | fx-on.com
 | fx-on.com
 | fx-on.com