やりたいこと
為替のチャートを見ていて、「続伸・続落」という言葉はあるけれど
一体「n分足(今回は1分足)」で為替は何回連続で伸びるのかを計算してみた。
1度あれば2度あるが、濃厚なのか?
2度あれば3度あるが、濃厚なのか?
3度あれば4度あるが、濃厚なのか?
を条件付き確率でGoogle Financeから取得するのを目標にコードを書きます。
function getUSDJPY() { //1. Webページのソースを取得する。 var response = UrlFetchApp.fetch("https://info.finance.yahoo.co.jp/fx/detail/?code=USDJPY=FX"); var html = response.getContentText(); //2. <dd id="USDJPY_detail_bid">タグの位置を探す。 var tag = 'USDJPY_detail_bid">'; var index = html.indexOf(tag); usdjpy = ''; if (index !== -1) { //3. ソースの文字列の先頭〜2のタグ位置までを削除。 var html = html.substring(index + tag.length); var index = html.indexOf('</dd>'); if (index !== -1) { //4. </dd>タグの位置を探す。 html = html.substring(0, index); //6. <span class="large">を削除 html = html.replace('<span class="large">','') //7. </span>を削除 usdjpy = html.replace('</span>','') } } Logger.log(usdjpy); //スプレッドシートに書き込む var id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" var ss = SpreadsheetApp.openById(id) var sheet = ss.getSheetByName("為替") const FValues = sheet.getRange('A:A').getValues(); //A列の値を全て取得 var lastrow = FValues.filter(String).length; //空白の要素を除いた長さを取得 Logger.log(lastrow); var lastrow2 =lastrow+1; Logger.log(lastrow2); sheet.getRange("B"+lastrow2).setValue(usdjpy) //現在時刻習得 var date = new Date(); // 今日の日付を表示 Logger.log(Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd hh:mm:ss')); var realtime = Utilities.formatDate( date, 'Asia/Tokyo', 'yyyy/MM/dd hh:mm:ss'); sheet.getRange("A"+lastrow2).setValue(realtime); //指定するセルの範囲(Bの最終行)を取得 var range2 = sheet.getRange("B"+lastrow); //値を取得する var value2 = range2.getValue(); //ログに出力 Logger.log(value2); //傾き入力 sheet.getRange("C"+lastrow2).setValue(usdjpy-value2); //何連騰かを入力 if(sheet.getRange("C"+lastrow).getValue() > 0){ if(sheet.getRange("C"+(lastrow2)).getValue() > 0){ sheet.getRange("D"+lastrow2).setValue("続騰"); var continuous = range2.getValue(); //連投記入 sheet.getRange("E"+lastrow2).setValue(sheet.getRange("E"+lastrow).getValue() + 1); } } //何連落かを入力 if(sheet.getRange("C"+lastrow).getValue() < 0){ if(sheet.getRange("C"+(lastrow2)).getValue() < 0){ sheet.getRange("D"+lastrow2).setValue("続落"); //連投記入 sheet.getRange("E"+lastrow2).setValue(sheet.getRange("E"+lastrow).getValue() + 1); } } }
を書いて下準備は完了。
連騰 | 回数 | 条件付き確率 | 続騰率 |
---|---|---|---|
1以上 | 51 | ||
2以上 | 24 | 0.47 | 0.32 |
3以上 | 12 | 0.50 | 0.33 |
4以上 | 6 | 0.50 | 0.33 |
5以上 | 3 | 0.50 | 0.33 |
6以上 | 1 | 0.33 | 0.25 |
3~5連騰が相場ってことがわかりました。