・・・・究極のエンジョイってのは、自分の責任でリスクを冒すことだと。・・・・・・これで成功した時にこんなに楽しいことはないんですよ。byカンブリア宮殿で岡田武史が言い放った22の名言より 昨日、私も『カンブリア宮殿』を見て感銘を受けた。 私の人生の中で数人『できる奴!』と認めた人がいる。 その条件が、『~だから、そんなことすることないよ!』と言える人だ! KD(カン!と度胸)からくる『~だから』ではなく、信念を持った理由付けからなるルールを破る行動に心が動かされた。『究極のエンジョイ!』は、人の心も動かす力を持っていると感じた。
ブログの内容とはかけ離れた内容はここまでとし、いつもの内容に移ります。
本日下記の内容のメールが私に届いた。 ///////////////////////////////////////////////////////////////////////// いつも楽しく読ませていただいてます 以前からmizutoriを研究させてもらってるのですが、急激な動きになると負けこみます。これを回避する工夫はありますか? あと、せっかく利益が出たのに結局負けるケースもあります。 たとえばプラス10ピプス毎にSLを変更したりできますか? ///////////////////////////////////////////////////////////////////////// この内容について考えてみたいと思います。
Q1:mizutori(逆張り系EA)は、急激な動きになると負け込みます。これを回避する工夫はあるか? A1:いろいろ考えられると思いますが、まず私が考える間違った考え方を説明します。 ①Stoplossを大きくとる。 ②敗戦処理(損切)コードを記載しない。 ③マーチンゲールを組み込む。 ④有益なトレードも削減させる、急激な動きに対応したフィルターをかける。 私が考える有益な考え方だと思われる事項 ①範囲で考える。(大きな損益~大きな損益までを一つの範囲(まとまり)とし利益を上げることを考慮する。 ②注文時条件よりも決済条件(コード)を強化する。 ③通貨ペア若しくは別EAの(逆)相関を利用する。 ④lot数を可変化する。(例:大きな負けの後は、比較的安定した利益が望める場合は、そこにlot(資金)を集中させる。) ⑤外的要因(指標発表など)による区分をつける。 ect
Q2:たとえばプラス10ピプス毎にSLを変更したりできますか? MQL4には、OrderModify。(注文内容の変更)関数があります。 一度調べてみてください。
【まとめ】大きな損益を回避するのではなく、大きな損益を小さな損益に若しくは、カバーする方法を考えたほうが有益だと思います。
2010/10/16
2010/10/09
この道を行けばどうなるものか?
ATC2010が開始されて一週間が経ちました。 ご承知の方もいらっしゃると思いますが、私が提出したEAがエラーコードを吐き続けています。今回は、この原因について考えてみました。
【基本情報】 まずエラーの原因の検証の前に今回のEAの簡単な説明をします。 ①EA稼働チャート :USDJPY 5分足 ②対象通貨ペア :USDJPY (シングルシンボル) ③特徴 逆張りナンピン(リミット3回※順張り含む)と順張り手法を複合したEA です。 また、MT4のトレード手法をそのままMT5にさせようと試みました。 ④コードの特徴 MT5は、1シンボル(通貨ペア)1トレード(注文)を原則をしています。そのため、ナンピンしたトレードは、丸められて1トレードと認証され、逆ポジションは、相殺される仕様です。 そこで、今回の試みとして、ナンピンしたトレードの情報をグローバル領域に保存し、その情報をもとにトレードするようなEAを作りました。表面上は、SLもTPもありませんが実は、グローバル領域に存在しています。 ⑤リカバリーコード グローバル領域に保管した情報に誤りがあった時に、修正するコードを記載してあります。 A:ポジションがないにも関わらず情報が残ってしまったら情報を削除するコードがあります。 B:トレードと情報のtypeが異なったときに変更するコードがあります。 ※簡単に言ってしまえば2種類のリカバリーコードしかありません。
【現在までに分かっているエラーコード(不適切内容)】 ①ポジションがあるのに情報がない場合のリカバリーコードがない。 ②情報がポジションと不一致の場合のリカバリーコードがない。 ③上記リカバリーコードBが発令された時に、SELLポジションだった場合、即時決済されてしまう。
【現在までの取引履歴(わかっている範囲で)】(時間はサーバータイム) 2010/10/01 12:19 開始 2010/10/04 03:46:22 SELL注文(price:83.700 lot:2.0) 2010/10/04 03:46:23 failed instant buy 0.00 USDJPY at 83.※※※ [Invalid volume](ここから次回履歴までエラーコードを出し続ける。) 2010/10/05 01:頃 scanning network for access points 2010/10/05 01:頃 scanning network finished 2010/10/05 06:38:32 SELL注文(price:83.809 lot:1.5) 2010/10/05 06:38:34 failed instant buy 0.00 USDJPY at 83.※※※ [Invalid volume](ここから終了までエラーを吐き続ける) 取引時間終了 2010/10/9~10にかけてサバーメンテナンス
【エラーの原因】 履歴の検証の結果、以下のストーリーの可能性が一番高いと考えます。 ①SELL注文時に、情報取得エラーが発生し、typeは取得できたがstoplossとlotの情報取得に失敗した。(ほかの情報取得は不明) ②SELLポジションでstoploss=0ということでSTOPLOSSコードが作動した。 if((last_tick.bid >= fastOder.sl)&&(fastOder.type==SIGNAL_SELL)) stoplevel=true;(fastOder.sl:stoploss fastOder.type:type) ③lot=0(情報取得に失敗)のためSTOPLOSSオーダー(決済)にてエラーが発生。 ④scanning networkにて、グローバル変数(クラス)が初期化。(もしくは、神の手があったかもしれませんが・・・) ⑤①からの繰り返し。
【テスターの結果は?】 同期間でテストした結果、エラーは発生しませんでした。 とりあえずこんな感じです。
来週からデモで稼働させる予定です。
【今後の展望】
こんな感じです・・・・・。
【蛇足】 ATC2010の私のフォームにこんなメールが届きました。 +-----------------------------------------+ こんにちはロシアから!キャッチ私たちを。 +-----------------------------------------+ ロシアの人らしく、たぶんロシア語を自動翻訳して頂いたようです。 ただ、意味が理解できません。わかる方いらっしゃらないでしょうか?
あと、limoさんへ応援ありがとうございます。
【基本情報】 まずエラーの原因の検証の前に今回のEAの簡単な説明をします。 ①EA稼働チャート :USDJPY 5分足 ②対象通貨ペア :USDJPY (シングルシンボル) ③特徴 逆張りナンピン(リミット3回※順張り含む)と順張り手法を複合したEA です。 また、MT4のトレード手法をそのままMT5にさせようと試みました。 ④コードの特徴 MT5は、1シンボル(通貨ペア)1トレード(注文)を原則をしています。そのため、ナンピンしたトレードは、丸められて1トレードと認証され、逆ポジションは、相殺される仕様です。 そこで、今回の試みとして、ナンピンしたトレードの情報をグローバル領域に保存し、その情報をもとにトレードするようなEAを作りました。表面上は、SLもTPもありませんが実は、グローバル領域に存在しています。 ⑤リカバリーコード グローバル領域に保管した情報に誤りがあった時に、修正するコードを記載してあります。 A:ポジションがないにも関わらず情報が残ってしまったら情報を削除するコードがあります。 B:トレードと情報のtypeが異なったときに変更するコードがあります。 ※簡単に言ってしまえば2種類のリカバリーコードしかありません。
【現在までに分かっているエラーコード(不適切内容)】 ①ポジションがあるのに情報がない場合のリカバリーコードがない。 ②情報がポジションと不一致の場合のリカバリーコードがない。 ③上記リカバリーコードBが発令された時に、SELLポジションだった場合、即時決済されてしまう。
【現在までの取引履歴(わかっている範囲で)】(時間はサーバータイム) 2010/10/01 12:19 開始 2010/10/04 03:46:22 SELL注文(price:83.700 lot:2.0) 2010/10/04 03:46:23 failed instant buy 0.00 USDJPY at 83.※※※ [Invalid volume](ここから次回履歴までエラーコードを出し続ける。) 2010/10/05 01:頃 scanning network for access points 2010/10/05 01:頃 scanning network finished 2010/10/05 06:38:32 SELL注文(price:83.809 lot:1.5) 2010/10/05 06:38:34 failed instant buy 0.00 USDJPY at 83.※※※ [Invalid volume](ここから終了までエラーを吐き続ける) 取引時間終了 2010/10/9~10にかけてサバーメンテナンス
【エラーの原因】 履歴の検証の結果、以下のストーリーの可能性が一番高いと考えます。 ①SELL注文時に、情報取得エラーが発生し、typeは取得できたがstoplossとlotの情報取得に失敗した。(ほかの情報取得は不明) ②SELLポジションでstoploss=0ということでSTOPLOSSコードが作動した。 if((last_tick.bid >= fastOder.sl)&&(fastOder.type==SIGNAL_SELL)) stoplevel=true;(fastOder.sl:stoploss fastOder.type:type) ③lot=0(情報取得に失敗)のためSTOPLOSSオーダー(決済)にてエラーが発生。 ④scanning networkにて、グローバル変数(クラス)が初期化。(もしくは、神の手があったかもしれませんが・・・) ⑤①からの繰り返し。
【テスターの結果は?】 同期間でテストした結果、エラーは発生しませんでした。 とりあえずこんな感じです。
【今後の展望】
こんな感じです・・・・・。
【蛇足】 ATC2010の私のフォームにこんなメールが届きました。 +-----------------------------------------+ こんにちはロシアから!キャッチ私たちを。 +-----------------------------------------+ ロシアの人らしく、たぶんロシア語を自動翻訳して頂いたようです。 ただ、意味が理解できません。わかる方いらっしゃらないでしょうか?
あと、limoさんへ応援ありがとうございます。
登録:
投稿
(
Atom
)