MQL5でPOSTする方法

string Post (const string text) {
   uchar char_array[];
   int copied = StringToCharArray(text, char_array);
   string headers;
   char result[];
   int res = WebRequest("POST", "送信先URL", NULL, NULL, 10000, char_array, ArraySize(char_array), result, headers);
   return CharArrayToString(result);
}

こんな感じ。引数はkey=valueの形でもvalueのみでもOKです。使う時はこんな感じ。

//戻り値見たいならこれ
string res = Post("内容");

//戻り値見なくていいならこれ
Post("内容");

私の場合サーバー側はPHPで処理しておりまして、valueのみを送信した時はこんな感じで受け取っています。

//送信データの末尾に特殊文字がついてくるのでtrim()しています
$data = trim(file_get_contents('php://input'));

個人的なPOSTの目的は、口座の状況を見るのにVPSを開くのがダルいので、MT5の情報をWebで確認するために残高や評価額をPOSTしてWebで推移を見れるようにしています。

FIREシミュレーションiOS版をリリースしました

iOSアプリの「FIREシミュレーション」をリリースしました。FIREシミュレーションは資産・収入・支出を用いてFIREが可能かどうかをシミュレーションすることができるアプリです。収入や支出は項目ごとに期間を設定することができるので、ライフステージごとに金額を変更して、より正確なシミュレーションすることが可能です。

FIREシミュレーション

CSSでいい感じの縁取りをする方法

まずはこちらのCSSを使用した縁取りの例をいくつか紹介します。

こんな感じになります。
あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。
色を変えることも可能です。
ロールオーバーも可能。

CSSはこんな感じです。

.fuchi-text {
	--fuchi-width: 2px;
	--fuchi-color: #000;
	color: #fff;
	text-shadow:
	calc(cos(2 * pi / 32 * 0) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 0) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 0) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 0) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 0) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 0) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 1) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 1) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 1) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 1) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 1) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 1) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 2) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 2) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 2) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 2) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 2) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 2) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 3) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 3) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 3) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 3) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 3) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 3) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 4) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 4) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 4) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 4) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 4) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 4) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 5) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 5) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 5) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 5) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 5) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 5) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 6) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 6) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 6) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 6) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 6) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 6) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 7) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 7) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 7) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 7) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 7) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 7) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 8) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 8) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 8) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 8) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 8) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 8) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 9) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 9) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 9) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 9) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 9) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 9) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 10) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 10) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 10) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 10) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 10) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 10) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 11) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 11) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 11) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 11) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 11) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 11) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 12) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 12) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 12) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 12) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 12) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 12) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 13) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 13) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 13) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 13) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 13) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 13) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 14) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 14) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 14) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 14) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 14) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 14) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 15) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 15) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 15) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 15) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 15) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 15) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 16) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 16) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 16) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 16) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 16) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 16) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 17) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 17) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 17) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 17) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 17) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 17) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 18) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 18) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 18) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 18) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 18) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 18) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 19) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 19) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 19) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 19) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 19) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 19) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 20) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 20) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 20) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 20) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 20) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 20) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 21) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 21) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 21) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 21) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 21) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 21) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 22) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 22) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 22) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 22) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 22) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 22) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 23) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 23) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 23) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 23) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 23) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 23) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 24) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 24) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 24) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 24) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 24) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 24) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 25) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 25) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 25) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 25) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 25) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 25) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 26) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 26) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 26) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 26) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 26) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 26) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 27) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 27) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 27) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 27) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 27) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 27) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 28) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 28) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 28) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 28) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 28) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 28) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 29) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 29) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 29) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 29) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 29) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 29) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 30) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 30) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 30) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 30) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 30) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 30) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 31) * var(--fuchi-width)) calc(sin(2 * pi / 32 * 31) * var(--fuchi-width)) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 31) * var(--fuchi-width) * 1 / 3) calc(sin(2 * pi / 32 * 31) * var(--fuchi-width) * 1 / 3) 0 var(--fuchi-color),
	calc(cos(2 * pi / 32 * 31) * var(--fuchi-width) * 2 / 3) calc(sin(2 * pi / 32 * 31) * var(--fuchi-width) * 2 / 3) 0 var(--fuchi-color);
}

HTMLはこれだけでOK。こうすると・・・。

<span class="fuchi-text">サンプルテキスト</span>

こうなります。↓

サンプルテキスト

縁の色や幅も変更可能です。例えばこうすると・・・。

<span class="fuchi-text" style="--fuchi-color:#f00;--fuchi-width:4px;">サンプルテキスト</span>

こうなります。↓

サンプルテキスト

簡単に何をやっているのか説明すると、text-shadowをぐるりと1周させているだけです。そして縁が太い場合にスカスカになることがあるので、念の為半径を3段階に分けてぐるりとさせています。

ある程度の太さの縁には対応できると思いますが、極端に太い縁や大きい文字の場合はちょっとおかしな表示になるかもしれません。

縁がおかしくなった例

ほどほどでご利用ください。