生活/クレジットカード/為替手数料
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#contents
The official figure of credit card transaction fee for fo...
*最新 [#p3cec8e0]
-2019年7月1日(月)以降 [[「外貨でのショッピングご利用に伴...
-「最終画面では、日本円で支払うか米ドル(米国の場合)で支払...
*VISA v. Master [#k17faf3d]
&htmlinsert(:HTML/クレカ為替手数料集計);
-How much added to the TTM / TTMにどれだけ上乗せされてい...
-The value below the table shows the difference when you ...
-Confidence coefficient/信頼係数 95%。
#hr
--換算日が分かるもの(三井住友カード、JCBカード、セゾンカ...
--TTMは原則として三井住友カードなら三井住友銀行,DCカード...
--DCカードのMasterは持っているがVISAは持っていない。DCカ...
---もっとも、最近のデータを見ていて気付いたのだが、DCカー...
--実際は発行会社その他の要因も影響しているようだが,分析...
--この表は原本からリアルタイム更新なのでたまに実験中の異...
-三井住友カード、JCBカード、セゾンカードは換算日(三井住...
-換算日が書いてないカードでも推測は立つ。VISAまたはMaster...
-各社公式情報
--[[海外でのご利用範囲|セゾンカードご利用ガイド|クレジ...
--[[換算レートや海外事務手数料について教えてください。 | ...
--[[ご利用明細のご説明|クレジットカードの三井住友VISAカ...
--[[外貨でのショッピングご利用代金を円貨へ換算するための...
*同日同店で競争 [#p8f4c262]
There is another way to compare. I tried to use multiple ...
&htmlinsert(:HTML/クレカ為替手数料集計2);
Right: Comparison with TTM (In other words, absolute eval...
-見ての通り、JAL DC Masterの誤差が非常に大きく、統計的に...
とりあえず、ANA MasterとANA VISA Suicaの比較では、VISAの...
-TTMと比べる方式には課題がある。いつのTTMと比べるかだ。「...
-3つの方法には以下の差があるようだ。
|換算日のTTMで比較する(絶対評価)|カード発行会社の上乗せ...
|利用日のTTMで比較する(絶対評価)|カード発行会社とブラン...
|相対評価|為替変動リスクを含む消費者の負担を見る。誤差は...
-相対比較の誤差の大小は、主に為替変動リスクを示している。...
--しかしその他に、換算レートが為替変動のトラッキング以外...
-TTM比の誤差が小さいことは、カード会社が上乗せする率のル...
-ちなみに、実験開始当初は間隔を空けずに連続的に複数のカー...
--やり過ぎるとamazonからbanされるかも。[[アマゾンがアカウ...
-JAL DC Masterの分散を人為的に小さくすることもできそうな...
*自動化 [#k070fe2d]
**カード明細取得自動化 [#v51103ac]
自動化しないと誤記する。また、自動化し、巡回精度を保たな...
速報はCSVでダウンロードできないカードが意外とある。そうい...
***Amex自動化 [#amex]
#pre{{
const puppeteer = require('puppeteer');
const fs = require('fs');
(async() => {
const browser = await puppeteer.launch({
//headless: false,
args: [
'--no-sandbox',
]
});
const page = await browser.newPage();
await page.setViewport({width: 1024, height: 768});
await page.goto('https://global.americanexpress.com/myca...
await page.waitForSelector('input#lilo_userName', {waitU...
await page.focus("input#lilo_userName");
await page.type("input#lilo_userName", 'your ID');
await page.focus("input#lilo_password");
await page.type("input#lilo_password", 'your passwd');
await page.click('#lilo_formSubmit');
await page.waitForNavigation({waitUntil: 'load'});
await page.waitForSelector('#balance-summary-table', {wa...
// カードによって違うので要修正
await page.click('#balance-summary-table tr.recent-debit...
await page.waitForNavigation({waitUntil: 'load'});
await page.waitForSelector('#transaction-table', {waitUn...
//tr要素のidを取得。transaction id
let tid = await page.$$eval('#transaction-table tr[id]',...
return list.map(date => date.id);
});
let lines = [];
// transaction id毎に
// 各決済のtrは2段からなる。
// クリックによる展開前と展開後の詳細
// idが違う。
for (let i in tid) {
await page.click("#transaction-table tr#" + tid[i] + " ...
await page.waitForSelector("#transaction-table tr#" + t...
// 詳細欄のtransaction id取得
// 例: #etd-details-content-AT181580...
let dom = '#transaction-table tr#' + tid[i] + ' + tr[id...
let tidd = await page.$eval(dom, e => e.id);
// dateと請求額は1段目のtr
dom = 'tr#' + tid[i] + ' td.date span.ng-binding';
let date = await page.$eval(dom, e => e.innerText);
//#trans-... > td.date > div > span.ng-binding
let shop = await page.$eval("tr#" + tidd + " p.header.n...
//#etd-details-content-AT1815... > div > div.etdContent...
let local = await page.$eval("tr#" + tidd + " p.amount ...
//#etd-details-content-AT1815... > div > div.etdDetails...
let curr = await page.$eval("tr#" + tidd + " p.amount >...
//#etd-details-content-AT181... > div > div.etdDetails....
dom = 'tr#' + tid[i] + ' td.amount > div > span';
let jpy = await page.$eval(dom, e => e.innerText);
//#trans-AT18158... > td.amount > div > span
let rate_date = await page.$eval("tr#" + tidd + " div.e...
//#etd-details-content-AT18156... > div > div.etdConten...
let rate = await page.$eval("tr#" + tidd + " p.amount.n...
// #etd-details-content-AT181... > div > div.etdDetails...
let line = [date,shop,local,curr,jpy,rate_date,rate].jo...
console.log(line);
lines.push(line);
}
fs.writeFile('amex.csv', lines.join("\n"),(err) => {
if (err) throw err;
});
//ログアウト
await page.click('#jp_utility_login');
await browser.close();
})();
}}
**TTM [#r7e6fc06]
TTMの入手先:
-[[外国為替情報 : 三井住友銀行:http://www.smbc.co.jp/mar...
-[[三菱UFJリサーチ&コンサルティング | 外国為替相場 | 1990...
-TTM(仲値)というわけではないが、[[Pacific Exchange Rate...
自動化しないと、誤記する。
-三井住友銀行(なお、私は同行からbanされた。403 Forbidden...
#pre{{
#!/usr/bin/perl
use utf8;
use strict;
use warnings;
my $url = 'http://www.smbc.co.jp/market/backnumber/fixing...
# 今月
my $thisMonth = '//*[@id="tabbox1"]/div//li/a/@href';
# 前月
my $lastMonth = '//*[@id="tabbox2"]/div//li/a/@href';
use URI;
my $u = URI->new($url);
use HTML::TreeBuilder::XPath;
my $tree = HTML::TreeBuilder->new_from_url($url);
my @href = $tree->findvalues($lastMonth);
push(@href, $tree->findvalues($thisMonth));
use LWP::UserAgent ();
my $ua = LWP::UserAgent->new;
for my $pdfpath (@href) {
my $uri = sprintf qq(http://%s%s),$u->host,$pdfpath;
my $response = $ua->get($uri);
if ($response->is_success) {
my $pdfbody = $response->decoded_content;
my $tmpfile = "/tmp/msbcrate.$$";
open(my $fh, '>', "$tmpfile") or die "$tmpfile:$!";
print $fh $pdfbody;
close $fh;
open($fh, "pdftotext -layout $tmpfile - |") or die "pip...
my @content = <$fh>;
close $fh;
unlink $tmpfile;
if (my ($date, %rate) = &msbcrate_pdf(@content)) {
my $ttm = ($rate{'usd'}->{'tts'} + $rate{'usd'}->{'ttb...
printf qq(%s\t%.2f\n),$date,$ttm;
#my $insert =
#"INSERT IGNORE INTO usd VALUES ('$date','SM','$ttm')";
#$db->do($insert) or die $db->errstr;
} else {
print STDERR "failed in $pdfpath\n";
}
}
}
#$db->disconnect;
exit;
sub msbcrate_pdf {
my @lines = @_;
my $date = '';
my %rate = ();
my %month = qw(
Jan 1
Feb 2
Mar 3
Apr 4
May 5
Jun 6
Jul 7
Aug 8
Sept 9
Sep 9
Oct 10
Nov 11
Dec 12
);
for (@lines) {
# Date: May.25, 2018
if (my @temp = (/Date:\s+([a-zA-Z]+)\D+(\d+)\D+(\d+)/)) {
my $month = $month{$temp[0]} // 'fail';
$date = "$temp[2]/$month/$temp[1]";
next;
}
if (/U\.S\.A\.\s+USD\s+1\s+([\d\.]+)\s+([\d\.]+)\s+([\d...
$rate{'usd'}->{'tts'} = $1;
$rate{'usd'}->{'ttb'} = $3;
next;
}
}
if ($date eq '' || !defined $rate{'usd'}->{'tts'}) {
return;
} else {
return $date, %rate;
}
}
}}
-三菱UFJリサーチ&コンサルティング
#pre{{
#!/usr/bin/perl
use utf8;
use strict;
use warnings;
use Time::Piece;
use Time::Seconds;
my $t = localtime;
my $days = 20; # 過去○日分取得する。
use LWP::UserAgent ();
use HTML::TreeBuilder::XPath;
my $baseurl = 'http://www.murc-kawasesouba.jp/fx/past/ind...
# http://www.murc-kawasesouba.jp/fx/past/index.php?id=180...
for (1..$days) {
my $date = sprintf qq(%02d%02d%02d),$t->yy,$t->mon,$t->m...
my $url = $baseurl . '?id=' . $date;
my $ua = LWP::UserAgent->new;
# 営業日以外は「本日の為替相場」に転送される。
# http://www.murc-kawasesouba.jp/fx/index.php
$ua->max_redirect(0);
my $response = $ua->get($url);
my $root = HTML::TreeBuilder->new();
if ($response->is_success) {
$root->parse_content($response->decoded_content);
my $tts = $root->findvalue('//*[@id="main"]/table[1]/tr...
my $ttb = $root->findvalue('//*[@id="main"]/table[1]/tr...
my $ttm = ($tts+$ttb)/2;
my $date = $t->ymd("/");
printf qq(%s\t%.2f\n),$date,$ttm;
#my $insert =
#"INSERT IGNORE INTO usd VALUES ('$date','MU','$ttm')";
#$db->do($insert) or die $db->errstr;
}
$t -= ONE_DAY;
}
#$db->disconnect;
exit;
}}
*Amexの意外な競争力 [#a7ef8fc5]
Amexの決済インフラは他社に比べ圧倒的に強いかもしれない。A...
Amexの他では、三井住友カード(VISA、Master)が結構健闘し...
こうしたことも、個人で調べるのは時間も金もかかるが、マネ...
*このページのアーカイブ [#d66bc322]
-[[このページの2018年6月12日6時時点のPDF:http://over.6pb....
-[[このページの2018年 5月12日時点のPDF:http://over.6pb.in...
--ちなみに、ハッシュ値はWindows標準のコマンドで求めること...
終了行:
#contents
The official figure of credit card transaction fee for fo...
*最新 [#p3cec8e0]
-2019年7月1日(月)以降 [[「外貨でのショッピングご利用に伴...
-「最終画面では、日本円で支払うか米ドル(米国の場合)で支払...
*VISA v. Master [#k17faf3d]
&htmlinsert(:HTML/クレカ為替手数料集計);
-How much added to the TTM / TTMにどれだけ上乗せされてい...
-The value below the table shows the difference when you ...
-Confidence coefficient/信頼係数 95%。
#hr
--換算日が分かるもの(三井住友カード、JCBカード、セゾンカ...
--TTMは原則として三井住友カードなら三井住友銀行,DCカード...
--DCカードのMasterは持っているがVISAは持っていない。DCカ...
---もっとも、最近のデータを見ていて気付いたのだが、DCカー...
--実際は発行会社その他の要因も影響しているようだが,分析...
--この表は原本からリアルタイム更新なのでたまに実験中の異...
-三井住友カード、JCBカード、セゾンカードは換算日(三井住...
-換算日が書いてないカードでも推測は立つ。VISAまたはMaster...
-各社公式情報
--[[海外でのご利用範囲|セゾンカードご利用ガイド|クレジ...
--[[換算レートや海外事務手数料について教えてください。 | ...
--[[ご利用明細のご説明|クレジットカードの三井住友VISAカ...
--[[外貨でのショッピングご利用代金を円貨へ換算するための...
*同日同店で競争 [#p8f4c262]
There is another way to compare. I tried to use multiple ...
&htmlinsert(:HTML/クレカ為替手数料集計2);
Right: Comparison with TTM (In other words, absolute eval...
-見ての通り、JAL DC Masterの誤差が非常に大きく、統計的に...
とりあえず、ANA MasterとANA VISA Suicaの比較では、VISAの...
-TTMと比べる方式には課題がある。いつのTTMと比べるかだ。「...
-3つの方法には以下の差があるようだ。
|換算日のTTMで比較する(絶対評価)|カード発行会社の上乗せ...
|利用日のTTMで比較する(絶対評価)|カード発行会社とブラン...
|相対評価|為替変動リスクを含む消費者の負担を見る。誤差は...
-相対比較の誤差の大小は、主に為替変動リスクを示している。...
--しかしその他に、換算レートが為替変動のトラッキング以外...
-TTM比の誤差が小さいことは、カード会社が上乗せする率のル...
-ちなみに、実験開始当初は間隔を空けずに連続的に複数のカー...
--やり過ぎるとamazonからbanされるかも。[[アマゾンがアカウ...
-JAL DC Masterの分散を人為的に小さくすることもできそうな...
*自動化 [#k070fe2d]
**カード明細取得自動化 [#v51103ac]
自動化しないと誤記する。また、自動化し、巡回精度を保たな...
速報はCSVでダウンロードできないカードが意外とある。そうい...
***Amex自動化 [#amex]
#pre{{
const puppeteer = require('puppeteer');
const fs = require('fs');
(async() => {
const browser = await puppeteer.launch({
//headless: false,
args: [
'--no-sandbox',
]
});
const page = await browser.newPage();
await page.setViewport({width: 1024, height: 768});
await page.goto('https://global.americanexpress.com/myca...
await page.waitForSelector('input#lilo_userName', {waitU...
await page.focus("input#lilo_userName");
await page.type("input#lilo_userName", 'your ID');
await page.focus("input#lilo_password");
await page.type("input#lilo_password", 'your passwd');
await page.click('#lilo_formSubmit');
await page.waitForNavigation({waitUntil: 'load'});
await page.waitForSelector('#balance-summary-table', {wa...
// カードによって違うので要修正
await page.click('#balance-summary-table tr.recent-debit...
await page.waitForNavigation({waitUntil: 'load'});
await page.waitForSelector('#transaction-table', {waitUn...
//tr要素のidを取得。transaction id
let tid = await page.$$eval('#transaction-table tr[id]',...
return list.map(date => date.id);
});
let lines = [];
// transaction id毎に
// 各決済のtrは2段からなる。
// クリックによる展開前と展開後の詳細
// idが違う。
for (let i in tid) {
await page.click("#transaction-table tr#" + tid[i] + " ...
await page.waitForSelector("#transaction-table tr#" + t...
// 詳細欄のtransaction id取得
// 例: #etd-details-content-AT181580...
let dom = '#transaction-table tr#' + tid[i] + ' + tr[id...
let tidd = await page.$eval(dom, e => e.id);
// dateと請求額は1段目のtr
dom = 'tr#' + tid[i] + ' td.date span.ng-binding';
let date = await page.$eval(dom, e => e.innerText);
//#trans-... > td.date > div > span.ng-binding
let shop = await page.$eval("tr#" + tidd + " p.header.n...
//#etd-details-content-AT1815... > div > div.etdContent...
let local = await page.$eval("tr#" + tidd + " p.amount ...
//#etd-details-content-AT1815... > div > div.etdDetails...
let curr = await page.$eval("tr#" + tidd + " p.amount >...
//#etd-details-content-AT181... > div > div.etdDetails....
dom = 'tr#' + tid[i] + ' td.amount > div > span';
let jpy = await page.$eval(dom, e => e.innerText);
//#trans-AT18158... > td.amount > div > span
let rate_date = await page.$eval("tr#" + tidd + " div.e...
//#etd-details-content-AT18156... > div > div.etdConten...
let rate = await page.$eval("tr#" + tidd + " p.amount.n...
// #etd-details-content-AT181... > div > div.etdDetails...
let line = [date,shop,local,curr,jpy,rate_date,rate].jo...
console.log(line);
lines.push(line);
}
fs.writeFile('amex.csv', lines.join("\n"),(err) => {
if (err) throw err;
});
//ログアウト
await page.click('#jp_utility_login');
await browser.close();
})();
}}
**TTM [#r7e6fc06]
TTMの入手先:
-[[外国為替情報 : 三井住友銀行:http://www.smbc.co.jp/mar...
-[[三菱UFJリサーチ&コンサルティング | 外国為替相場 | 1990...
-TTM(仲値)というわけではないが、[[Pacific Exchange Rate...
自動化しないと、誤記する。
-三井住友銀行(なお、私は同行からbanされた。403 Forbidden...
#pre{{
#!/usr/bin/perl
use utf8;
use strict;
use warnings;
my $url = 'http://www.smbc.co.jp/market/backnumber/fixing...
# 今月
my $thisMonth = '//*[@id="tabbox1"]/div//li/a/@href';
# 前月
my $lastMonth = '//*[@id="tabbox2"]/div//li/a/@href';
use URI;
my $u = URI->new($url);
use HTML::TreeBuilder::XPath;
my $tree = HTML::TreeBuilder->new_from_url($url);
my @href = $tree->findvalues($lastMonth);
push(@href, $tree->findvalues($thisMonth));
use LWP::UserAgent ();
my $ua = LWP::UserAgent->new;
for my $pdfpath (@href) {
my $uri = sprintf qq(http://%s%s),$u->host,$pdfpath;
my $response = $ua->get($uri);
if ($response->is_success) {
my $pdfbody = $response->decoded_content;
my $tmpfile = "/tmp/msbcrate.$$";
open(my $fh, '>', "$tmpfile") or die "$tmpfile:$!";
print $fh $pdfbody;
close $fh;
open($fh, "pdftotext -layout $tmpfile - |") or die "pip...
my @content = <$fh>;
close $fh;
unlink $tmpfile;
if (my ($date, %rate) = &msbcrate_pdf(@content)) {
my $ttm = ($rate{'usd'}->{'tts'} + $rate{'usd'}->{'ttb...
printf qq(%s\t%.2f\n),$date,$ttm;
#my $insert =
#"INSERT IGNORE INTO usd VALUES ('$date','SM','$ttm')";
#$db->do($insert) or die $db->errstr;
} else {
print STDERR "failed in $pdfpath\n";
}
}
}
#$db->disconnect;
exit;
sub msbcrate_pdf {
my @lines = @_;
my $date = '';
my %rate = ();
my %month = qw(
Jan 1
Feb 2
Mar 3
Apr 4
May 5
Jun 6
Jul 7
Aug 8
Sept 9
Sep 9
Oct 10
Nov 11
Dec 12
);
for (@lines) {
# Date: May.25, 2018
if (my @temp = (/Date:\s+([a-zA-Z]+)\D+(\d+)\D+(\d+)/)) {
my $month = $month{$temp[0]} // 'fail';
$date = "$temp[2]/$month/$temp[1]";
next;
}
if (/U\.S\.A\.\s+USD\s+1\s+([\d\.]+)\s+([\d\.]+)\s+([\d...
$rate{'usd'}->{'tts'} = $1;
$rate{'usd'}->{'ttb'} = $3;
next;
}
}
if ($date eq '' || !defined $rate{'usd'}->{'tts'}) {
return;
} else {
return $date, %rate;
}
}
}}
-三菱UFJリサーチ&コンサルティング
#pre{{
#!/usr/bin/perl
use utf8;
use strict;
use warnings;
use Time::Piece;
use Time::Seconds;
my $t = localtime;
my $days = 20; # 過去○日分取得する。
use LWP::UserAgent ();
use HTML::TreeBuilder::XPath;
my $baseurl = 'http://www.murc-kawasesouba.jp/fx/past/ind...
# http://www.murc-kawasesouba.jp/fx/past/index.php?id=180...
for (1..$days) {
my $date = sprintf qq(%02d%02d%02d),$t->yy,$t->mon,$t->m...
my $url = $baseurl . '?id=' . $date;
my $ua = LWP::UserAgent->new;
# 営業日以外は「本日の為替相場」に転送される。
# http://www.murc-kawasesouba.jp/fx/index.php
$ua->max_redirect(0);
my $response = $ua->get($url);
my $root = HTML::TreeBuilder->new();
if ($response->is_success) {
$root->parse_content($response->decoded_content);
my $tts = $root->findvalue('//*[@id="main"]/table[1]/tr...
my $ttb = $root->findvalue('//*[@id="main"]/table[1]/tr...
my $ttm = ($tts+$ttb)/2;
my $date = $t->ymd("/");
printf qq(%s\t%.2f\n),$date,$ttm;
#my $insert =
#"INSERT IGNORE INTO usd VALUES ('$date','MU','$ttm')";
#$db->do($insert) or die $db->errstr;
}
$t -= ONE_DAY;
}
#$db->disconnect;
exit;
}}
*Amexの意外な競争力 [#a7ef8fc5]
Amexの決済インフラは他社に比べ圧倒的に強いかもしれない。A...
Amexの他では、三井住友カード(VISA、Master)が結構健闘し...
こうしたことも、個人で調べるのは時間も金もかかるが、マネ...
*このページのアーカイブ [#d66bc322]
-[[このページの2018年6月12日6時時点のPDF:http://over.6pb....
-[[このページの2018年 5月12日時点のPDF:http://over.6pb.in...
--ちなみに、ハッシュ値はWindows標準のコマンドで求めること...
ページ名: