[rank:a]の検索結果
まずカタカナより比較的プログラミングしやすそうな英数字の全角半角変換から作成します。
半角から全角への変換の処理手順は、
・半角英数字の場合は、同じ全角英数字に置き換えて戻り値として返す文字列に連結
・それ以外の文字の場合はそのまま戻り値として返す文字列に連結
また、全角から半角への変換の処理手順は、
・全角英数字の場合は、同じ半角英数字に置き換えて戻り値として返す文字列に連結
・それ以外の文字の場合はそのまま戻り値として返す文字列に連結
となります。
文字コードはそれぞれ以下の通りですので、これらに該当する文字があったら置き換えを行います。
半角数字:0 - 9
30 - 39
全角数字:0 - 9
EFBC90 - EFBC99
2バイト目まではEFBC
半角アルファベット大文字:A - Z
41 - 5A
全角アルファベット大文字:A - Z
EFBCA1 - EFBCBA
2バイト目まではEFBC
半角アルファベット小文字:a - z
61 - 7A
全角アルファベット小文字:a - z
EFBD80 - EFBD9A
2バイト目まではEFBD
以下が英数字の半角から全角へ、全角から半角への変換を行うコード(プログラム)です。
#!/usr/bin/perl
use strict;
use warnings;
use Encode;
my $hanAlnum = "ABCDEい12345あabcde";
my $zenAlnum = "ABCDEい12345あabcdeカ";
my $zenstr = han2zen_alnum($hanAlnum);
Encode::from_to($hanAlnum, 'utf8', 'cp932');
Encode::from_to($zenstr, 'utf8', 'cp932');
print "$hanAlnum ---> $zenstr\n";
my $hanstr = zen2han_alnum($zenAlnum);
Encode::from_to($zenAlnum, 'utf8', 'cp932');
Encode::from_to($hanstr, 'utf8', 'cp932');
print "$zenAlnum ---> $hanstr\n";
# UTF-8でエンコードされた半角英数字を全角英数字に変換する
sub han2zen_alnum {
my ($src) = @_;
my $srclen = length($src);
my $pos = 0;
my $dest = '';
while ($pos < $srclen) {
my $code = ord substr($src, $pos, 1); # 先頭のASCIIコード値を取得
my $bytelen = _bytesize($code);
my $lastbyte = 0;
my $bytechar = '';
my $flagged_utf8 = '';
if ($code >= 0x30 && $code <= 0x39) { # 数字
$lastbyte = 0x90 + ($code - 0x30);
$bytechar = pack("C3", 0xEF, 0xBC, $lastbyte);
$dest .= $bytechar;
}
elsif ($code >= 0x41 && $code <= 0x5A) { # 大文字英字
$lastbyte = 0xA1 + ($code - 0x41);
$bytechar = pack("C3", 0xEF, 0xBC, $lastbyte);
$dest .= $bytechar;
}
elsif ($code >= 0x61 && $code <= 0x7A) { # 小文字英字
$lastbyte = 0x81 + ($code - 0x61);
$bytechar = pack("C3", 0xEF, 0xBD, $lastbyte);
$dest .= $bytechar;
}
else {
$dest .= substr($src, $pos, $bytelen);
}
$pos += $bytelen;
}
return $dest;
}
# UTF-8でエンコードされた全角英数字を半角英数字に変換する
sub zen2han_alnum {
my ($src) = @_;
my $srclen = length($src);
my $pos = 0;
my $dest = '';
while ($pos < $srclen) {
my $code = ord substr($src, $pos, 1); # 先頭のASCIIコード値を取得
my $bytelen = _bytesize($code);
my $hit = 0;
if ($code == 0xEF) { # 全角英数の場合は1バイト目がEF
my $code2 = ord substr($src, $pos + 1, 1); # 2バイト目
my $code3 = ord substr($src, $pos + 2, 1); # 3バイト目
if ($code2 == 0xBC) {
if ($code3 >= 0x90 && $code3 <= 0x99) {
$dest .= chr(0x30 + ($code3 - 0x90));
$hit = 1;
}
elsif ($code3 >= 0xA1 && $code3 <= 0xBA) {
$dest .= chr(0x41 + ($code3 - 0xA1));
$hit = 1;
}
}
elsif ($code2 == 0xBD) {
if ($code3 >= 0x80 && $code3 <= 0x9A) {
$dest .= chr(0x61 + ($code3 - 0x80));
$hit = 1;
}
}
}
if(!$hit) {
$dest .= substr($src, $pos, $bytelen);
}
$pos += $bytelen;
}
return $dest;
}
# 文字のバイト長を求める
sub _bytesize {
my $code = shift;
my $size = 1;
if (0x80 & $code) { # 1バイト文字以外
$code <<= 1;
for my $i (2 .. 8) {
$size++;
$code <<= 1;
last if (!(0x80 & $code));
}
}
return $size;
}
ch225 (ch225.com) とは
ch225 (ch225.com)は、日経平均先物を中心に世界の株価指数(ダウ平均、上海総合、FTSE100など)や為替(ドル円、ユーロ円)、商品先物(原油、金)のリアルタイムチャートや市場関連ニュースを一覧で表示しているサイト。ch225とは日経平均株価(日経225、Nikkei 225)という意味らしい。PC、タブレット、iPad対応。スマートフォン版。
ch225で配布されているリアルタイム市況ブログパーツ
日経平均株価(日経225、Nikkei 225)とは
日経平均株価(にっけいへいきんかぶか)は、 日本経済新聞社によって算出・公表されている内外の投資家や株式市場関係者に最も知られている日本の株式市場を代表する株価指数。東証1部上場銘柄中から流動性や業種等のバランスを考慮して選ばれた225銘柄の株価の単純平均となっており、日経225(Nikkei 225)とも呼ばれる。
乱数によってランダムに決定された方向にポジションをエントリーするMT4向け無料EA(自動売買システム)「2bunno1」をバージョンアップ(Ver 2.00)しました。 前バージョンでは通貨ペアはドル円(USDJPY)を前提にしていましたが、今回のバージョンではユーロドル(EURUSD)に変更し、 エントリーは1日1回指定した時間に行うようにしました。
2bunno1の特徴
「2bunno1」はプログラムで取得した乱数が奇数か偶数かによって売買する方向を決定する、 いわゆるコイントストレードを自動的に売買を行うMT4(MetaTrader 4)向けのEA(エキスパートアドバイザ)です。 奇数の場合に買い(ロング)ポジションを、偶数の場合に売り(ショート)ポジションを建てます。
コイントストレードとは、本来は人がコインを投げて表が出たか、裏が出たかにによって、買いか売りかを決定するトレード方法ですが、 「2bunno1」で実際にコインを投げるという原始的な方法ではなく、プログラム内で自動的に決定しています。
ポジションのエントリー方向はプログラムによってランダムに決定されるため、 ファンダメンタルズやテクニカル分析を根拠にした裁量トレードでありがちな「騙し」に引っかかることなくトレードを行うことができます。
同時に建てるポジションは一つで、利益確定もしくは損切りによってポジションが決済されるまで次のポジションは建てられません。
MT4向けですので、MT5では動作しません。
バックテストの結果
「2bunno1(Ver 2.00)」をユーロドル(EURUSD)でバックテストした結果です。
期間は2018/01/01から2021/08/13、新規ポジションをエントリーする時間は15時0分に設定、決済指値(T/P)と決済逆指値は200ポイント(20pips)です。
「2bunno1(Ver 2.00)」をドル円(USDJPY)でバックテストした結果です。
期間は2018/01/01から2021/08/13、新規ポジションをエントリーする時間は16時0分に設定、決済指値(T/P)と決済逆指値は300ポイント(30pips)です。
売買の方向はポジションごとにランダムにエントリーするのでバックテストはすべて違った結果になっています。
ユーロドルでもドル円でも、純益はプラスのときもあればマイナスのときもあり、必ず利益が出るというわけでは無さそうですが、 まったく利益が出る可能性が無いということではなさそうです。
ソフトウェア使用許諾契約書
本ソフトウェアをご利用いただくためには、ソフトウェア使用許諾契約書に同意していただく必要があります。
実行ファイルのダウンロード
zip形式で圧縮されていますので、解凍してご利用ください。
インストール方法
MetaTrader 4(以下MT4)にエキスパートアドバイザ(以下EA)をインストールするには、 まず、MT4のメニュー「ファイル」から「データフォルダを開く」をクリックし、 開いたフォルダの配下にある「MQL4」-「Experts」にファイル「2bunno1.ex4」をコピーします。
MT4の「ナビゲーター」ウィンドウのエキスパートアドバイザを選択し、右クリックで表示されるメニューで「更新」を選択すると、 エキスパートアドバイザにコピーしたEAが表示されます。
次に、EAを適用させたいチャートを開き、「ナビゲーター」ウィンドウにあるEAをチャートにドラッグ&ドロップすると、 EA設定の画面がポップアップ表示されますので、パラメーター等の設定を行いOKボタンをクリックします。
チャートの右上に表示されるニコちゃんマークが、スマイルになっていれば正しくインストールされています。
パラメーター説明
Lots
ポジションのロット数を設定します。
TakeProfit
新規ポジションを建てた際に設定される決済指値(T/P)の値幅をポイント数で指定します。
StopLoss
新規ポジションを建てた際に設定される決済逆指値(S/L)の値幅をポイント数で指定します。
Slippage
新規ポジションを注文する際に注文価格と約定価格の差(スリッページ)をどの程度許容するかを設定します。許容範囲を超えた場合、注文は約定されません。
Spreads
新規ポジションを注文する際に売り価格(BID)と買い価格(ASK)の差(スプレッド)をどの程度許容するかを設定します。許容範囲を超えた場合、注文は行われません。
ServerTime
新規注文発注時刻の時間(OpenHour)、分(OpenMinute)にシステムタイムを使用するか、サーバータイムを使用するかを指定します。
false(デフォルト)の場合はシステムタイム、trueの場合はサーバータイムを使用します。
OpenHour
新規注文発注時刻の時間を設定します。
OpenMinute
新規注文発注時刻の分を設定します。例えば、OpenHourに15、OpenMinuteに0を設定している場合は15時0分に成り行きで注文が実行されます。
Monday
月曜日に新規エントリーするかどうかを指定します。true(デフォルト)の場合はエントリーし、falseの場合はエントリーしません。
Tuesday
火曜日に新規エントリーするかどうかを指定します。true(デフォルト)の場合はエントリーし、falseの場合はエントリーしません。
Wednesday
水曜日に新規エントリーするかどうかを指定します。true(デフォルト)の場合はエントリーし、falseの場合はエントリーしません。
Thursday
木曜日に新規エントリーするかどうかを指定します。true(デフォルト)の場合はエントリーし、falseの場合はエントリーしません。
Friday
金曜日に新規エントリーするかどうかを指定します。true(デフォルト)の場合はエントリーし、falseの場合はエントリーしません。
Saturday
土曜日に新規エントリーするかどうかを指定します。trueの場合はエントリーし、false(デフォルト)の場合はエントリーしません。
Sunday
日曜日に新規エントリーするかどうかを指定します。trueの場合はエントリーし、false(デフォルト)の場合はエントリーしません。
TrailPoint
トレールの値幅をポイント数で指定します。現行レートが建値から指定ポイント数×2を超えた場合に、決済逆指値が建値+(n-1)×指定ポイント数に変更されます。
TrailPointを小さくすると、相場展開によってはすぐに逆指値に達してしまい十分な利益を得られないことも考えられますので、ボラティリティの大きな通貨ペアの場合は大きめの値に設定します。
GoBack
相場がポジションに逆行した場合に決済指値(T/P)を変更するかどうかを指定します。現行レートが建値からTrailPointで指定したポイント数×2を超えて逆行した場合に決済指値が変更されます。
GoBakckがfalseの場合、および決済指値が0の場合は、決済指値の変更は行われません。
CutTime
指定時間経過後に決済処理を行うかどうかを分単位で指定します。0の場合は決済処理は行いません。決済処理を行う場合には1以上の整数値を設定します。
CutPoint
指定時間経過後に決済処理を行うかどうかの判定で、建値にこのポイント数を加算した値が現行レートを超えている場合に決済処理が行われます。
ExitTime
指定時間経過後に損益がプラスの場合に決済処理を行うかどうかを分単位で指定します。0の場合は決済処理は行いません。決済処理を行う場合には1以上の整数値を設定します。
Notify
ポジションのオープンとクローズの際に通知を行うか指定します。0の場合は通知は行われません。1の場合(デフォルト)はアラート画面が表示されます。2の場合はEメールが送信されます。
MagicNumber
マジックナンバーです。他のEAと区別するためにユニークな数値を設定してください。マジックナンバーを変更することで同じ通貨ペアで複数のEAを運用できます。
利用上の注意
- このEAは必ずしも利益を保証するものではありません。損失が発生する可能性もあります。
- このEAを利用して損失が発生したとしても責任は一切負いません。利用する場合は自己責任でお願いします。
アクセスランキング
今日のアクセスランキング TOP 10
今月のアクセスランキング TOP 10
- 2NN 2ちゃんねるニュース速報+ナビ (3273 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (488 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (91 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (89 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (70 PV)
- Million Dollar Ver 1.09向けの収益性を重視したゴールド(Gold、XAUUSD)ロングセットファイル (64 PV)
- 無料のMT4向けナンピンマーチン爆益(爆損)EA「Jipangu(ジパング)」 (62 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3 Ver 2.04」 #MT4 (59 PV)
- [FX]裁量ポジションを簡単に管理できるMT4向け無料の裁量補助EA「PositionKeeper」 (51 PV)
- 2chまとめサイト - 痛いニュース(ノ∀`) (46 PV)
アクセス統計
ディレクトリ
関連サイト