mt4 (MetaTrader4)使い倒シストレ

メタトレーダー、自作インジケータ、自作EAで完全自動売買。使えるものは何でも使え。
インジケーター、EA(自動売買システム)製作のご依頼はこちらへ
Googolyen FX Factory
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


にほんブログ村 為替ブログ FX システムトレード派へ
--/--/--(--) --:--:-- | スポンサー広告 | Trackback(-) | Comment(-)
FXCM UK 口座開設方法(法人)
ちょっとこないだ、FXCM のUK (United Kingdom : 英国)
の口座を開設したので、これから開設しようと思ってる人の
参考になればと思って、開設方法を書いてみます。

両建てが禁止になった関係で
FXCM NY→UKに移ったらしい。

円口座もあって、国内送金だけで入金OKの予定(?)
ちなみに私が開設した時はまだ海外送金のみで、
地方銀行から送金したら9千円も手数料取られた!ムカッ

普通は多分4、5千円だと思う。



OK、それではHere we go
(私は法人口座を開設したので、それに則って説明しますが
個人口座も基本的には同じじゃないかと思う。むしろ簡単かな?)

まずはここへGo!

http://www.fxcm.co.uk/metatrader-apply.jsp
(noアフィリンク)

アメリカに住んでいない人は、
[NON-U.S.RESIDENT SIGN-UP PAGE]

口座の種類とかを選択
FXCM1.gif

Choose Trading Account:(円建て口座ならJPY、ドル建て口座ならUSD)
Choose Account Registration Option:(法人ならCorporate、個人口座ならIndividual)

Go→Open an Account


FXCM2.gif

会社名とか、住所とかはまぁいいとして
初めよくわからんかったのは
「Nature of Business」とかいうの。

ハローって(日本デスクに)電話で聞いてみたら、
会社のメインとなる事業内容の事らしい。

あと、Yes or Noで選択する
「Does your business structure meet the criteria of a financial institution?」
とかもよくわからんかったけどNoでいいとの事(?)

銀行情報は後でもいいし、ここで記入しておいてもいい。

Go→continue


FXCM3.gif

次は、個人の住所、国籍、性別、未婚既婚、
免許証の番号等を入れていく。

住所の後に、
「Time at Current Address」
ってのがあって、今の住所に住んでどれぐらいになる?
てことを聞いてるけど、今の住所に住んで3年未満を選択すると
その前の住所も書けって下に入力欄が出てくる。(メンドクサイ)

一番最後の、
「Would you like to add an additional contact person to this account?」
ってのは 「他にも誰かcontact person追加したい?」
ていう意味。
特に必要がなければNoでOK

Go→continue


FXCM4.gif

次は、まず
TRADING EXPERIENCE INFORMATION
でトレード経験を記入する。

株、オプション、商品、先物、etc..
全てNOでもOK

次は、FINANCIAL INFORMATION
で年収とかを記入する。

Total Annual Income:年収
Net Worth (Assets minus Liabilities):資産
Liquid Assets (Quickly Disposable):流動資産

ここには見栄を張って、最大を選択しま、、しないように(笑)

私は法人口座にしたので、ここは
CORPORATE FINANCIAL INFORMATION
となっていて、てっきり会社の売上とかを書くのかと思ってたけど、
電話で聞いたら個人の収入を書いてくださいって言われた。


あと、これ→
初め何じゃ?と思ったけど
ポンドの事らしい。
だから年収とかはポンド換算にしましょう。

Have you declared bankruptcy within the past 10 years?
10年以内に自己破産した?

Do you have or have you ever had any other account with us?
FXCMに口座をすでに持ってる、もしくは、過去に口座作ってた事ある?

1. A member of any commodity exchange?
commodity exchangeのメンバー?
(commodity exchangeって何??多分商品先物とかの取引関係のメンバーかって事かな?)

2. An employee of a regulatory agency?
調整機関に勤務してる?

Do you have a personal assets portfolio, including cash and/or other financial instruments, of at least €500,000?
少なくとも、50万ユーロ相当の、現金を含む、金融商品等の個人資産ポートフォリオある?


って感じかな。

Go→continue


ここで以下のようなメッセージが出てくる。
FXCM5.gif

内容としては、
「続けるには、ここに書いてあるProduct Noticeを読んで、同意する必要があります。
同意できなければ続けないでね~」
って感じ。

Go→Proceed(続ける)


FXCM6.gif


次は、Corporate Resolution(取締役会決議)とPersonal Guarantee(個人保証)
を記入する必要があるけど、多分これは
法人口座だけで、個人口座にはない項目だと思う。


うわ~訳すのめんどくせー
と思ったけど、FXDDに、
ほぼ同じ文章でしかも日本語訳付きのPDFがあった。

ラッキー

このページ
の「法人口座決議書」ってやつ。

これでOK

各項目で「I Accept」を選択して、

Go→continue


FXCM7.gif

さてさてあと少し

ここでは、パスワードとかを設定して
約款とかに同意する。

パスワードは
大文字、数字を含む8文字以上にしてくだされ。

後は秘密の質問&その答え、

どこでFXCMを知りましたか?みたいなのに答える

その下では、
約款等を見て、同意したら"Yes"を選択。

Yes We Can

Go→continue


とここでまた前みたいなメッセージが出る
FXCM8.gif

内容としては、
「続けるには、ここに書いてあるHIGH RISK INVESTMENT NOTICEを読んで、同意する必要があります。
同意できなければ続けないでね~」
って感じ。

問題なければ

Go→Proceed


後は、内容確認画面が出るので
確認、プリント等をして

SUBMITで完了!



後は本人書類を送ったり、
こまごました事を残すのみ。

まず、初めに行ったページ

http://www.fxcm.co.uk/metatrader-apply.jsp

ここで
STEP2をクリックしてフォームを開く
FXCM9.gif

名前、メールアドレスを記入して
"By clicking "Submit" you~"のチェックボックスにチェックして

内容をよく読み

下のSUBMITを押す。


後は免許証等のコピーを送るけど、
たぶんメールで、IDファックスカバーシートが添付して送られてきているはず。

これを使ってもいいけど、
私はめんどくさかったから、スキャンした画像ファイルを
メールに添付して送りました。

法人口座開設に必要な書類としては
1.会社の登記簿
2.会社住所証明書(会社名義のもの)
3.会社役員のID
4.会社役員の住所証明書*3

*2.4 住民票または公共料金請求書、銀行口座ステイトメント、携帯電話の請求書(6ヶ月以内の発行日付があるもの)

*3 運転免許証、パスポート、保険証の内一通 (有効期限内のもの)


個人口座の場合、上の3、4にあたる
・免許証等のID
・住所証明書

の2つで良い。


受理されれば、まず
仮IDが送られてくるので、そのIDを記載して入金して
その後本IDとパスワードが送られてくる。


以上!


お疲れ様~



追伸

最近聞いた話で、
FXCM UKではオーダーを出す時に、ストップ、テイクプロフィットを指定できない、
というよりも指定していたらオーダーが通らないとか。

なにぃぃ!?


にほんブログ村 為替ブログ FX システムトレード派へ
Order関数使ってますか?
EAやScriptを自作される方は、Order関数群を使っておられるはずです。
for文内でポジションのクローズ処理を書くのが、一般的ではないでしょうか。

以下の2コードを見てください。


コードA

int start()
{
int i, magic;
magic = 111;
for (i = 0; i < OrdersTotal() - 1; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false)
continue;
if (OrderSymbol() != Symbol() || OrderMagicNumber() != magic)
continue;

if (OrderType() == OP_BUY)
OrderClose(OrderTicket(), OrderLots(), Bid, 3);
else if (OrderType() == OP_SELL)
OrderClose(OrderTicket(), OrderLots(), Ask, 3);
}
}


コードB

int start()
{
int i, magic;
magic = 111;
for (i = OrdersTotal() - 1; i >= 0; i--) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false)
continue;
if (OrderSymbol() != Symbol() || OrderMagicNumber() != magic)
continue;

if (OrderType() == OP_BUY)
OrderClose(OrderTicket(), OrderLots(), Bid, 3);
else if (OrderType() == OP_SELL)
OrderClose(OrderTicket(), OrderLots(), Ask, 3);
}
}

2つのコードではfor (...)部分が違うだけです。
Aではiの値が1ずつ増加(インクリメント)しています。
Bではiの値が1ずつ減少(デクリメント)しています。

このコードは、
『複数ポジションを持っていた場合に、全てのポジションをクローズする』
という処理を行っているように見えます。

しかし、

実はコードAでは全てのポジションをクローズすることはできません


iがインクリメントしているか、デクリメントしているか
たったこれだけの違いで現われてくる問題なんです。




具体的に解説します。
今、3つのポジションを持っていると仮定しましょう。
3つのポジションにおける情報は以下の通りとします。





呼び名ポジション番号(iの値によって選択)チケット番号タイプ
ポジションa0100BUY
ポジションb1101SELL
ポジションc2102BUY



○コードB
まずi = 2(OrdersTotal() - 1)によってポジションcが選択され、ポジションcが決済されました。
決済された後のポジションの状態は以下になります。




呼び名ポジション番号(iの値によって選択)チケット番号タイプ
ポジションa0100BUY
ポジションb1101SELL

その後iはデクリメントされi = 1となります。

i = 1によってポジションbが選択され、…以下略


と、i = -1になるまで以上の操作が繰り返され、めでたく全クローズが完了します。


○続いてA
i = 0によってポジションaが選択され、ポジションaが決済されました。
決済された後のポジションの状態は以下になります。




呼び名ポジション番号(iの値によって選択)チケット番号タイプ
ポジションb0101SELL
ポジションc1102BUY

その後iはインクリメントされi = 1となります。

i = 1によってポジションbが…あれれ?
i = 1によって選択されるのはポジションcですね。
これでは最終的にポジションbが残ってしまうことになりますね。


ポジションが決済される度に、ポジション番号は再割り振りされるみたいで、
その影響でコードAでは全クローズが完了しないのです。





クローズ処理をしないのであれば、コードAでも問題ありませんが、
クローズ処理をする、しないに関わらず、コードBのように書いた方がいいと思います。




にほんブログ村 為替ブログ FX システムトレード派へ
参照渡しに関するご質問
参照渡しは、とても便利かも!記事内で
記載したコードについてご質問がありましたので、
今回の記事をもって回答という形にさせていただきます。

【ご質問内容】
例えば(1)void func(int &arg0){処理}
と(2)int func(int arg0){処理~return(arg0)}
この2つ結果は同じと思うのですが、どう使い分ければよいのでしょうか?


int func1(int arg0) {
arg0++;
return (arg0);
}

void func2(int &arg0) {
arg0++;
}

int start()
{
int hoge = 1;
int hogehoge = 1;

hoge = func1(hoge);

func2(hogehoge);

Comment("hoge = ", hoge, "\n",
"hogehoge = ", hogehoge);

//結果
//hoge = 2
//hogehoge = 2
}


結果を見て分かるように、使い方は異なるにしろ、二つの関数(func1とfunc2)は同じ動作をします。
違う点は

  • 変更した結果を返しているか
  • 参照渡しをして引数の値自体を変更しているか

の違いだけです。

今回のご質問は『返り値を返す関数と、参照渡しを使った関数の使い分け』ということでしたので
そこに主眼を置いてご説明したいと思います。
つまり、この記事にある『便利な使い方』を除いた場合の、参照渡しの有用性を主観的にご説明します(笑)。


まず結論から言うと

値を得ることが目的であれば、返り値を使い
値の変更が目的であれば、参照渡しを使う


だと思います。

例えば、『MACDとRSIの状態からシグナルを発生させる関数』を作るとしましょう。

そこで二つの関数を書いてみました。
一方はシグナルを返り値として返す関数(MacdRsiSignal関数)、
もう一方はシグナルを参照渡しによって変更させる関数(MacdRsiSignal2関数


#define SELL_SIGNAL -1
#define BUY_SIGNAL 1
#define NO_SIGNAL 0

int MacdRsiSignal(double macd, double rsi)
{
//ふにゃふにゃ処理
//

if (BUY条件)
return (BUY_SIGNAL);
else if (SELL条件)
return (SELL_SIGNAL);
else
return (NO_SIGNAL);
}

void MacdRsiSignal2(int &signal, double macd, double rsi)
{
//ふにゃふにゃ処理
//

if (BUY条件)
signal = BUY_SIGNAL;
else if (SELL条件)
signal = SELL_SIGNAL;
else
signal = NO_SIGNAL;
}

int start()
{
double macd = iMACD(/*省略*/);
double rsi = iRSI(/*省略*/);
int signal1, signal2;

// 返り値によってシグナルを得る
signal = MacdRsiSignal(macd, rsi);

// 参照渡しによってシグナルを変更する
MacdRsiSignal2(signal2, macd, rsi);
}



この二つの関数を見て
『MACDとRSIの状態からシグナルを発生させる関数』
を作ろうとした場合、どちらが感覚的にしっくり来るでしょうか?

私としましては、MacdRsiSignal関数の方がしっくりします。
それは
今回作ろうとしている関数を、参照渡しによって値を変更するという方法によって実装してしまうと、シグナル発生という目的に合わない
からです。


では次の例を。
『シグナルを逆方向に変更する関数』を作るとします。
つまりBUYシグナル→SELLシグナル、SELLシグナル→BUYシグナルに変更するような関数です。
もうこの時点で、どちらを使うか分かっちゃいますね(笑)
結果は分かっていても、コードを見てみましょう!

ConvertIntoOpposite1関数は、逆シグナルを返す関数。
ConvertIntoOpposite2関数は、参照渡しによって、逆シグナルに変更する関数。



#define SELL_SIGNAL -1
#define BUY_SIGNAL 1
#define NO_SIGNAL 0

int MacdRsiSignal(double macd, double rsi)
{
//ふにゃふにゃ処理
//

if (BUY条件)
return (BUY_SIGNAL);
else if (SELL条件)
return (SELL_SIGNAL);
else
return (NO_SIGNAL);
}

int ConvertIntoOpposite1(int signal)
{
if (signal == BUY_SIGNAL)
return (SELL_SIGNAL);
else if (signal == SELL_SIGNAL)
return (BUY_SIGNAL);
else
return (NO_SIGNAL);
}

void ConvertIntoOpposite2(int &signal)
{
if (signal == BUY_SIGNAL)
signal = SELL_SIGNAL;
else if (signal == SELL_SIGNAL)
signal = BUY_SIGNAL;
else
signal = NO_SIGNAL;
}

int start()
{
double macd = iMACD(/*省略*/);
double rsi = iRSI(/*省略*/);
int signal1, signal2;

// 返り値によってシグナルを得る
signal = MacdRsiSignal(macd, rsi);
signal2 = MacdRsiSignal(macd, rsi);

// 参照渡しによってシグナルを逆転させる
ConvertIntoOpposite2(signal);

// シグナル逆転させた結果を返す
signal2 = ConvertIntoOpposite1(signal2);
}


この例だと『値の変更が目的』ですので参照渡しを行っているConvertIntoOpposite2関数がしっくりきます。


今回示した例は私の主観的な意見です。

「この場合は参照渡しの方がしっくりする」
という考えがございましたら、ご自身のフィーリングを大切にして頂きたいと思います。

開発するのは他でもなく、あなたなのでっす。

にほんブログ村 為替ブログ FX システムトレード派へ
NR7に関して
以前製作した自作インジケーターの
NR7にバグがありました。

修正版をブリーフケースにアップしてありますので、
以前ダウンロードされた方は新しいファイルをお使い下さい。

このNR7は使っている方が多い印象がありますので、
恐らく多くの方にご迷惑をお掛けしたと思います。

大変申し訳ございません。

にほんブログ村 為替ブログ FX システムトレード派へ
以前作ったGoldenV3signalに関して
以前作った複合インジケーターの
GoldenV3signal
で、メール送信機能が欲しいというご連絡を受けましたので、
メール機能をつけて改良しました。

yahooブリーフケースの中のファイルに上書きしてありますので、
お使いくだされ!




にほんブログ村 為替ブログ FX システムトレード派へ
Designed by aykm.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。