1 :
Trader@Live! :
2011/07/17(日) 23:08:37.42 ID:wxE8f/bO
乙です プログラムは何とかなっても、結局手法の開発が難しいですな・・・
スレ違い。
pfが1を超えるのは最適化してたらさほど難しくはないようだけど、 安定とマックスドローダウンを考えるとpf2.5は必要っぽいね 月300pipsを安定して取れるぐらいじゃないと実用的にはきつそう
オプティマイズ高速化にSSDってどんくらい有効? 何時間が何時間になった、みたいな話ないかな。
ただの推測で無用レスかもしれないけど、メモリ十分な量積んでれば、 HDDにアクセスすることはあんまりないんじゃないかな? まぁ検証した方がいたら俺も知りたいので教えてください。 もしHDDに対する依存度が高いんなら、メモリ増し増しでRAMDISK仮想で作って MT4移してやったらSSDより早くなるはずだな!
アクセスランプ見てるとスタート直後に 1分足の一時ファイル作るのにガリガリやってるぐらいだよね
いや、オプティマイズ中見てると数MB/秒くらいでI/Oアクセスがあるのよ。 キャッシュした1分足を読み読みしてるんだと思うけど。 あとログも出るしでSSD化でどんくらい効果でるかなぁと。
そもそもMT4に2GB制限があったような気が・・・
13 :
yuuki :2011/07/18(月) 23:10:56.13 ID:xiM1g1WV
Kerberosって日本産のEAはSimple H1 GBPUSD EAのコピーEAですかね? ご存知の方がいらっしゃれば教えて下さい
結論から言うとSSDは全く効果がない。
ハイスペックPCが最適化の高速化に貢献するとしても、 そもそもハイスペPCを気軽に買えるほど儲かってたからEA開発なんてやってないっていう
EAを考えてる時間:コーディングしてる時間:optimization=1:2:20 CPUとマザボ買い換えようかな
>>18 intel celeron2600、メモリ1G XPです
i3かi5あたり入れてみようかな
BTはデバッグの範疇、オプチはお遊びの範疇。 根拠を持たないブルートフォースの結果が将来に対する何の保証になるんだっつ〜のw
>>16 要は最適化はほとんどがCPU依存なんだよ。SSDはI/Oがボトルネックになってるなら
効果あるけどMT4のBTや最適化は1コアのパワーがある構成に汁。
>>20 みたいなやつは出来合いのEAにおんぶに抱っこなんだろうけどBTは最低限
の試験だからな。BTで結果が悪くて本番でいいってことはありえない。有ったとしても
短期ですぐにDD食らう。
>>21 いや、そんな定性的な話じゃんくて具体的な話が欲しかったんだが。
10%とか最低5%でも改善するなら考えるかなと思ってね。
でもヒストリーファイルをまとめたら結構サイズ減ったんで自分で買って試すわ。
年間取引回数50回でPF2のEAと 年間取引回数100回でPF3のEAがあります。 同時に走らせた場合のPFはいくつですか?
簡単に使えて使用期限のないアンチデコンパイルソフトってないですか? 色々試してみましたがデコンパイルされてしまったやつとか、高すぎて導入できなかったりとか、 使い勝手は良いけど毎年更新料がかかるので配布や販売にしても年間コストを見ておかないとい けなかったりと、なかなか良い物にめぐり合えません。 使用済み ・Guardian ---> 他のEAを落とす重大なバグがあり使用不可・・・ ・EX4 Protector ---> 現行Buildに未対応・・・ ・EX4 Protection ---> いとも簡単にex4tomq4に陥落w ・MQL Defender ---> 他のEAのインストールを妨害する重大なバグがあり使用不可 & 陥落済w ・Forex CIO ---> バカみたいに高いくせに日本語版Windowsでは動かない重大なバグあり DLLでのロジック隠蔽も、ある程度の力量の人がその気になれば割られてしまいますし・・・ よいデコンパイル対策ソフトご教授ください! 配布・販売すんな以外でお願いしますw
どうせ勝てないEA販売するならデコンパされてインチキEAぶりを晒されて叩かれたほうが世のため人のためだなw 過去相場にカーブフィットさせたものを売っててそのうちドカンと死んで、またそのドカンがでないようにカーブフィットさせたのをVerUPと称して売り出す
DLLでいいでしょ
損小利大EA完成した Bars in test 80757 Ticks modelled 4151925 Modelling quality n/a Mismatched charts errors 27 Initial deposit 10000.00 Total net profit -7535.95 Gross profit 377.67 Gross loss -7913.62 Profit factor 0.05 Expected payoff -21.17 Absolute drawdown 7535.95 Maximal drawdown 7535.95 (75.36%) Relative drawdown 75.36% (7535.95) Total trades 356 Short positions (won %) 202 (1.98%) Long positions (won %) 154 (3.25%) Profit trades (% of total) 9 (2.53%) Loss trades (% of total) 347 (97.47%) Largest profit trade 276.67 ←注目 loss trade -62.00 ← Average profit trade 41.96 ← loss trade -22.81 ← Maximum consecutive wins (profit in money) 3 (14.00) consecutive losses (loss in money) 87 (-2162.00) Maximal consecutive profit (count of wins) 276.67 (1) consecutive loss (count of losses) -2162.00 (87) Average consecutive wins 2 consecutive losses 50
Total net profit -7535.95 ( ゚д゚) ( ゚д゚ )
と思ったら、エントリーを逆にしてみたら・・・
Bars in test 2583
Ticks modelled 78093
Modelling quality n/a
Mismatched charts errors 29
Initial deposit 10000.00
Total net profit 47578.08
Gross profit 210878.38
Gross loss -163300.30
Profit factor 1.29
Expected payoff 23.23
Absolute drawdown 1729.03
Maximal drawdown 7017.60 (11.96%)
Relative drawdown 24.77% (2723.96)
Total trades 2048
Short positions (won %) 1024 (78.13%)
Long positions (won %) 1024 (80.18%)
Profit trades (% of total) 1621 (79.15%)
Loss trades (% of total) 427 (20.85%)
Largest
profit trade 1099.00
loss trade -3478.90
Average
profit trade 130.09
loss trade -382.44
Maximum
consecutive wins (profit in money) 24 (5621.39)
consecutive losses (loss in money) 4 (-2609.95)
Maximal
consecutive profit (count of wins) 5621.39 (24)
consecutive loss (count of losses) -3478.90 (1)
Average
consecutive wins 5
consecutive losses 1
俺の中で新記録だ
関わった全てのものに感謝したい気分だ
>>28 ありがとう
>27 >Maximal drawdown 7535.95 (75.36%) WW
wwwwwwwwwwww
33 :
Trader@Live! :2011/07/20(水) 21:11:47.28 ID:8UJ3tZZg
損小利大、だ、と?www
34 :
Trader@Live! :2011/07/20(水) 21:28:46.00 ID:0/leQRSD
チャート間で、トレードのデータを変数かなにかでやり取りする方法ってありますか。 Aのチャートでクローズした時の勝敗を、Bのチャートへ教えたいのです。 できますでしょうか?
グローバル変数か何か使えばいいんじゃない?
SSDにしたら5%くらい遅くなってもた...orz
>>34 オーダーコメントに分かるようなの入れとけばヒストリーで分からんかい?
質問なんですが、Control pointsでだけ成績がいいことがあるという状況は
探していると過去ログでも報告があったようなのですが、
これをうまくリアルトレードに生かす方法はないでしょうか?
そもそもこの原因になっているControl pointsの補完ティックは
どういう値動きとして補完になっているのでしょうか?
>>34 クローズしたとき勝ったら1、負けたら2をフラグとして変数に入れておいて、
知りたいときはその変数を見るという方法じゃダメ?
下記のプログラムは先日作ったMACDのGCで買ってDCで決済というプログラムなのですが、 MT4のstrategy testerを使ってCHF/JPYの日足でバックテストしてみるとbuyやcloseの時間が17:13、23:51、19:08など中途半端な時間や00:00の売買が多々ありました。 日足の場合GCやDCが確定(翌日の日足が出現)するのは、どの業者でも大体4:00〜7:00(サマータイム含む)など決まった時間だと思うのですが、 この時間帯の売買が一度もないので、おそらく下記のコードだと終値が確定してから売買を行うのではなく、クロスした瞬間に売買してしまっているのだと思います。 下記のコードのどこをどのように変えれば、終値が出て翌日の日足が出現してからの売買ルールになるのか具体的に教えて頂けないでしょうか。 int start() { //変数の宣言 int cnt, CurrentPosition; int Ticket; double kakoa,gennzaia; double kakob,gennzaib; // オーダーチェック(ポジションなどのデータ) CurrentPosition=-1; for(cnt=0;cnt < OrdersTotal();cnt++){ OrderSelect(cnt,SELECT_BY_POS); if(OrderSymbol() == Symbol()) CurrentPosition=cnt; } //一つ前のMACDのメイン kakoa = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1); //一つ前のMACDのシグナル kakob = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1); //現在のMACDのメイン gennzaia = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); //現在のMACDのシグナル gennzaib = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0); // ポジションチェック ポジション無し if(CurrentPosition == -1) { //もしメインがシグナルを下から上にクロスしたら if( kakoa < kakob && gennzaia >= gennzaib) { //買いポジションを取る Ticket = OrderSend(Symbol(), OP_BUY, 1, Ask, 3, 0, 0, "Buy", 0, 0, Red); } // ポジション有り else { //ポジションの選択 OrderSelect(CurrentPosition,SELECT_BY_POS); //通貨ペアの確認 if(Symbol() == OrderSymbol()) { //もし買いポジションだったら if(OrderType()==OP_BUY) { //もしメインがシグナルを上から下にクロスしたら if( kakoa > kakob && gennzaia <= gennzaib) { //手仕舞い OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); } return(0); }
>>39 あんまりよく見たわけではないが、
ずばり「現在のMACD」って自分でコメントして使ってるじゃねえか。
41 :
Trader@Live! :2011/07/21(木) 15:32:52.25 ID:l5Ke7fTE
>>39 一つ前のMACDの〜の一番最後を2に、現在のMACDの〜の一番最後を1に変える。メイン、シグナル両方。
あんまり初心者過ぎる質問は叩かれるから、それくらいなら自分で考える(リファレンス読む)か初心者スレいきな。
42 :
39 :2011/07/21(木) 16:15:44.97 ID:XEf3hDZu
>>40-41 売買時間が全て6:00、7:00、00:00の3つに統一されました。
ただ終値が確定して次の日足が出たときに売買されるのなら、6:00と7:00の2つに統一されるはずなのですが、なぜかほとんどの売買が00:00なのでまだ何か誤りがあるようです。
初心者スレでご教示をお願いしてきます。親切に教えていただき本当にありがとうございました。
>>38 さてさて、38さんは超能力をお持ちでしょうか。
現実と乖離したレートで勝てるEAができても、ブローカーに現実と
乖離したレートを配信させる能力がなければ役に立ちません。
同じことを考える人はたまに見かけますが、その考えは忘れたほう
がいいと思いますよ。
>>43 やはり、control pointsでだけ成績がいいEAはリアルには応用が効かないのでしょうか・・・
もう少し実験してみて無理そうなら諦めます・・・
凄い事を思い付いた 究極の損大利小システムを作って逆にポジればいいんじゃね? やっぱり俺って目の付け所がシャープだわw
46 :
34 :2011/07/22(金) 02:02:01.20 ID:PV7KeOKp
>>35 ありがとう。うんシステムグローバル変数っていうのがあるようなので、
ちょっと出直してきます。
>>37 クローズしたのだからヒストリープールのデータを使う手もありましたね。
こっちの方が簡単かな?
>>38 ちょっと筋違いだったけど、ありがとう。
>>45 通過儀礼
皆そうやって大人になっていく(笑)
>>46 MT4のオマケで付いてくる移動平均のEAが負けるとロットを下げる
ロジックを実装してた希ガス。
しかしBTしてると、よく板で「MAのクロスで〜」とかレス見るけど 実際何分足でパラメータがいくつに設定するかが超重要だってのが分かるよな パラが間違ってたらいくら経験積んでも、使い方を工夫して使い込んでもどうしようもない
最近メタトレーダー入門という本を買ってEAを作り始めたんだがこれってイケてる? Bars in test 17846 Ticks modelled 208241 Modelling quality n/a Mismatched charts errors 14 Initial deposit 10000.00 Total net profit 892.00 Gross profit 8056.64 Gross loss -7164.64 Profit factor 1.12 Expected payoff 0.90 Absolute drawdown 225.97 Maximal drawdown 443.95 (3.98%) Relative drawdown 3.98% (443.95) Total trades 989 Short positions (won %) 490 (64.69%) Long positions (won %) 499 (67.74%) Profit trades (% of total) 655 (66.23%) Loss trades (% of total) 334 (33.77%) Largest profit trade 70.00 loss trade -140.00 Average profit trade 12.30 loss trade -21.45 Maximum consecutive wins (profit in money) 15 (413.39) consecutive losses (loss in money) 7 (-100.00) Maximal consecutive profit (count of wins) 413.39 (15) consecutive loss (count of losses) -229.00 (2) Average consecutive wins 3 consecutive losses 1 5分足ユーロドル5月2日から7月22日。 感覚的にイケテルのか分からん。もっと過去までやった方が良いのかなぁ?
逆張りロジックだからドル円でもやってみたがこっちも勝ってた。 一応ちょっと工夫はしているが移動平均とATRしか使ってない。 こんなんで勝てるとかおかしいw何かミスしてそうだが見つからないんだよな。
>>52 5分足とは言え2ヶ月では期間が短過ぎる。
最低でも2年はBTするべき。2年BTでもDDが少なければイケてるともいえるかもしれんが、
ロットがいくつなのかにもよる。ロットが少なければmaxDD4%はあまり意味を持たない。
ユロドルなら1profit80円。年間どれだけ稼げるか、それに対して種はいくら必要か。
この辺を考えて年利が200%以上あれば悪くないと考える。
昔から思ってたが、BT期間が長く必要って、根拠はなんなんだ?
2年間同じパラメータで勝ち続けるsetが出来上がって それでFTしたら、翌日から右肩下がりになること請け合い じゃあ直近3ヶ月でBTすればいいのかというと、それも何とも分からん BT理論を誰か教えてくれ
>>55 そこでウォークフォワード分析ですよ。
少なくともBTのロジックが汎用的に通用しないかどうかがわかる。
経験的にはやっぱりBTの売買回数が2000回超えてれば大体
実戦で通用すると思う。
本当に世の中に勝ち組っているの? じつは運でしか勝てないんじゃない?
>>58 欲張らなきゃ勝ち組には成れん。
小銭拾いみたいなEA作っても税金に食われて終わりや。
多少は運はあると思う。 でも、運用次第で聖杯になるEAはあると思う。 それにたどりついてないけど。 マーチンは小銭稼ぎだし、スキャはブローカーに目を付けられたら終わり。 トレンドフォローは博打的で、運的要素が増大すると思う。 どう思います?
トレンドが動く5分くらいまえを予測することはできるように なったけど、それがどこまで行くのかはわからんなあ。 リカクのタイミングはほんとむずかしい
>>61 トレーリングTPしてみたら?トレーリングSLとセットで
挟み撃ち作戦で俺は結構うまく逝ってる。
でも5分前ってすごくない?どうやって予測するの?
>>56 そういうソフトあったな
ratioが0.5超えればおkっていう
1度使ってみたんだが、あのratioがどう計算した数値なのか謎だった
>>61 機関投資家なら5分前に情報が入ると聞いたことあるが、個人ならエスパー
>>56 >
>>55 >そこでウォークフォワード分析ですよ。
>少なくともBTのロジックが汎用的に通用しないかどうかがわかる。
>経験的にはやっぱりBTの売買回数が2000回超えてれば大体
>実戦で通用すると思う。
ウォークフォワードがどの程度上手くいけばいいのかな。
トレンドフォローだから、2000回も売買しないんだよなあ。
バックテストとリアル運用でどのくらい成績乖離するものなん? カーブフィットとかそういう問題は抜きにして、スプの広がりと約定で必ずリアルの方が悪くなると思うが。 対策としてバックテストのスプのコストの上乗せしようと思うがどのくらいがいいかなぁ。
ってかちょっと思ったけどバックテスト期間って長ければ長いほど使い物にならなくならねぇか? 相場の環境が変わればその環境に特化したEAが良いわけで、満遍なくいい成績だと満遍なく特化していないから つまり中途半端なものしかできない。キャリトレード専用とか〜ショック専用とかトレンド専用とかレンジ専用 とか色々作って実際それを使い分けるのが運用者の腕なんかな?と思ったり。
ここ1ヶ月いろいろやってみて、とりあえず MAは1分足や5分足では心もとないということがよく分かった 30分足〜日足でパラはそれぞれとして、少なくともスイングじゃないときついというのが 分かっただけでも収穫
ところでトレンドラインやチャネルラインのEAの作り方が載ってる本とかあったら どなたか教えてください
>>59 月利5%くらいで転がしてるけれど、資産5億超えたよ。
あんたそりゃ元の資本が多かったんじゃないの?w
>>73 1000万くらいからだよ。
早くからパフォーマンスを安定化できたのが勝因だと思う。
タネ100万から始めてたとしても1000万にするには数年だし。
あ、俺欲張らなきゃ勝てるだろって書き込んだやつね。
75 :
Trader@Live! :2011/07/25(月) 11:35:04.67 ID:x2udLX/1
プログラミング出来ないけど勝てるEAって簡単に作れるんじゃないの? プログラミング出来たら
76 :
Trader@Live! :2011/07/25(月) 11:59:04.77 ID:x2udLX/1
↓の画像を見て欲しいだけど
http://www.dotup.org/uploda/www.dotup.org1827521.png Uが為替の過去n年間
全ての動きのパターンだとする。
A、B、Cはその中の一部のパターン。DはA、B、C以外のパターン。
A=(1月〜3月)。B=(3月〜6月)。C=(6〜9月)。D=(9月〜12月)と期間に分ける
一定期間だけ爆発的に勝てて取引回数の多いEAなら最適化で簡単に作れるよね?
mt5でバックテスト最適化のマルチコア対応、マルチPC対応したらしいし
見つけるのに時間は掛からないんだろ
どれだけカーブフィッティング、オーバーフィッティングしてようが良い
じゃあ、A、B、C、Dの短期間だけ完璧に取引をしてくれるEAを最適化でそれぞれ作る
それでA、B、C、D全部の条件を満たした時にだけエントリーすればUのパターン(全てのパターン)
で勝てるEAが完成するはずだろ。
もし取引回数が少なくなるなら組み合わせた条件のEAを最適化してやれば良い
これでどんなパターンでも絶対勝てる
何か問題があるの?
>>76 その分類するのが難しいじゃない。
アノマリーとかエッジとかいうやつ?
79 :
Trader@Live! :2011/07/25(月) 12:07:15.66 ID:x2udLX/1
>>77 これで勝てない理由を教えてよ
何故バックテスト限定なのか。
為替は過去起きたパターンを繰り返してる。
それで期間別に分けてパターンを解析し
あらゆるパターンで勝てるEAが作れる
現実で、どのパターンが来ても勝てるはずだろ
>>79 × 為替は過去起きたパターンを繰り返してる。
>>79 そのパターンってなんなのさ?
上の例では季節ごとに分けてるようだけど、毎年同じパターン
があるわけないでしょ。
パターンが定常的に推移するんならいいけど、ファンダメンタルズ
の変化で毎日のように急変してんのが現実。
82 :
Trader@Live! :2011/07/25(月) 12:20:29.58 ID:x2udLX/1
じゃあつまり勝てない理由は 過去に起きたパターンより、新しく発生するパターンの方が出現率が高いって事か じゃあ過去から分析しても意味ない EAで絶対勝てるEAは存在しない事になるし 過去から分析してもあまり意味がない事になる。 それとなんで新しく発生するパターンの出現率が 過去に起きたパターンの出現率より低いと分かる? 勝てないと言うならそれを説明してよ 俺はバックテストした事ないし説明できない そちらも説明できないなら、どちらも勝てるかどうか ID:twGQgq/W やID:WoGR3fpsが指摘した観点から判断する事は出来ない
83 :
Trader@Live! :2011/07/25(月) 12:22:32.82 ID:x2udLX/1
間違えた >それとなんで新しく発生するパターンの出現率が >過去に起きたパターンの出現率より低いと分かる? ? 低い ○ 高い
>>82 過去に起きたパターンは繰り返される確率が高いだけで、
それだけで絶対勝てるとはならない。
想定外のリスクは常にある。
>>82 君のいうパターンが曖昧すぎるけど、例えば8月は過去にドル円が
下落しやすいというパターンを見つけたとして、それに過剰最適化しても
来月勝てる保証なんてないってこと。
86 :
Trader@Live! :2011/07/25(月) 12:43:49.97 ID:x2udLX/1
ID:twGQgq/W さんは過去に起きたパターンが繰り返される確率が高いと認めた。
でも絶対勝てるとはならない?
何故?
過去に起きたパターンの出現の確率が新しく出現するパターンより高いなら
絶対トータルで勝てる。勝てるパターンで取引してるんだから
>>85 だから何故?
それは
新しく発生するパターンの出現率が
過去に起きたパターンの出現率より高いことを意味する。
それで何故そうなるのかさっきから聞いてるだけど
双方で分からない観点で否定してくるような揚げ足とりがしたいなら
そういうのは辞めてくれないかな?
>>86 なんだタダのアホなのか
そんなパターンの出現が否定された論文は腐るほどあっても
証明された論文なんてないからw
>>86 俺が認めたかどうかはまったく重要ではない。
自分で確かめて結論を出すべき。
それに確立が高いと書いたのになぜ絶対という言葉が出てくる?
89 :
Trader@Live! :2011/07/25(月) 12:52:53.38 ID:x2udLX/1
90 :
Trader@Live! :2011/07/25(月) 12:56:50.38 ID:x2udLX/1
>>88 あぁそういう確率は結果論であって、とかは良いですよ
勝てるパターンの出現率の方が高いなら
そのパターンで取引してるんだから勝てるでしょ。確率的には
確率から言ってだから絶対というのは撤回しますが。
>>88 わかった
その確実に勝てるEAを作ってやるから
パターンの定義と100万円用意してくれ
86さんの理論に自信があるなら100万円ぐらい屁でもないでしょ?
>>90 なんでそんなに喧嘩腰なのよ。
俺はID:WoGR3fps さんとは意見が違うからパターンの出現は否定しないよ。
パターンを否定する論文もあれば肯定する論文もある。
ただ、時間の経過と共に過去のパターンは通用しなくなる。
これはマーケットの内包している構造(金の流れ)が変化するから。
リーマン・ショックやどこかの国のデフォルトとか想定外のファンダメンタルの変化に
よって一夜にして激変することもあるわけ。
まあ、持論に自信があるならリアルマネーでやってみればいいじゃない。
> じゃあ、A、B、C、Dの短期間だけ完璧に取引をしてくれるEAを最適化でそれぞれ作る > それでA、B、C、D全部の条件を満たした時にだけエントリーすればUのパターン(全てのパターン) > で勝てるEAが完成するはずだろ。 そもそもここが全く意味がわからん ABCD全部の条件ってなに?
96 :
Trader@Live! :2011/07/25(月) 13:16:57.83 ID:x2udLX/1
>>91 100万は用意できない
それと確実にっていうのは撤回しただろ。確率、つまり結果論だから
97 :
Trader@Live! :2011/07/25(月) 13:27:02.14 ID:x2udLX/1
>>94 出来ないよ
俺の過去レスにプログラミングできないって書いてある
だから出来ない
>>95 エントリーポイントだよ。エントリーポイントを組み合わせる
EAを作り最適化しそれでエグジットも取引回数も調整する。
98 :
Trader@Live! :2011/07/25(月) 13:34:16.47 ID:x2udLX/1
>>95 A、B、C、Dあらゆる期間に分けてるのは出来るだけ多くのパターンに対応するEAを作るため
A、B、C、Dはそれぞれ短期間で勝率高く取引回数も高いEAを最適化で作る
オーバーフィッティングして良い。短期間の完璧なエントリーと勝率を求める
それを組み合わせる
プログラミングできないなら、EAを作ってくれるところに依頼すればいいのでは? 「EA 作成」とか「作成代行」とかでググれば色々出てくるぞ 完成したら、一言報告よろ
100 :
Trader@Live! :2011/07/25(月) 13:36:11.24 ID:x2udLX/1
>>93 学生の俺にとって100万はとんでもなく大金だよ
>>76 絶対勝てるかどうかはわからんが勝てるかもよ。
EAによっては時間や曜日を見てエントリーするやつがあるからね。
>>98 ABCDの4通りのカーブフィットのパラメーターで回すだけってことか
それは12頭出走の馬券全部買うのと大して変わらないだろ
必ず勝てるってどっからくるの
103 :
Trader@Live! :2011/07/25(月) 13:41:56.26 ID:x2udLX/1
>>99 依頼するのに金が掛かるし、依頼して実際に運営するのも嫌だよ。
ただ俺は勝てる方法をここで言っただけで実際取引は出来ないよ
したくもないからね
プログラミングを勉強して確かめる事なら時間が掛かるけど出来るかもね
教えてくれる人が居ないと無理だけど。やる気の問題もあるし
104 :
Trader@Live! :2011/07/25(月) 13:45:03.77 ID:x2udLX/1
>>102 何か誤解してる。俺、自信が何か誤解してたら聞き流してくれれば良いけど
4パターンのEAの条件が全部一致したエントリーをエントリーポイントとするんだよ。
>>104 ああそういうことね
それをやると勝率が高く見えるだけのテスト結果は帰ってくるよ
足りないなら増やすって簡単に言うけど回数だけ増やすのはまず無理ゲ
フォワードウオークでは使えないものが出来上がり
>>103 煽られてるけど気にしないでまずはExcelや手動でバックテストしてみたら?
世の中に存在する手法やEAも全て過去経験を頼りに永続性があるかも?
と期待して作られたものばかり。数学的に意味のあるものなんて存在しない。
統計学的には存在するけどね。
78.55でS待ってたのに刺さってないぞ師ねアホ通貨
108 :
Trader@Live! :2011/07/25(月) 14:10:21.94 ID:x2udLX/1
>>105 確かにエントリー条件を厳しくしていくんだから回数だけを増やすのは無理ゲになる
パターンを増やせば増やすほどエントリー回数が減っていく
なんとかする必要がある
条件を緩めるか(ABCDの内、4つ揃った時ではなく3つ、2つって感じに)、それか
条件について何らかの応用を加えるか。
解決しないと行けない点はそこだね。
それと今俺が言ってるこの考え方、どっかで見たのを言ってる
市販で売ってる高勝率右肩上がりのスキャEAを何個か用意して、
その中でいくつかエントリー指示が出て損失が出ていたら
エントリーしてみるって奴、そうすれば資産が安定して増えたって感じの
109 :
Trader@Live! :2011/07/25(月) 14:16:56.31 ID:x2udLX/1
>>106 手動じゃ最適化出来ないし、期待してるのは作れないよ
mt5使って最適化しないと
>>108 方向性がまずいなそんな事やっても解決しないし必ず勝てない
ただ作る前にどういう方向性にするかってのはEAを作るには非常に重要って考え方だけはいいと思う
あとmt5じゃなくても最適化できるただスレ違いだから言わないだけで
そもそも2週間もC言語勉強したら余裕でEAなんかかける
学生なんだから2chしてる暇があればC言語勉強しろ
111 :
Trader@Live! :2011/07/25(月) 14:39:16.65 ID:x2udLX/1
>>110 なんで方向性が間違っている?
それとC言語なら一度独学だけどしてたことあるよ。殆ど忘れてるけど
変数、代入演算子、%d、加減乗除、scanf()
double型変数(%f,%lf)、関係演算子、論理演算子、if文(if-else,if-elseif-else)、
剰余演算子(%)、for文、インクリメント演算子(++)、選択制御構造、反復制御構造、跳躍制御構造
関数(引数、戻り値、プロトタイプ宣言)、main()関数
変数(グローバル変数、ローカル変数)、関数(サブルーチン)
#include(標準ヘッダファイル、ユーザヘッダファイル)、#define(単純マクロ)、プリプロセッサ
配列(配列変数、要素、要素数、要素番号)、多次元配列、バブルソート
文字(char型変数)、文字列(char型配列変数、文字列定数、文字列操作(strcat(),strlen(),strcmp()))
ファイルの利用(fopen()、fclose())、強制終了(exit())、
入出力ストリーム(stdin、stdout、stderr、ファイルポインタ)、入出力関数(fprintf()、fscanf())
とこまで勉強しててポインタで辞めた。mtってMQL言語っていうやつなんでしょ?
mt4とmt5で若干違うらしいし。それとテクニカルについて全くの無知だからそこも分からないから
2週間では作れないよ
「証明されていない物に俺様の人生の貴重な時間を割くのは嫌だ。誰か証明しろ」 こう言ってるのと一緒だな。失せろ
113 :
Trader@Live! :2011/07/25(月) 14:48:17.29 ID:x2udLX/1
ポインタは使えないからそこまで出来れば書ける MT4と5はかなり違う
仕方ない。マジレスしてやるよ 1.MAが上向きで買い 2.MAがゴールデンクロスで買い 3.ボリンジャー2σで買い 4.RSI 30以下で買い まぁどれもある期間でいいなら確実に勝てる手法だよ で、この4つを組合わせて勝てるEAになると思う? 4つを組合わせてって簡単に言うけど、過去のパターンなんてそれこそ無限にある その中から4つを選んで勝てるEAを作るのは奇跡に近いよ
116 :
Trader@Live! :2011/07/25(月) 15:25:16.12 ID:x2udLX/1
>>115 4つじゃなくても良いよ
例としてABCDと4種類の期間別にあげただけ
何種類でも良いから期間が違うもの。テクニカルは何でも良い
最適化で高勝率高取引のEAをいくつも作る
あと4つ【同時】にエントリー条件が整った時にエントリーじゃなくて
一つエントリー条件が整っててSTに掛かっていなければそれは条件を満たしているとする
そうやってエントリーの条件が何個か揃ったらエントリーするEAを作る
それを最適化しても良いししなくても良い。高勝率、ただ条件を改善しないと取引回数が少ない
あらゆる期間、パターンに対応して勝てるEAが完成する。確率的にはだけど
結局何が目的なのかわからん。
118 :
Trader@Live! :2011/07/25(月) 15:32:35.68 ID:x2udLX/1
だったら時間の無駄だぜ。結果は出せても誰も証明なんかできないよ。
120 :
Trader@Live! :2011/07/25(月) 16:13:33.40 ID:x2udLX/1
>>119 なんで。良い結果が出たら勝てるって証明出来てる
あと
>>116 訂正
期間はある程度被っていた方が良い。本来は被せるべきで
期間は別にしては行けない
なぜ労を惜しむのかが分からん。 楽して金もうけ出来るとでも思ってるんだろうか。
122 :
Trader@Live! :2011/07/25(月) 16:23:29.83 ID:x2udLX/1
>>121 俺は
金儲けが目的じゃなくて
勝てるって事を証明したいだけ
俺はFXしないから
>>120 期間別にした方が良いってずっと言ってきたけど、間違い。期間を分けちゃ行けない
分けるのはテクニカルの数値や組み合わせ、種類を分ける。
期間を分けてしまっては意味ない
>>122 おまえの夏休みの宿題に付き合うやつなんていない。
パパに手伝ってもらいな。
>>119 あんたにわかるように説明するのも俺らにとって時間の無駄なんだよね。
それに見合ったアウトプットがあるなら別だけど。
そんなの関係ない 作ってくれ
誰も作らないから帰れって言われたろwww それに君があるパラメーターでは有効な方法を渡されても最適化できないで終わるわけ 自動で全部やってくれると思ってるようだが全く違うんだよ
最適化なら自分で出来ます EAだけ作ってくれれば良いです
全員落ち着くんだ!!深呼吸だ。
129 :
Trader@Live! :2011/07/25(月) 17:11:41.99 ID:MiuF+Ide
> オーバーフィッティングして良い。短期間の完璧なエントリーと勝率を求める > それを組み合わせる この時点でこのスレの住人はあきれてるんだよ オーバーフィッティングについては身をもって(お金でもって)怖さを 経験した人じゃないとわからん 最適化期間でのみ勝てるロジックを組み合わせれば勝てるって考えは、 ゆとり教育の賜物としてもお花畑過ぎるぞ このスレでお子ちゃまの妄想に付き合ってくれる人を探すのは無理 そうだから、初心者スレあたりで頑張れば?
ごめん。深呼吸間に合わなかった。あげてるし
131 :
Trader@Live! :2011/07/25(月) 17:44:39.22 ID:x2udLX/1
>>129 経験とか知らないから。
それを双方で証明出来ないから証明したいって言ってるんだよ
妄想だって証明出来るなら証明してよ
132 :
Trader@Live! :2011/07/25(月) 17:49:02.01 ID:i2ABWML8
例えば○○分後に100ピピ変動すると仮定し あらかじめ描写するボリンジャーバンドを作ることはできますか?
133 :
Trader@Live! :2011/07/25(月) 17:52:08.47 ID:x2udLX/1
終わった?
135 :
Trader@Live! :2011/07/25(月) 18:46:48.07 ID:x2udLX/1
終わってない
ユロドルが暇なので来てみた 一年をいくつかの期間に分けて、それぞれの期間で最適化させたEAを作る で、全部の条件が一致したときにトレードすれば常勝じゃね?っていう主張だと理解 まず「パターン」って語が曖昧すぎる。 そもそも、そのパターン自体がどのようなものか定義されてないのに、 「パターン」って語自体に「繰り返す現象」って意味が織り込まれてるから、 「繰り返す現象があるなら、それを検出して勝てる」って内容にしかなっていない たしかに、パターンを見つけ出せたのなら当然、必ず勝てるけど EAを作るときに重要なのはどうやって、どのようなパターンを見つけるか。 そのために誰かがMACDだのRSIだのボリバンだのを作ったわけです。
ようするに、「パターンを見つけ出せれば勝てる」っていうのが本質であって、 期間がどうとか、パラメータがどうとかはあなたの話の本質ではない。 そんなものなしに、「パターン」を見つけることができたのなら問題なく勝てる。 が、問題はそのパターンが具体的にどういうものか、ということ。 暇だし、具体的な考えがあるなら作ってあげるけど、単に「パターンを検出するのを作って」 っていうならそれは「勝てるEAを作って」っていうのとなんら変わりないから無理だぬ そうでないならご一報。
138 :
Trader@Live! :2011/07/25(月) 18:57:03.54 ID:x2udLX/1
オーバーフィッティングさせたEAを組み合わせると勝てるか負けるか誰も分からない
為替は過去の値動きのパターンを繰り返してるのは確か。
ただ新しく発生するパターンの出現率が
過去に起きたパターンの出現率より高いかどうか誰も証明出来ない
なのに
>>129 で全否定
なんの根拠もない経験で
オーバーフィッティングで勝てる考えがゆとりでお花畑過ぎると言われる。
もう面倒くさいなぁ。129なんて書いた俺がバカなんだが
ID:x2udLX/1の戯言が必ず失敗する証明なんて誰にもできんよ
否定の証明だからな。よかったな
俺にできるのはオーバーフィッティングが未来には通用しない
例を示すことだけだ
http://u3.getuploader.com/mt/download/545/overfitting.jpg 過去の膨大な架空トレード結果を多角的に分析、その分析結果を
基に売買するEA。望み通りのオーバーフィッティング
分析期間の結果はまずまずでも、分析期間以降はまったく使えない
良くてトントン、損をだす可能性のほうが高い
オーバーフィッティングして良いなんて戯言は恥ずかしいから
やめたほうがいい
意地になっても、仕様もないEAを作ってやろうなんて奇特な人
もいないでしょう
具体的なアイデアがあるなら作ってあげるお なお、オーバーフィッティングを日本語に訳すなら「過剰な最適化」 この語自体に、暗に「負ける」という結果が織り込まれてる それで勝てるなら別にオーバーフィッティングじゃないじゃん、という話。 最適化の是非については、ロジックに普遍性があるなら最適化すべき そうでないなら最適化の前に、普遍性があるロジックにすべき 最適化自体は悪いわけではなく、過去の相場への最適化で今後利益が見込めないロジック自体に問題がある
オーバーフィットさせてそのEAを合算して(単純に多数決で)勝てるか勝てないかはみんなわかってる 買って売るもしくは売って買うまでが1セットそのタイミングをわざわざオーバーフィットさせて決めてるのに また合算させてタイミングを狂わせてもうまくいかない オーバーフィットして崩して何か意味があるのですかってこと
>ID:x2udLX/1
よかったな。相手してもらって。これ以上は出てこないよ。
そもそも住民にID:x2udLX/1の論理を反証してあげるヒマなんてないんだ。
>>129 =139
>過去の膨大な架空トレード結果を多角的に分析、その分析結果を 基に売買するEA。
俺が目下開発中のものを全否定されて笑ったw
直接会っていろいろ話が聞きたいわ。
本 当 に 暇だから、反論があれば付き合うお・・・
>>◆N5NekoNeko ID:x2udLX/1が終わってまだヒマだったら付き合ってほしい。 今作ってるやつで悩んでる箇所があるんだ。 (ロジックとかではなく考え方の部分で)
>>72 もし、まだ見てたら教えてください。
何か節税してますか?それとも、海外治外法権?
>>146 悩んでることが一個あって僕もいいですかね
>>147 どうぞどうぞ。
交際運・結婚運を良くしたいなら東南にピンクのものを置くと良いらしいお
あれ、そのNekoNekoってトリップ、なんか見覚えが… 過去にこのスレ追い出された人でしたっけ?
150 :
Trader@Live! :2011/07/25(月) 19:29:19.88 ID:x2udLX/1
>>140 じゃあ時間が掛かりますけど勝てそうなアイデア複数持ってきます
>>140 さんが退場しないまでに。時間は掛かると思います
それで複数アイデアを持ってきて◆N5NekoNeko さんに
過剰な最適化させて貰って右肩上がり、高勝率、取引回数は極端に
少なくならないEAを複数作ってもらう。最適化は俺がやるでも良い
それと別の一つEAを作る。エントリー条件は複数作ったEAのエントリーの多数決で決める
もしくはエントリーの多数決について改良を加える。
エグジットは最適化させる。
これでデモだけどリアルで稼動させ勝てたら証明完了という流れで良いですか?
あと少し質問なんですけど
>>115 で上げれている
1.MAの傾きで売り買い
3.ボリンジャー2σで売り買い
4.RSI 20以下で売り買い
などボリンジャーバンドの傾きで売り買い
過去にあったVQ、QQEAなど。組み合わせて売り買いの
過剰な最適化で数年間高勝率右肩上がりのEAは作れませんよね?
だれか、ドテン型のEAを実際作った人いる? 成績はどう?
>>149 これまで議論で負けた経験は無いと思うから、追い出されたことも無いと思う・・・
というか、主にユーロドルスレがメインであんまりここには来ないからぬー
すごいことになってるっぽいけど100レスくらい読み飛ばした。ココまで読んだ
>>148 結婚運じゃないけどね。
主要な通貨パワー(USDとかEURとか)6つの分のMAなりモメンタムなりがあって
それが横軸を挟んで線対称で似た動きになったら
その2つの通貨パワーの組みを買うなり売るなりするんだけど
その似た動きをどう考えるかって悩んでます
変化率でフィルターかけて変化率が大きい2つってなら簡単だろうけどなにか違う気がして
155 :
Trader@Live! :2011/07/25(月) 19:35:49.18 ID:x2udLX/1
アイデアというよりEAが腐る程あるんですけど…全部ですか?
>>152
>>150 前半の証明の件と、後半の組み合わせの件、まとめて回答すると
まず、相場で勝てるかどうか、というのはパターンを見つけられるか、ということは間違ってない。
だけど、たとえば過去のデータから、たとえば「素数である日付の相場は80%の確率で上がっている」
というデータを見つけたとして、それが今後も通用する!と主張することは明らかにオカルトの領域であることはわかると思う
じゃあ、MA、ボリバン、RSIはどうなの、というと正直「多くの条件の下では」眉唾であると考えている
MAの傾きとは何か、というと動きを平均したものの差(微分)でしかないわけだし、
ボリバン2σは「大きく動いた」ということ、
RSIも売りと買いの比率が「そうである」ということでしかない
故に、それ単体で(たとえばMAの傾きが〜だから買い!、とかボリバンXσだから売り!とか)だと
オカルトとトントンの結果しか出ない、(スプ分で損失)ということは相場の複雑さを考えれば容易にわかる。
(実際にやってみればいいんだけどね。)
じゃあどうするか?そこがロジックの肝なのでガンガレ
>過剰な最適化で数年間高勝率右肩上がりのEAは作れませんよね?
確率的にはバックテストに限れば、上記の条件で右肩上がりのEAはできる
たとえばMAのGCDCだけでも、短期を1-20、長期を20-100と仮定しても20x80=1600通りの組み合わせがあり、
そのなかでバックテストで右肩上がりになるものがあっても不思議ではない。
もちろん、将来的に利益が上がるか?ということは別にして。
ちょっと休憩。
>>154 >それが横軸を挟んで線対称で似た動きになったら
横軸って何をあらわしてるんです?縦軸もよくわかりません
>その似た動きをどう考えるかって悩んでます
「似た動きを検出する方法」ってことでいいのかな?
その通貨パワーが表示されてるスクショ見せてくれたらわかる気がする
異常に伸びてると思ったらおまえら・・・
この速さなら大丈夫 NullPointerException
162 :
Trader@Live! :2011/07/25(月) 20:13:26.07 ID:x2udLX/1
>>158 >じゃあどうするか?そこがロジックの肝なのでガンガレ
ちょっと待ってください意味が分からない。
テクニカルをオカルトと言ってしまってつまり設定さえもオカルトという設定
それでそのオカルトな事意外で
具体的なあらかじめ設定する売買ルール(ロジック)を言え?
意味不明な事言わないで下さい
>確率的にはバックテストに限れば、上記の条件で右肩上がりのEAはできる
>もちろん、将来的に利益が上がるか?
出来るんですね。簡単に作れてしまう。それで将来利益が出るかは謎という事ですよね
その謎な部分を俺は確かめたいんです。過剰な最適化を行ったものが
リアルでは勝てるのかどうかという事
俺は少し改良を加えて
そういった過剰な最適化を行ったEAを複数作り
その複数のEAのエントリー条件を元に
エントリーするEAを作ってさらにそのEAのTPも最適化させる
出来上がるEAは高勝率で右肩上がりです。リアルでも通用するはずです。
でも
リアルで通用するかどうか誰も証明出来ない、分からない。だからそれを検証したいんです
勝てるなら通用するという事です
◆N5NekoNekoさんも分からないんですよね?だから検証しましょう
>>159 なるほどなるほど。
変化率ってのはつまり、たとえば強さP(通貨、時間)だとして、
P(USD,1)-P(USD,0)みたいな感じかな。(これじゃ無理そうだけど)
線対称(上下逆方向の動き)って条件があるなら簡単。
まず一方をある時点から逆にして、スケールを合わせる。(スケールについてはあわせなくても良いかも?)
んで、期間内の二つのPの差を総計して、どっちかのもしくは両方の期間内の上下の幅で割ればいい
分散の考え(大きな違いを重く見る)を取り入れるなら、差の二乗合計を用いてもいい。
それで、差の変動幅に対する割合を条件にすれば良いと思う。
返信に時間かかったから、書いてるてる間に思いついちゃったかなー
わかりにくかったらいってくれれば、画像で説明します
>>159 類似度=N次元の距離とする方式は?
√{(x-X)^2 + (y-Y)^2 + (z-Z)^2}
x,y,z:通過ペアAのMA(傾きとか),モメ(剥離率とか)、RSI(そのまんまでOK)
X,Y,Z:通過ペアAのMA(傾きとか),モメ(剥離率とか)、RSI(そのまんまでOK)
そもそもオカルト的な依頼なのに、、
>>161 ■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ
>>162 ロジックの肝、に関する答えは自分自信で納得できるものは持っている。
けどそれをいうわけにはいかないから、がんばって考えてね、という意味だと補足。
あとテクニカルをオカルトといってるんじゃなく、テクニカルといわれているものであっても
相場の複雑さに比して、十分無意味といえる単純さの組み合わせでは「オカルト」といえるものと
同じような結果しか出ない、ということ。同じではないが、結果として同じ様なものってことだぬ。
まあ、推敲すればなんとかなると思うお。けどここで話題のオーバーフィッティングっていうのは間違ったアプローチ、というのが
私の考えだけどね。
一応考えを聞いておくけど、「素数の日付の相場は上がりやすい」っていうのがもし仮にあったとして、どう思う?
どう思うってのは、要するに 「じゃあこれからは素数の日付でロングエントリー場苦役!!」と思うか 「今後も続くかはわからない」と思うか、ってことね。
>>163 変化率は
MathLog(usd,1/usd,0)
たぶん形式間違ってるけどこんな感じ
ちょっと理解できてない
>両方の期間内の上下の幅で割ればいい
ここが特に
画像お願いします
あとスケールは総和が0になるような指標なので合わせないつもり
以下の仮定において、 確率は上がるか下がるか解らない1/2である。 上昇トレンドの最中である。 その場合トレンド追従派の俺にとっては、今後も上がるに賭ける。 そんなおいらは、素数の日にエントリーするなあ。
>>169 http://mog.tank.jp/up/src/mog3660.jpg たとえば、2つの違いが10単位だとしても100動いたときに違いが10単位なのか、
1000動いたときに10単位なのかで違うから動いた幅で割ってみようってだけの話。
もっと厳密にするなら、過去のデータから通貨の違いのσだしておいて(もちろん上記の変動幅で割る、は行う)、
違いが+Xσ以上ならって条件もありだぬ。
Log使う方が好み?まあいいか・・・。
適当コードで書くなら
P(USD,n)-P(EUR,n)の総計を、
MAX(P(USD,0)〜P(USD,Y))-MIN( 左に同じ )
って感じ
>>172 補足
適当コードで書くなら
P(USD,n)-P(EUR,n)の総計を、
幅:MAX(P(USD,0)〜P(USD,Y))-MIN( 左に同じ )
で割る って感じ
もしかして
>どっちかのもしくは両方の期間内の上下の幅で割ればいい
この書き方だったから、「両方の」って表現がひっかかってるのかな。
スケールあわせるかどうかわからなかったからこの書き方になっただけで、
スケールあわせないなら、幅は両方の
(USDとEURの期間内MAXで大きいほう)-(USDとEURの期間内MINで小さいほう)
を使おうってだけの話
わかりにくくて御免
なんとなくわかりましたあがりがとう
175 :
Trader@Live! :2011/07/25(月) 21:03:53.52 ID:x2udLX/1
>>168 >一応考えを聞いておくけど、「素数の日付の相場は上がりやすい」っていうのがもし仮にあったとして、どう思う?
丁寧に二択用意してもらったんでその二択から答えると
「今後も続くかはわからない」と思う
上がり「やすい」ってだけしか問にないのでそれがどの程度なのか判断できませんが
上がり「やすい」って言うのだけでは「今後も続くかはわからない」と思う
ただちゃんとしたバックテストを基にした結果の答えなら
「じゃあこれからは素数の日付でロングエントリー場苦役!!」と思います
ただ俺はそれだけじゃ不十分だから例えば「奇数の日付の相場はあがりやすい」というのが仮にあったとして
それもエントリーの基準として考えたらより確実な勝利が得られると考えてます
ただこの考えは誰も証明できません。だから証明したいんです。勝つ事で
じゃあこっちからも質問です
なんでオーバーフィッティングっていうのは間違ったアプローチだと思うんですか?
俺は間違ってないと思います
過去の値動きのパターンは繰り返される、過去に起きたパターンの出現率と
新しく発生するパターンの出現率を比べると
過去に起きたパターンの出現率の方が高いと俺は思うから。
過去の値動きのパターンは繰り返されているのだからオーバーフィッティングさせてようが
過去の取引で最高の成績を収めたEAは今後も良い成績を収めるだろうと考えます。エッジのあるトレード
をしていますから。確率的に
176 :
Trader@Live! :2011/07/25(月) 21:10:13.02 ID:x2udLX/1
エッジのあるトレードがリアルで出来る EAをオーバーフィッティングさせるのは間違ったアプローチではないです
>>175 えーと、自分としては、
「素数の日付の相場は上がりやすいってのがあったとしてもオカルトだけど、テクニカルの場合は違う」
って答えを期待してたんだけども・・・。
じゃあ、オーバーフィッティングという言葉に含まれる間違いともあわせて説明しよう。
たとえばさ、太陽の黒点の数、その日に生まれた男子の数、降水量の下一桁、
年月日をそれぞれ加算して13で割った数、巨人の今期勝利数、「日付が素数かどうか」。
なんでも良いけど、「おそらく相場に関係の無いであろう数」をとにかくいっぱい集めてきて、
それぞれの組み合わせから売買の判定を出すバックテストをしたとしよう。
仮にその売買のパラメータ組み合わせ数が、5000位だとしよう。
その5000の組み合わせを片っ端からバックテストして、3個右肩上がりのものがあったとして、
それは今後有効といえるかどうか?
これがオーバーフィッティング。
確かに有効なシステムでは、「最適化」(オーバーフィッティングと表現したくない)は意味があるが、
全く有効でないシステムでも数の論理で手当たり次第にバックテストを行えば、確率的にいくつかは右肩上がりの
ものを作ることができる。
故にロジックからではなく、オーバーフィッテングから何かを生み出そう、という試みは意味がない。
下半分の「パターンが云々」っていうのはちょっと前に私が書いた通り。
簡単にまとめると、 ・有効であるシステムに対する最適化は意味がある が、 ・でたらめなシステムに対する最適化でもバックテスト上は利益を出すことができる つまり ・バックテストで利益が出るかどうかはシステムが有効かどうかに関係ない(出そうと思えばいくらでも出せる) 故に、 ・バックテストによるオーバーフィッティングからのアプローチは意味がない
>>◆N5NekoNeko 色々聞きたいことがあったんだけど2つだけ。 処理ロジックは重要じゃないので割愛します。 1.数千個の一般的なテクニカル/パラメータの組み合わせ (=2^数千パターン)のトップor上位は未来も有効か? ⇒私は有効だと思っているが、どうか。 2.組み合わせの良し悪し(スコア)を定量化するには何がよいか? ⇒現在は(値動き予測,取引結果)の相関係数、 またはBTのTotalNetProfit/Trade期間/MaxDD(not%)で判断している。 どちらも今開発&テスト中のシステムの肝の部分です。
>>◆N5NekoNeko 補足) ・数千個の一般的なテクニカル/パラメータ 例)移動平均薄利率、ボリバンの幅、直近の強相関通貨との値動き乖離など 書籍やWebなどで「有効」と語られている手法
ニコニコに対する反論としては、 有効であるシステムについても、普通にオーバーフィッティング出来ちゃうだろ、 と言うだけで十分な気がするわ。 オカルト−非オカルトの区別とは別問題だろ。
取り敢えず日課でこのスレ見てるけど おまえら書き込みすぎ(笑)読むの大変(笑) 誰か今日あった事ガンダムに例えて三行にまとめて
>>179 1は表す内容がどうなのか、による
A数千個の「(一般的なテクニカル)/(パラメータ) 」を組み合わせ一つのシステムにする
B「(一般的なテクニカル)/(パラメータの組み合わせ)」を過去の相場から数千個調べ、有効な組み合わせのトップを抜き出す
Aなら、もちろん統合の方法にもよるが有効であると思う。
Bなら、そうではないと思う。
2.
システムの評価についてはいろいろあるので、どれが一番優れている、とはいえないが
他人のシステムを評価したときは、損益グラフの直線性、複数ポジとるならそこからの必要資金からの利率、とか使ってた。
利益、期間、DDの利益については必要資金換算にしたほうがいい。
期間よりも予想回数(≒取引回数)のほうが良いかも。(たとえあ、ナンピンを使うようなものは取引回数≠予想回数。自分のEAじゃナンピンなんて使わないけど・・・。)
DDに関しては、そのバラツキも判断したほうがいい。同じようなDDが何度も続いているのか、大きなDDが一回あるのかではシステムの安定性が違う。
ほかに何かあったかな。
基本的には、システムが有効かどうか、というのはロジック
途中送信。 大体書いてあるし、まあいいか。
書き方がわかりにくいか。 Bでいいたいことは、 B「(一般的なテクニカル)/(パラメータの組み合わせ)」を過去の相場から数千個調べ、成績のいいものをリストアップ。 →たとえば、MA(15)とMA(25)のクロスが一番成績がよかった、ならそれを使用する ということ。
2. モデル効率 = 利益/完全利益 完全利益は毎日トレードして必ず勝った場合の利益 定量化としては一番優れていると思われる 日足でトレードするには2割必要って偉い人が言ってた。 逆に言えば2割あればどんな相場でも勝てるとも。
>>186 >完全利益は毎日トレードして必ず勝った場合の利益
違うだろ。
しかもそんなマイナーな基準を引用元明記せずに使うなよ。
>>187 アルゴリズムトレーディング入門のP403
この場合の完全利益は上の意味だよ
なんで起こってるのかしら
>>186 に関しては、自分で作った、ロジックが正しい、機能するシステムだと確信できるならそれ(モデル効率?)が簡単だし、一番いいかもしれない
要するに(潰れないとと仮定して)銀行の金利を比べるようなものだから。
他人が作った正しいシステムなのかどうかわからないもの、将来機能するかわからないものを比較するには不十分のような気がする
>>175 回帰式で説明すると次数が上がると自由度が高まりフィッティングしやすくなるということ。
これがオーバーフィッティングの本質。パラメータを沢山作ると都合よくはまる組み合わせが
見つかって利益が出るようになるんだよね。
>>188 じゃあ日足なら日足のOHLCが100, 150, 50, 100だったら、
完全利益はいくつなんだよ。
192 :
Trader@Live! :2011/07/25(月) 22:45:14.33 ID:x2udLX/1
◆N5NekoNekoは有効であるシステムと でたらめであるシステムの区別に付いて全く触れても居ないのに それらから結果を出した。この結論は◆N5NekoNekoの思い込み、詭弁である まずその結果を出す前に有効であるシステムの定義付け でたらめであるシステムの定義付けを しないと何を言ってるのかさっぱり分からない。 俺の意見はバックテストによるオーバーフィッティングからのアプローチは 確率的にエッジのあるトレードを可能にするので バックテストによるオーバーフィッティングからのアプローチは確率的に考えて有効 ゾーンの著者マーク・ダグラスはトレードでのエッジついて 「Trader's Edge : Thinking In Probabilities」と説いている トレードのエッジつまり強みは確率から来る それらは過去のデータのバックテストから得られ 過剰なオーバーフィッティングしてようがその結果から求められた高勝率の確率は エッジのあるトレードを可能にする オーバーフィッティングからのアプローチは有効性を持つ
お前の勝ちでいいよ もう自分の思う通り好きにやってりゃいいじゃん
それってファb(ry だからMAとかRSIとかじゃロジックがシンプルすぎてパターンを捕らえる程の複雑さが・・・ デタラメを定義するんじゃなくて、有効じゃないシステムがすべてデタラメであるので、有効であるロジックを晒す気は・・・ まあいいや。 じゃあ、どういうシステムを作ってほしいの? 実際に試してみると良いと思うよ。
>>194 アホ。それは「偉い人」が作った人間レシオというんだよw
12時までにお風呂入って寝たい・・・
良き討論であったぞ、皆の者乙
>>195 お前、本当に最初から最後まで事の本質を分かって無かったんだなあ。
問題は最初から「証明」の仕方にかかってたっていうのに。
>>199 本質をわかっていない人が、あの人は本質をわかっていない、といっているのか、
本質をわかっている人が、あの人は本質をわかっていない、といっているのか、
おなじ、あの人は本質をわかっていない、という発言からはわからないものだなぁ(まる)
何が言いたいのかさっぱりわからん
なんか、 クリスマスプレゼントにお前らの言う通りのEAを作ります!と言ってトンズラ 今月中にそのインジで儲かるEA作ります!と言いつつ、宿題として人にやらせようとする やつに似てると思うのは俺だけ?
あー・・・ クリスマスは、リアルタイムでその人見てた・・・
シャワー浴びてきたけど、特に進展ないな・・・
みんな仲がいいのやら悪いのやら
>>192 唯一相手してあげようって人にたてついちゃいかんでしょう
>>142 > 俺が目下開発中のものを全否定されて笑ったw
あはは、まあ同じようなことを考えた人は他にもいるでしょうから、
その中には成功してる人もいるんじゃないかな
前スレあたりで「逆転の発想おもしれぇ〜」みたいなカキコがあったけど、
そんな発想のEAです
オーバーフィッティング イクナイ→じゃトコトンオーバーフィッティング
させればどうなるんだ?
過去の数万トレードの結果を分析して結果に従えば?
週足、日足、H4足のMA乖離しか見てないけど、BT結果は予想以上でした
もしかしたらPF1.5を望むのは贅沢としても、1.2か1.3くらいは大丈夫かも
そんな期待も最初のフォワード分析で雲散霧消
142さんのEAは全く違うものでしょうから、俺の失敗で悲観することも
ないでしょう
205 :
179 :2011/07/25(月) 23:35:49.87 ID:nlzI9rWY
>>183-189 コメントありがとうございます。移動中でした。すみません。
>◆N5NekoNeko
1.はBです。(数千個のテクニカル) の組み合わせですね。
テクニカル/パラメータの集合体 Func[5000]に対し
Funcの利用率 Weight[5000]{0〜2} の最適解を探すシステムです。
検証数が膨大なので、EA,BT,GA全てC,CUDAにて自作しています。
⇒アドバイスによると、方向性は大外れではないと理解しました。
2.損益グラフの直線性のスコア化は有効そうですね。
現在使っているスコア 「予想値動きと取引結果の相関係数」や
「利益/DD等から算出した年利」は、ある一定期間に爆発的に利益が出て
あとはトントンの組み合わせが優秀と判断され、困っていました。
損益グラフと理想直線の偏差にて直線性を判断してみます。
アドバイスありがとうございました。
206 :
179=142 :2011/07/25(月) 23:46:21.65 ID:nlzI9rWY
>◆N5NekoNeko
一番間違えちゃいけないところ間違えた。
1.は「A」です。。。。
>>204 142は私です。フィッティングパラメータは上記の通り数千に及ぶ予定です。
パラメータを突っ込む(式を書く)ところ以外は全自動なので、とりあえず
ガンガン突っ込んで結果を報告してみます。
プロトタイプの分析結果は、こんな感じです(パタメータ128個)
BT5年:P/F1.5 3000取引 収益/DD/年=1.3
FT1年:P/F1.3 400取引 収益/DD/年=1.0
>>206 そっか。
Bって言ってるのに内容が?だったんだけど、Aなら安心、というかなんというか。
私が使用してるのと方向性は似ているので、うれしいというかなんというか。
>検証数が膨大なので、EA,BT,GA全てC,CUDAにて自作しています。
やっぱりそうなるよねー
私も、最初作ったときは更新時に15分くらいフリーズして、高速化に苦心しました
2についても多少なり役に立ったようならうれしい。
205を見た印象から、もうちょっとアドバイスというかヒントをほのめかすなら、「関係」を考えるともっとよくなるかもしれない。
具体的にどういうことかはいわない。言わなくても既に取り入れてるアイデアかもしれないしね。ガンガレ
それでは皆さんおやすみなさい
気が向いたらまたきます。
>>192 書きたくもないけど、勘違いする人がいるといけないので
> ゾーンの著者マーク・ダグラスはトレードでのエッジついて
> 「Trader's Edge : Thinking In Probabilities」と説いている
> トレードのエッジつまり強みは確率から来る
ここまではOK、次の解釈が余計というかデタラメ
> それらは過去のデータのバックテストから得られ
> 過剰なオーバーフィッティングしてようがその結果から求められた高勝率の確率は
> エッジのあるトレードを可能にする
> オーバーフィッティングからのアプローチは有効性を持つ
トレーディングルール作成のための最適化の結果は確率ではなく絵空事
ルール作成後のルールに従った結果が確率
209 :
204 :2011/07/26(火) 01:03:55.10 ID:9hQ4xmgs
>>206 FTでも利益がでてなにより
PF1.3 収益/DD/年=1.0 これくらいが現実的というか理想的かな
俺もデータありきのアプローチはダメだろうと思う反面、もしか
したらこれくらいはと期待してたんですが
俺の場合「BT結果はたぶん大丈夫、その後FTがダメなとき、複数
のインジを使用していると原因究明は困難だろう」ということで
インジは1つに絞りました
おかげであっさりとこのアプローチは忘れるという結果に至りました
206さんの健闘を祈ります
210 :
179=142 :2011/07/26(火) 01:36:31.09 ID:jOta6q0t
>◆N5NekoNeko >204 色々ありがとうございます。精進します。 私も朝早いので寝ます、おやすみなさい。 皆に堅益あれ!
お前らのイケテルEAのバックテスト時の成績と、リアル運用時の成績教えてくれ。 トレード回数とPFだけでもいいから。 PF1.2〜1.4の壁が超えられない。
俺が使ってるシステムは5つ。全て自作。 BT時との大きな違いはほぼ全てのシステムで RDDがBT時の2倍近いこと 他はほぼBTどおり A:2010年 PF1.40 145trade RDD28.25% B:2010年 PF1.55 137trade RDD4.66% C:2010年 PF1.53 96trade RDD22.01% D:2010年 PF1.43 181trade RDD15.29% E:2010年 PF1.24 41trade RDD15.57%
ID:x2udLX/1 ウザ!! あぼーんした
>>212 それは実運用の成績?それともバックテスト?
ドローダウンはやっぱ余裕持った方が良さそうだな。2倍も違うのか。
コントロールポイントでPF1.8出来た〜と思ったらエブリティックで1.4に下がった。 こんなに変わるかよ‥。
RDDが2倍なのに他はBTどおりになるシステムって?
>>214 実運用の成績。BTだとこれより遥かに成績良い
>>216 不思議だろう?RDDは2倍近くなるのにPFはそんなに下がらないんだぜ
全てロジックは違うのにさ
2005−08最適化&BT&2005−2008単年ごとBT&2009FTの後2010実弾
>>217 mismatched chart errorsとmodeling qualityを直したほうがいい
1分足から作った各足でのeverytickでのBTですら信頼性薄いのに mismatched chart errorsとmodeling qualityがひどいBT結果を鵜呑みにするのは危険だお
誰か成績上げるコツ教えてくれ。玉操作しないとやっぱ無理? あとみんな何分足で作ってるの?なるべくトレード回数多い方がいいと思って 5分とか15分で作ってるが結構無理ゲーっぽくなる。
>>221 どうすれば良いかを考える前に、
なんでダメなのかを考える。
なんでダメなのかを考える前に、
どこがダメなのかを考える。
利益が上がらないのか、DDが大きいのか、
成績が安定しないのか、取引回数が少ないのか、
トレンドに弱いのか、レンジに弱いのか、
MT4の基本機能だけでもわかる事は沢山ある。
現状分析なき試行錯誤は時間を浪費するだけだよ。
>>219 実tickデータの99% qualityでBTしたらDDが増えるかもよ。
俺はDukascopyのTickデータ使ってBTしてる。
30分足以上ならpfが1を超えるのを作るのはわりと簡単だと思う トレンドフォロー型ならだいたいいけるはず でも、それだけだと月200pips程度になっちゃう
DDが大きいと思っても、成績が安定しないと思っても、取引回数が少ないと思っても、 トレンドに弱いと思っても、レンジに弱いと思っても、解決方法が見出せないんです・・・ トレンドに強くしたらレンジに弱くなるし、DDを減らしたら取引回数が少なくなるし・・・
226 :
Trader@Live! :2011/07/26(火) 13:57:41.97 ID:j4NkyRNH
開発なのに一切開発してない件 所詮痰壺
227 :
Trader@Live! :2011/07/26(火) 14:03:07.22 ID:j4NkyRNH
お前ら程度が作れるEAは世の中に無料で配布されてるだよwwwwwwwwww
http://codebase.mql4.com/experts ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ____
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
228 :
Trader@Live! :2011/07/26(火) 14:05:27.27 ID:j4NkyRNH
開発スレ(笑)何の具体的アイデアもなく開発するでもなく、EAをうpするでもなく 【MT4/MT5】 EA開発スレ Part9だっておwwwwwwww ク ク || プ // ス ク ス | | │ // / ス | | ッ // ク ク ||. プ // / // ス ク ス _ | | │ // / ̄ ̄\ / ス ─ | | ッ // / _ノ .\ / // | ( >)(<) ____ . | ⌒(__人__) ./ ⌒ ⌒\ | ` Y⌒l / (>) (<)\ . | . 人__ ヽ / ::::::⌒(__人__)⌒ \ ヽ }| | | ` Y⌒ l__ | ヽ ノ、| | \ 人_ ヽ / . /^l / / ,─l ヽ \
腹痛てぇwwwwwwwww
なんだ昨日のゆとりか?w
二人いたどっちかだな
夏だなあ
233 :
Trader@Live! :2011/07/26(火) 14:31:13.34 ID:j4NkyRNH
このスレの特徴 ・開発スレなのに一切開発はしてない ・アイデアに価値がると思ってアイデアも出さない(実際は無価値、無料で公開されているもの以下w) ・EAはうpされることはまずなく。あっても糞EA ・住民は負け組みですぐ切れる
まぁ文章で手法を説明するのとは違って、EAうpしたらそのまんまだもんな わずかなコードの中に使うテクニカルも売買方法もイグジットも全てが詰まってるんだもん
なんの努力もせずにクレクレ狙ったゆとりが発狂してるだけでしょ 彼の妄想したことはシストレ初心者なら一度は通る道だから別にいいけど、 それを全部他人にやらせようとかゆとりもここまでかって思ったよw
236 :
Trader@Live! :2011/07/26(火) 16:38:56.35 ID:qfJlqfGZ
前スレで浦田Qが出してた半年で口座残高が10倍になってPF9のEAは どこにも売ってないしなぁ〜 プログラム組めない人の投機人生終了の感じ。
まぁ痰壷の正しい利用をしてるだけですよ僕は 毎日変わったレスをして反応を楽しむ 荒らし行為などは一切せず反応を見て楽しむのが痰壷の楽しみ方でしょ IDも毎日変わりますし
EA絡みで職はないものかと探してみたのですが、 いまEA開発を仕事にしてるのはフリーランスか、それか怪しげな業者くらい? (とりあえず、ヘッジファンドとかの金融エリートな人たちは別世界として) まあ今のままじゃEA自体で稼げそうにないからなんですが。。
トレサポでも紹介されているクロアチア人が作ったFreeEAを 改造して、発展させたいのですが、協力してくれる方 いませんでしょうか?
いません
>>j4NkyRNHって昨日の >>x2udLX/1 ?
EA絡みで職はないものかと探してみたのですが、 いまEA開発を仕事にしてるのはフリーランスか、それか怪しげな業者くらい? (とりあえず、ヘッジファンドとかの金融エリートな人たちは別世界として) まあ今のままじゃEA自体で稼げそうにないからなんですが。。
>>240 あなた、ついさっきまでEA関係の職をさがしてましたよね。
そういう態度だと仮にそういう職があっても、採用してもらえないと
思うんですが。
>>244 ク ク || プ //
ス ク ス | | │ //
/ ス | | ッ // ク ク ||. プ //
/ // ス ク ス _ | | │ //
/ ̄ ̄\ / ス ─ | | ッ //
/ _ノ .\ / //
| ( >)(<) ____
. | ⌒(__人__) ./ ⌒ ⌒\
| ` Y⌒l / (>) (<)\
. | . 人__ ヽ / ::::::⌒(__人__)⌒ \
ヽ }| | | ` Y⌒ l__ |
ヽ ノ、| | \ 人_ ヽ /
. /^l / / ,─l ヽ \
>>242 まじレスしますよ。
ドル円のショートオンリーだよね?
2008年からのドル円のチャート見てみなよ。ショートしてりゃ俺でも儲かる。
それとトレード回数と利益が少なすぎる。
PFはどうでも良くて、要するにDDを小さくして利益が大きくなればいい。金持ちになるためにやってるんだからね。
金融エリート(金融工学?)が、俺たちが使っているようなテクニカル使って EA開発してるのかな? 俺の知ってる限りは、ポートフォリオ理論使ってリスク管理したり、ブラックショールズ式使って オプション価格を決めたり。そおいうのだと思うんだけど。 彼らとか、経済学者は総じて、価格は予想できないとして、テクニカル自体を オカルトだと考えてるのが大半だと思う。
>>222 なんというか自分が思うトレンドフォローや逆張りをテクニカルで再現するのが果てしなく難しいんだよなぁ。
いろいろやるとパラメータ多くなって複雑になって無意味になるからやりたくないし。
まぁこれはプログラミング能力の問題なのかもしれないけど。
あとトレンド図るためにMTFのインジ作ったがなぜかまともに動かない。バックテストだと違う時間軸の足参照できないのかな‥。
>>242 それ何分足?ってか凄い成績だな。コツを教えてくれ。ってかここでリアル運用結果を報告してくれ。
>>247 彼らのシステムって億かかってるんでしょ?
少なくとも価格データのみのテクニカルの組み合わせでパターン認識はありえないだろうなw
テレビとかで銀行のトレーディングルームとか映るときあるけど。 少なくとも、MACDやらRSIとか使ってるようじゃなかったな。(見せてないのかもしれんけど) ただ200日のMAは映っていたわ。
PF ってブローカーによってスプ違うから、やるならinstaとかでやればいい。
>>251 運用してみればいいじゃない。BTだと見えないものが見えてくるよ。
ドテンシステムで運用している人いる?
一定期間内のMAの頂点を簡単に出す方法ありますか? あと、最頂点から、現在のMAを結んだ線の角度なんてのも出せたりします? 三角関数とか使えばいけるんでしょうか
>>254 ドテンシステム現在フォワードテスト中。経過20日くらいで若干のマイナス。
約4年半のBTで一度もスクエアすることなくプラスで終われた時は嬉しかったもんだけど、現実はそう甘くはないだろうね。
まぁそれを確かめるべくFTしてるんだけども。
>>256 おおお、ドテンシステムって天井・底を狙うのが理想なんだけど、
やっぱり難しいね。僕もFTを始めたところまだ、結果わかんないな。
>>255 MAの微分的なものを求めるのならMACDもその考えと近いので
MACDを研究するといいと思うよ。
>>250 あんなのTV向けの画面にしてるだけだよ
200MAなのは「まあ当たり障りないな」ってだけのこと
blessing3という無料の海外製EAがあるのですが
パラメーターの設定次第によって円口座で正しくロット計算されません。
どなたか円口座で正しく稼働するように改造していただけないでしょうか。
少しですが(paypal等で)謝礼もお支払したいと思います。
ご興味のある方ご連絡ください。
[email protected]
このスレでエクセルのVBAのソースコード解読出来る人っていますかね〜 ロジックを知りたいんですが、
もしいたら解読を依頼したいんだけど。。。
タダとは言いませんよ手付金も払います
VBが出来て興味ある方は下のアドレスまでメール下さい。よろしくです。
[email protected]
これって発狂したクレクレ君がやってんの?
>>261 ・スレ内で反応
クレクレ君だった場合 ⇒ クレクレ君大喜び m9(^Д^)
クレクレ君じゃない場合⇒ メールを晒しているので無意味
・メールで反応
クレクレ君だった場合 ⇒ 被害拡大防止のためスレ内で報告、それ以上は触らない
クレクレ君じゃない場合⇒ ヒマだったら開発してあげれば?
何が言いたいかっつーと、ここで反応しても良い事ないよ、と。
別にクレクレにいちいち反応しなくてもいいと思うけど。 余裕があるやつは、親切に提供するだけだろうし。
あー途中で書きこんでしまた。 ↑のメールアドレスにソース送ってくれれば、 出来るかどうかは今日中に答える。謝礼とか別にいらないけど メアド欄のブログアクセスに貢献してくれると嬉しい。 ExcelのVBAは8年くらい昔の記憶しかないから 最新のは無理かもしれんけどできたらやる。
質問です 最適化しても二つ目までは全パターンを検証してくれているのですが、 最適化する項目が三つ以上になると全パターンを検証していなかったり もしくはほとんど検証していないことがあるのですが、仕様でしょうか?
>>265 オフトピだがアクセス欲しいならblogのテーマ絞ったほうがいいよ。
自動取引が話題のblogならRSSリーダに登録しようかと思ったけど、ゲームの記事とか
一緒くたになってるからパスだわ。
>>268 最適化するパラメーターが二つまでなら正常に動くのですが、
三つ以上になると問題が起こってしまっているように見えます
具体的には 1つ目がスタート1 ステップ1 ストップ4、
二つ目がスタート1 ステップ1 ストップ3、
三つ目がスタート1 ステップ1 ストップ5とかだと、4*3*5で60パターン検証するのが
正常だと思うのですが、30パターン程度しか検証されていないことがよくあります
これは仕様なのでしょうか?それともコードの記述の問題、もしくはバグなのでしょうか?
>>267 アドバイスありがとうございます。
ブログのアクセスの伸ばし方なんて今まで考えてなかったので
適当に垂れ流してる状態です。
確かにテーマを絞ったほうがいい記事になると思うんですが、
webでなんかやるっていうのは先にツイッターから入ってしまったので
それを引っ張って垂れ流し式になっちゃってるんですよねw
まぁ最低限自己アフィ出来ればいいんですが。
アクセス伸ばすことに主眼を置くならEA定期的に作って上げてみたり
MQL4について語れればいいのですがそれほど技術力があるわけでもなく…。
EAは出来合いのものを買う気はないので
レビュー系に特化する事もできずそれをアフィるわけにもいかず(w
まーのんびりやらせていただきます。
</ここまでチラ裏>
主題
>>259 さんと
>>260 さん、
[email protected] (もちろん捨て垢)までメールにて連絡いただければ
出来る保証はしませんが挑戦はします。もう眠りそうなので、
対応は明日の16時以降になるかと思います。
EXCEL2007ならMOS持ってますがあの資格はVBA関係ないしなぁ。
皆様お疲れさまです。長文荒らしすみませんでした。
>>269 パラ2つまでなら正常に全件テストできてたんなら
Genetic Algorithmはチェック外してあるよね?
あとは、最適化バックテストのOptimization Resultsの画面で右くりして
Skip Useless Resultのチェックを外す…。
くらいしか思いつかない。少なくともよっぽど特殊な数字をパラにしてない限り
MT4のバグって可能性は低いと思うよ。
ただ単にMT4で使用できるメモリーの上限に達しただけだったりして。
>>271 どちらもチェックがついていたので、今作っているEAで
またそのようになってしまったら試してみます
ありがとうございます
>>272 MT4のメモリーに上限はあまり高くないのか、
もしくは作ったEAがメモリーを食いすぎる構造になってしまっているのか・・・
コード見直して試してみます
ありがとうございます
PF1を切るのは結果に表示されない
表示されます
>>273 Genetic algorithmは遺伝的アルゴリズムで最適化を早く終わらせるための
ものだよ。要は見込みの無さそうな組み合わせを学習してスキップする。
たまに外すけどね。
>>275 「skip〜」にもチェック入ってるって言ってる
>>273 の設定ではってこと。
言葉足らずスマソ。
>>276-277 ありがとうございます
そのような設定だったんですね
今回の問題がそれが原因だったのなら、設定だけで解決なので助かるので
その状況になったとき試してみます
>>259 >>260 メール確かに受信しました。今からぼちぼち作業開始します。
結果は個別にメールで返したほうがいいですよね。
つか、なんか今朝異常に眠くて基金訓練さぼってもうたw
タイムフィルター関数を作りたいのですが、以下の記述は間違っているのでしょうか? 全くフィルターがかかりません。 bool OpAllow(){ bool op = false; bool op1 = false; bool op2 = false; bool op3 = false; if ((useTime1 == true) && ((Hour() >= opHour1) && (Hour() <= stHour1))) op1 = true; else op1 = false; if ((useTime2 == true) && ((Hour() >= opHour2) && (Hour() <= stHour2))) op2 = true; else op2 = false; if ((useTime3 == false) && (!(Hour() <= opHour3) && !(Hour() >= stHour3))) op3 = false; else op3 = true; if(op1 == true || op2 == true || op3 == true) op = true; else op = false; return (op); }
>>280 280さんの考えている仕様がわからないので、怪しいとすればop3かなとしか
他の人にはわからないんじゃないかな。
op1単独、op2単独、op3単独と条件を単純にして、どこで失敗しているかを
確認すればわかるかも。
単独はすべてOKならop1+op2、op1+op3、op2+op3、op1+op2+op3と組み合わせて
どうなるかで不具合の場所は特定できるでしょう。
場所を特定できれば、280さんの考えている仕様を日本語で紙に書いて、それと
プログラムを見比べれば解決しませんか?
>>260 はちょっとキツイかも…、できなかったらごめんなさい。
とりあえず久々過ぎるVBAと圧倒的なソース量に対処できないので
カロリー補給&気晴らししてきます。ノシ
op3が間違えてました。 失礼しました。 下で動きました if ((useTime3 == true) && ((Hour() >= opHour3) || (Hour() <= stHour3))) op3 = true; else op3 = false;
>>260 メール送りました。(´・ω・`)結論から言うと対応しきれなくてごめんお。
まぁ全体をMQL4にコンバートしてくれとかじゃなく、
部分的に知りたいことがあるなら答えられるかもしれないお。
pipの算出について教えてください。 2&4桁の業者でも3&5桁の業者でも使えるように↓の関数使ってるんですが もっとスマートな書き方ないですかね? MQ4は3項演算子使えないし・・・ double pip = getPip(); double getPip() { // Point = 0.01 or 0.001 if(Point >= 0.001) { return 0.01; } // Point = 0.0001 or 0.00001 else { return 0.0001 } }
今日他人のEAから教わった方法をドヤ顔で伝授。 if(Digits % 2 == 1) { //ここに入るのは下3桁、5桁業者の場合。 //後の処理はわかるな?自分で特定の変数を10倍したければすればいい。 }
288 :
286 :2011/07/29(金) 00:30:29.70 ID:OTbl5EXD
>>287 ありがとうございます。こんな感じですね。
double pip = Point * MathPow(10,Digits % 2);
control pointsでテストすると、基本的に逆張り系でいい成績が出やすいと思うのですが、 逆にcontrol pointsで順張り系である程度いい成績が出ればかなり有効なEAと 考えることはできると思いますか? 自分は一応、逆張りはevery tickでテストして、順張りはcontrol pointsでテストして いい結果が出れば信用することにしてるのですが・・・
>>288 pip計算式、俺も使わせてもらうわ。
実用的には
>>286 の関数でも十分な気がするんだが、
>>287 のヒントからサラっと
>>288 の式が出てくるあたりセンスの良さを感じる。
>>289 >control pointsでテストすると、基本的に逆張り系でいい成績が出やすいと思うのですが、
それはMT4のtick補完ロジックを理解した上での根拠のある話?
それともただの経験談?
なんでそう思ったかを書かないと誰もコメントできないよ。
というか、EAの性質やタイムフレームにかかわらず
・その通貨ペアの1分足のデータをそろえる
・every tickでテストをする
・条件を厳しくする場合はspreadで調整する
がバックテストの基本だと思ってたんだが、みんな違うのかな。
初歩的な質問で申し訳ありません。 移動平均に平行線を描画したいのですが、 ((iMA())+0.0010)または((iMA())-0.0010) だと捻れてしまって、駄目みたいです。 有効な式はありますでしょうか?
MAの線は線分の集まりなんで、直線のように扱って上下にずらしてもだめでしょう。 線分に対して垂直方向にずらさないと。
>>291 Custom Indicators-MovingAverageの場合
Levelsタブに例えば100と設定すれば、5桁業者で10pips上にオフセットしたラインを追加できる。
これじゃダメ?
294 :
Trader@Live! :2011/07/30(土) 12:51:06.99 ID:ijwKV6jq
RSI+MAの傾きですごいEA作れた
>>259 です。
タイラーさん、改造ありがとうございました。
これからフォワードテストで動きをチェックしてみます。
ご丁寧にどうもo(^^)o
297 :
Trader@Live! :2011/07/31(日) 14:10:39.41 ID:U3KPtuq/
レバ規制のせいで マーチンゲールが途中で途切れる可能性がでてきた どういう仕組みで回避するべ 複数の通貨で1枚から負け積みしていくんだけど 他の通貨でポジ持ってたら・・・でやめたらめちゃくちゃ取引回数減るし もういや
PF2.0以上のEA全然つくれねえ。 普通に1.3程度が限界 最適化とかすれば2.0超えるのもあるが それじゃ意味ねえしなあ
300 :
Trader@Live! :2011/07/31(日) 15:09:42.58 ID:QEVDuRFd
301 :
Trader@Live! :2011/07/31(日) 15:14:35.49 ID:QEVDuRFd
みんなはエントリー条件の最適化どうやってる? 俺はまずエグジットを適当に20pipsでTP,-20pipsでSLみたいな 単純な条件にしてPFが最大になるところを最も良いエントリー 条件としてる。次にエグジット条件のTP/SL/Trailing stop等に 移るんだけど仮決めのTP/SLに必然性はないし納得しきれない 部分がある。
逆ポジのエントリー条件をエグジットにそのまま使ったらどうだろう
303 :
Trader@Live! :2011/07/31(日) 19:42:51.59 ID:QEVDuRFd
>>302 d。
確かに一旦ドテンシステムにして理想的なエントリを探し
その後エグジットをチューニングするのもありかもね。
後で試してみる。
>>301 趣旨からズレるが、tp,slはATRの倍率掛けにした方が良い。
305 :
Trader@Live! :2011/07/31(日) 21:06:19.92 ID:QEVDuRFd
>>304 試したことあるんだけど単純tp/slの方が成績が良かった。
どの時間足でピリオドどれくらいでやってるの?
>>305 横レスだけど、5分足6本でやってる。
ATRは足が始まった時に少々値が小さくなるので、そこは補正してる。
あと、単純に倍率で掛けるだけだとかなり大きい値になったり小さい値になったりするので、
最大値と最小値でフィルタリングしてるかな。
307 :
Trader@Live! :2011/08/01(月) 06:02:28.52 ID:4wCXxc1q
ストキャスとMACDでサイン出すEA探してるけど見つからないお 作ってもいいけど俺じゃ時間かかりそうだしなぁ
EA Builderで作れんの?
本当はここでもっと色々な話をしたいと思っているのだが、プロバイダが規制されまくっててほとんど書き込みができない・・・
MT4って指定したバックテスト期間のデータが無い場合は エラーでてほしいよね。 散々回して後で気づくことがある。
>>309 代行してもいいけど、規制されてない代行依頼スレのURLはってくれ
312 :
Trader@Live! :2011/08/02(火) 12:55:59.81 ID:Qy5JtVrI
>>310 MT4iのData integrity checker使うといいよ。
BTしててトレードを最低何回はしてないと信頼しないって基準はいくつぐらい? 回数300回でPF2.0と600回でPF1.5だったらどっち使いたい?
>>313 どっちもヤダ
トレンドフォローなら1000回は欲しい
スキャ系なら3000回くらい
アラート音の回数を1回だけとかに制限する方法は簡単ですか? シグナル発生中に鳴りっぱなしでどうにかしたいのですが。
>>313 そのBT期間によるね。
100回以上/年は欲しいかな。
>>313 そのどちらかで選ぶんなら、トータルのProfitが大きくてDDが小さいほう。
俺的クライテリアは、
300トレード/年、PF:2.0、DD10% (福利)
319 :
Trader@Live! :2011/08/04(木) 22:55:40.19 ID:rkeF0nkz
前にエントリー条件だけを先に最適化するには?と書いたもの だけどドテンは結果的に上手くいかない気がする。トレード回数 が極端に減っちゃうんだよね。 ところでみんなは最適化の結果を選ぶときにどんな相対的基準で 選んでる?損益、PFはオーソドックスだと思うけど俺は 損益/最大DD を使って更に主観でトレード回数が多いものを 採用してる。でも最大DDはFTすると変わるしこれでええんか?と 自問自答してる。みんなの意見を聞きたい。
>>319 「損益/最大DD」っていいかもと思ったら、
すぐ上に自分で「トータルのProfitが大きくてDDが小さいほう」と書いてたw
あとは超主観的要素として、損益グラフがきれいなやつw
>>314 朝スキャ系で2年BTで600回を超えたことがないんだが、3000回て・・
322 :
Trader@Live! :2011/08/05(金) 07:25:55.22 ID:fhw3G+KR
>>320 それ大事だよね。長い目で利益が大きくても半年原資が減り
続けたら精神的に耐えられないと思うよ。
>>319 2年BTで単純に「損益/最大DD」で選んでFTしたら負けまくった
324 :
Trader@Live! :2011/08/05(金) 20:21:52.21 ID:fhw3G+KR
>>323 負けなくなったじゃなくて負けまくったかい!
俺も最大DDはあてにならない気がするんだよね。
で、323さんは今はどの基準がいいと思ってるの?
基準以前にロジックが有効かどうか エッジがあるかどうかってことじゃないの 答えがNOならどのパラメータを選択しても、以後どうなるかは 神に祈るのみ
326 :
Trader@Live! :2011/08/05(金) 21:37:40.01 ID:fhw3G+KR
>>325 もちろんロジックは有効であり、良い結果が沢山あるから悩んでる。
その中でも最善のものを見つけたいのは誰でも同じだと思う。
質問があります。 あるイベント(ゴールデンクロス・デッドクロス)が発生して、成行きオーダーを発注したとします。 クローズはゴールデンクロス・デッドクロスのドテンの場合のほか、指値決済・逆指値決済の場合もあります。 ただこの設計だと、イベントが発生し、オーダーを発注したときのカレントのバー(ロウソク足)で、 指値・逆指値に引っかかり直ぐにクローズすることがあるのですが、これを避けたいと思っています。 次のバー以降に移ったら、ドテン決済でも指値決済・逆指値決済でも可能にしたいです。 つまり、オーダーをしかけたバーを特定し、そのカレントバーでの決済を不可にさせ、それ以外のバーでは 決済を可能にさせる方法はありますか?「オーダーをしかけたバーを特定」して何かしらの変数に残せば 可能だと思うんですが、、、ちょっと自分のプログラム力では難しいところです。 ちなみに、豊嶋先生のFXトレーダー実践プログラミングを元にこれらのEAを作成しています。 スタート関数は以下のような流れです。 =================== // スタート関数 int start() { // エントリーシグナル int sig_entry = EntrySignal(MAGIC); // 買い注文 if(sig_entry > 0) { MyOrderClose(Slippage, MAGIC); MyOrderSendSL(OP_BUY, Lots, Ask, Slippage, SLpips, TPpips, COMMENT, MAGIC); } // 売り注文 if(sig_entry < 0) { MyOrderClose(Slippage, MAGIC); MyOrderSendSL(OP_SELL, Lots, Bid, Slippage, SLpips, TPpips, COMMENT, MAGIC); } } =================== EntrySignal()関数では、ゴールデンクロス・デッドクロスの判別して、ゴールデンクロスなら1を返し、デッドクロスなら-1を返します。 MyOrderClose()/MyOrderSendSL() は豊嶋先生のオリジナル関数です。OrderClose関数/OrderSend関数と考えてください。 これで、、質問の内容わかるかな。。。 いいヒントありましたらお教えください。宜しくお願いします。
ああ、これでは逆指値・指値決済の意味なかったですね。。。 ごめんなさい。逆指値・指値決済のことを忘れていただいて、 カレントのバーで成行きで決済できないように、カレントバーを 特定する方法ありましたら。教えてください。
>>326 「BTで良い結果を残すパラメータがたくさんあるからロジックは有効」
この考えには賛成できないけど、自信があるならデモトレードでも、
リアルトレードでもやればいいじゃないですか。
デモなら複数のパラメータセットを試せるし、機会損失を除けば損は
ないんだから。
330 :
Trader@Live! :2011/08/05(金) 23:22:08.40 ID:fhw3G+KR
>>329 いやいや、リアルでやっていてそれなりに結果も出てるよ。
リアルで採用しているのは月単位で勝率が一番高い組み合わせ。
でももっと出来るはずと思ってる。
331 :
Trader@Live! :2011/08/05(金) 23:26:13.91 ID:fhw3G+KR
>>328 if (Time[0] == TimeCurrent()) {
// Barが更新された瞬間
売買;
}
じゃダメなん?
332 :
Trader@Live! :2011/08/05(金) 23:33:46.04 ID:fhw3G+KR
>>331 自分で実際に動かしてるコード見てみた。
datetime ctime = iTime(NULL, 0, 0);
if (ctime != BarStartTime) {
BarStartTime = ctime;
売買ロジック;
}
BarStartTimeはグローバル変数かstatic変数ね。
333 :
328 :2011/08/06(土) 00:30:19.04 ID:jg4SBiUl
>>332 さん。
完璧です。ありがとうございました。
iTime()関数なんて始めて知りました。
334 :
tomato :2011/08/06(土) 01:35:17.72 ID:edrRoZ/P
超初歩的な質問! 誰か教えてくださいまし! .mq4のファイルを書き換えて(パラメーター)を変えてバックテストしてるの。 でも、バックテストの結果が変わらないの。 なんでですか?
335 :
Trader@Live! :2011/08/06(土) 01:40:00.23 ID:CEmP9sCi
>>334 すんげー難問。俺らは超能力者か?ww
エスパーすると可変範囲が意味ないんじゃね?
例えばSLを1万pipsから1000pips刻みで最大
5万pipsまで変えて最適化しても変わらんよね。
>>334 ストラテジーテスターの右上にあるボタン「Expert Properties」を押すとパラメータを設定できる。
そちらが優先されるよ。
337 :
tomato :2011/08/06(土) 01:46:40.70 ID:edrRoZ/P
例えば・・・ if( 短期平均線>= 長期平均線) と if( 短期平均線<= 長期平均線) に変えたら真逆にいくのでわ???
338 :
Trader@Live! :2011/08/06(土) 01:51:34.78 ID:CEmP9sCi
339 :
tomato :2011/08/06(土) 01:52:06.05 ID:edrRoZ/P
336> ありがとう! 天才! パラメーターについてはよく分かりました! でも、条件を真逆にするのができません。 どなたか教えておくんなまし・・・
我が家のEA達、今週はDDを連発してしまいました。。。 何があってもEAは止めない主義なんだけど、また米国債格下げとか。。。来週もDDかもw
1年間のBTでトレードは1000回ぐらいは必要とか、よくレスがありますが、 みんな5分足か15分足で動かしているのですか? 一日あたり4回ぐらいのトレードとなると、5分足か15分足になりますよね。 MT4のEAを開発しているみなさんは、あまりスイングでは運用しないのですかね。
メタトレーダー4に最初から入っているEA 「Moving Average」の売買ルールを見出そうとしているのですが、中々分かりません。 どなたか教えていただけないでしょうか? 解説されているサイトでも構わないので、どうかお願い致します。
連投申し訳ありません。 12本移動平均線を足6本ずらしたインジを使っているのはわかるのですが、 そのインジを値が抜けた時、売買しているときとしていない時があるのです。
345 :
Trader@Live! :2011/08/07(日) 04:33:23.68 ID:bRX4V7/y
346 :
Trader@Live! :2011/08/07(日) 04:36:05.90 ID:bRX4V7/y
>>344 途中だった。あれはバグがあって始値と終値が綺麗にクロスしないと
売買を見落とす。例えば終値が移動平均より下で次の始値が上の場合
は買わない。だから自分でロジックを変更する必要がある。
前々スレで話題になってたwalk forward analyzerを買ってみたんだが、 to use walk forward analyzer an administrator must gurant permission to run the software at least once みたいなエラーポップアップが出て使えん。 他にも買った人こんなエラーでた?
348 :
Trader@Live! :2011/08/08(月) 01:32:50.93 ID:OJwhrYo0
>>347 言いだしっぺだがないねえ。Administratorの権限を付けてみたら?
初回だけでいいみたいだし。
Free版をTotal Uninstallでアンインスコしても再インスコNGだったのは Admin権限が必要なフォルダかレジストリにデータ入れてたのか
FT中のEAがプラテン 種90%から110%へ こりゃテンション上がる
351 :
Trader@Live! :2011/08/08(月) 15:17:07.15 ID:afsfcZd4
自作のEAをチャートに放り込みたいんだけど、ニコチャンはおろか、初期設定を促すダイアログすら出ない。 ウィザードで適当に作った、中身からっぽのinit,deinit,startしかないEAですらダイアログ出るのに。 ちなみにバックテストは普通に出来、レポートも出る。なんで?どこ見て制限されてるの?EA走らせたいよ! 教えてエロい人!!
352 :
Trader@Live! :2011/08/08(月) 15:18:14.86 ID:afsfcZd4
自作のEAをチャートに放り込みたいんだけど、ニコチャンはおろか、初期設定を促すダイアログすら出ない。 ウィザードで適当に作った、中身からっぽのinit,deinit,startしかないEAですらダイアログ出るのに。 ちなみにバックテストは普通に出来、レポートも出る。なんで?どこ見て制限されてるの?EA走らせたいよ! 教えてエロい人!!
うp
354 :
Trader@Live! :2011/08/08(月) 15:38:46.47 ID:afsfcZd4
おうち帰ったらうpするね。 なんか怪しい点あるかなぁ?
355 :
352 :2011/08/08(月) 17:20:12.04 ID:afsfcZd4
コメントアウトしまくって分かったわ #property indicator_separate_window #property indicator_buffers 2 が入ってた ご迷惑おかけしました
EUR/USD=1.4255 を1.4200というように の小数点3桁以降をまるめたいので、 MathFloor(Close[0]*1000)/1000 としたんだが、、 これだと、USD/JPY=81.02の場合そのままであるのに気づいた。 USD/JPYの場合は、81.00としたい。 どうせなら、5桁対応のブローカーでも使えるようにしたい。 何か汎用的でいい方法ありますか?
こうしてみたが、どうだろう?笑わないでね。 if(digits == 2) MathFloor(Close[0]*10)/10; else if(digits == 3) MathFloor(Close[0]*100)/100; else if(digits == 4) MathFloor(Close[0]*1000)/1000; else if(digits == 5) MathFloor(Close[0]*10000)/10000;
ちょっと何がやりたいのかわからんのだけど、 とりあえず最後の1桁を丸めたいなら NormalizeDouble(Close[0], Digits - 1); 切り捨てたいならMathFloor()で、無理やり1行にするなら MathFloor(Close[0] * MathPow(10, Digits - 1)) / MathPow(10, Digits - 1); とかかなぁ。
int a = 1.4255 x 100 (a = 142) int b = 81.02 x 1 (b = 81) double c = a / 100 double d = b / 100 でおk。多分
>>359 サン
>>360 さん ありがとお。
MathPow()の意外な使い方勉強になります。
>これだと、USD/JPY=81.02の場合そのままであるのに気づいた。
ごめん。これだと、どの桁をまるめる(切捨て)るか解りにくいでしたね。
USD/JPY=81.32→81.00としたかったです。
pip単位下2桁をまるめる形で、、、。
で、5桁ブローカーの場合も考慮して、こんな風にしました。笑わないでくらさい。
if(Digits == 2 || Digits == 3) point = MathFloor(Close[0]*10)/10;
else if(Digits == 4 || Digits == 5 ) point = MathFloor(Close[0]*1000)/1000;
>>361 NormalizeDouble(Close[0], MathPow(3, Digits & 4 >> 2) - 1);
って書いても期待通りの動作にはなってると思う。
>361 double ans=MathFloor(Close[0]*MathPow(10,(Digits>3)*2))/MathPow(10,(Digits>3)*2);
>>363 bool型の自動型変換か、その発想はなかったわw
それパクらせてもらえると
NormalizeDouble(Close[0], MathPow(3, Digits & 4 >> 2) - 1);
も
NormalizeDouble(Close[0], (Digits > 3) * 2);
て、より短く書けるし関数呼び出しが減らせるな。
365 :
Trader@Live! :2011/08/09(火) 16:52:43.07 ID:zzaJwCbm
コンパイル時に警告出るんじゃね? boolがTrueの時には1が入るけど 今後も保証されるんだっけ?
>>365 警告は出ないけど保証はないな。
てことで、これでいいんじゃね?
NormalizeDouble(Close[0], Digits & 4 >> 1);
んー、やっぱりわからない。
> if(Digits == 2 || Digits == 3) point = MathFloor(Close[0]*10)/10;
> else if(Digits == 4 || Digits == 5 ) point = MathFloor(Close[0]*1000)/1000;
これだと 81.32 → 81.3 になるよね...
1.2345 は 1.234 だし...
81.32/81.321 → 81.00
1.2345/1.23456 → 1.2300
としたいんだよね? 違う?
まず、切り捨てにしたいということなので NormalizeDouble() は使えない。
で、やりたいことがもし↑であっているのなら、
MathFloor(Close[0] * 100) / 100
だけでいいんでは。
>>365 保証されている。
http://docs.mql4.com/basis/types/bool Its internal representation is a long 4-byte integer number. Boolean
constants can assume the values of 0 or 1.
>>367 あ、ウソかw 81.32の場合は100じゃなくて1をかけるようにしないといけないねw
すみません どなたかsleep の使い方を教えていただけませんか? 以下は、瞬間的なシグナルを取得する関数ですが、この状態を5秒間保持した場合に、trueを返したいのです。 If (L_high <= price_a >= ma1) signal = true; else signal = false;
簡単な問題だけど、奥が広いな。
>>362 MathPow(3, Digits & 4 >> 2
この「>>」って何の演算子?
>>367 こう書きたかったんだと思う。初心者の俺にはこれがしっくり。
//USDJPY=81.23 / 81.234
if(Digits == 2 || Digits == 3) point = MathFloor(Close[0]);
//EURUSD=141.2345 / 141.23456
else if(Digits == 4 || Digits == 5 ) point = MathFloor(Close[0]*100)/100;
MathPowとかMathFloor使うと、見た目は美しいが、処理重くなりそう CPU 3GHzの時代に言うことではないが
インジケーターならそれほどでもないけど、EAで使うなら関数呼び出しはかな り遅いから気にした方がいいね。足/tickごとに呼び出される上にMQL自体が遅い から3GHzでもまったく足りない。 double x1, x2; init() { : if (Digits <= 3) { x1 = 1; x2 = 1; } else { x1 = 100; x2 = 0.01; } } start() { int i = Close[0] * x1; double d = i * x2; : }
すごいな。いままでPCの負担なんて考えたことなかった。Orz,,
PCの負担じゃなくて気にするのはオプティマイズの時間ね。 1秒でも、とは思わないけど1分でも速くなるようにはしたい。 あと、ゆとり質問だけど>>はビットシフトね。
ゆとりですか。そうですか。Orz,,
ところで、埋もれてしまった、
>>370 さんの質問にもこたえたげて。
>>373 for (int i = 0; i < ArraySize(hoge); i++)だと毎回ArraySizeが呼ばれるから
int size = ArraySize(hoge); for (int i = 0; i < size; i++)の方が効率いい?
って思って試してみたことがあるんだが、100回くらいの呼び出しだと
GetTickCount( )で計測する限りは差が出なかった。
意外と気にしなくてもいい気がしないこともない。
>>377 だからインジならいいけど、オプティマイズするならその100万倍の1万倍とか
呼び出しがされるわけで。
100万tickでBTする場合、1μ秒余計にかかれば1回のBTで1秒、オプティマイズ
だと10000秒増える。
MT5だとそれだけで100倍くらい速いんだっけ?
380 :
Trader@Live! :2011/08/10(水) 17:57:36.35 ID:MsPA8akg
MQLは、do while の構文って使えるんでしたっけ?
>>380 普通にwhileはあるけど、do whileは使えない
382 :
Trader@Live! :2011/08/10(水) 19:09:15.09 ID:MsPA8akg
ありがとう。 CとC++ にはあるようだけど、、。 まいっか。別な方法考えよう。
while(1) { ... if(expression) break; } で代用するしかないのかな
384 :
Trader@Live! :2011/08/10(水) 22:24:23.01 ID:C+caerku
>>383 Yes。
while (True)
の方がほんの僅か見栄えがいいかもしれん。
385 :
370 :2011/08/11(木) 01:22:33.28 ID:qcdkRNP1
すみません。
>>370 ですけど、
例えば「ボリンジャーバンドを○秒間超えた状態を保持した場合のみtrue を返す」
という条件などは結構複雑になるんでしょうか?
○秒間超えたことの精度にもよるけど、そう難しくもない。
387 :
Trader@Live! :2011/08/11(木) 01:28:26.46 ID:+EhXHWOV
>>373 この発想はなかなか出ないなあ。にわかプログラミングでは限界あるのか。
>>385 判定
Sleep(5000);
RefreshRate();
判定
か
static int t1 = 0;
if (判定 == true) {
if (t1 == 0) t1 = TimeCurrent();
else if (TimeCurrent() - t1 > 5000) ret = true;
} else t1 = 0;
インジならSleepは使えないので、後者のみ
389 :
370 :2011/08/11(木) 02:23:11.63 ID:qcdkRNP1
>>388 ありがとうございます。
If (price_a >= ma1)
Sleep(5000);
RefreshRate();
If (price_a >= ma1)
signal = true;
else signal = false;
このような形でよろしいでしょうか?
sleep についてよく分らないのですが、前の条件が維持する限りsleepして待ち続けるということでよろしいでしょうか?
390 :
Trader@Live! :2011/08/11(木) 02:37:58.20 ID:+EhXHWOV
sleep()って単に停止させるだけかと。
391 :
Trader@Live! :2011/08/11(木) 03:34:25.34 ID:+EhXHWOV
終値価格が20日移動平均より低い日数が14日続く場合 買いポジション用意。売りはその反対。 という逆張りのロジックを考えているのですが、 「終値価格が20日移動平均より低い日数が14日続く場合」という条件の挙動が不安低です。 すいません。 このプログラムに添削をしていただけますですか? int filterperiod = 14; int MAPeriod = 20; int counter1 = 0; int counter2 = 0; for (int i=0; i<filterperiod; i++) { int ma20 = iMA(NULL,0,MAPeriod,0,MODE_SMA,PRICE_CLOSE,i); if(ma20 > Close[i]) { counter1 += 1; } if(ma20 < Close[i]) { counter2 += 1; } } if (counter1 == filterperiod ){//買いポジション用意} else if (counter2 == filterperiod ){//売りポジション用意}
>>389 Sleep(5000);
5000ナノ秒プログラムを停止させる つまり5秒動かなくなる。
素直に388のコードでいいんじゃないの?
if (TimeCurrent() - t1 > 5000) ret = true
日本語に意訳すると、5000秒を経過したらret は trueである。(約83分)
>>391 まずint ma20だとダメだろうな。ユロドルとかだと1とか2になるよ。
doubleに直さないと
394 :
Trader@Live! :2011/08/11(木) 06:16:46.68 ID:+EhXHWOV
>>393 ああ、それだ。多分。ほんと有難うございます。
395 :
347 :2011/08/11(木) 07:22:04.67 ID:27PiPo7T
前に動かないって相談したが、 サポートにメールしたら動くように改良したexeを送ってくれて 無事動きました。 で、結果が散々で泣きそうです。
あ、ほんとだ。夜は寝ないといけない。笑えるww
399 :
Trader@Live! :2011/08/11(木) 17:50:21.03 ID:+EhXHWOV
質問です。MT4でEAをつくってるみなさん。主にどの時間足でトレードしてますか? フィルターとして長めの時間足を使うのはまた別に教えてください。 俺は トレードは15分足 フィルターで一時間足使ってます。
ドル円介入あたりから自作EAの各ペアの収益がチャブ付きだしたよ 見直し時ナノかな
各ペアで回すEAってどういう趣向なら作れるんだ? 各ペアで回すって事は1ペアあたりの取引回数は少ないってことだよねぇ それはつまり精度が高いということにもなるよな リスクを減らすにはそういったEAを各ペアで回した方がいいんだろうなぁ 俺は主要ペア一つにこだわって自作してるんだけど、そういう考えは止めた方がいいかな? 特に一つ気になる点として、各ペアで回せるような取引回数が少なくて精度の高いEAを作ったとしても、いざ回してみると結局似たような時期に各ペアが一斉にポジりだしたりして、リスクが減ってないって事にならないかという心配
ナンピンすると成績上がるってマジ? まぁ手法にもよるんだろうけど・・・ ナンピン系は俺も手を出そうか迷ってる 最近行き詰まってきてるからなぁ プログラム的にはさほど難しくないんだろうか? ナンピンで成績上がるっていうとイメージ的には逆張りだなぁ
こんなスレがあったのか。最近はじめてみたよEA。グラマーだけどEAはなかなか慣れないなあ。 DLLでC++でやりたいお
>>401 為替は株とは違うからその考え方は誤り
すべてのペアに高い関連性があるから
あるペアABを売るのなら
むしろ資金を分散して一斉に他ペアのAも売るほうがリスクが低いと思わないか?
あるいは逆に一斉に他ペアのBも買うのでもいい
ちょっと考えるとわかるけど世の中にABという通貨はない
AとBが独立して存在するだけだ
つまりペアABを売ったのなら
Aを売ったのかBを買ったのか答えられなければならない
これに答えられないロジックは全て堅牢性がない
堅牢性があるように見える時期に使い倒して逃げることしかできない
逆に明確に答えられるロジックであって
その上で別の基準でABに集中投入というやり方はある
リスクは高くなるけどね
ユロドルでやってるんですが、月平均のpipsでどのぐらいのを作れたら合格水準? いくつかよさげなのができても、月200pipsぐらいで壁があるように感じます
407 :
Trader@Live! :2011/08/12(金) 12:09:22.21 ID:X9gTebq1
>>406 個人的にはPF2くらいかPFが低くても月単位で勝率が100%に近いのを選ぶね。
>>407 PF2でも勝率が高くても、月に100pipsとかだといまいちを感じね?
俺も勝率とmaxDDは気にするけど、最低でも月300pips、欲をいえば400以上は最低ほしい
pips重要じゃね?
>>408 確かに、月300PIPS以上は欲しい
俺の現運用で計算したら
PF1.33
月平均298.PIPS
DD 4.70%
原資が少ないからこんな成績じゃまだ専業になれーん
>>409 月300取れてDD4.70%はすごい
本当にできるかと思ってたけど、そういうのできるんですね
>>410 あくまでも平均だからね、とれない月もあるよ
DD低いのは、意味のない固定ストップを入れないからだと思うよ
予期せぬ通信トラブル等のために保険的にいれるけど、大体はその時の地合?で内部で計算してるから
412 :
Trader@Live! :2011/08/12(金) 14:09:02.43 ID:X9gTebq1
>>411 俺も保険ストップで300pips入れてその時の相場に応じたロジックを
作り始めた。ATRの定数倍のストップを入れるやり方がランダムエントリー
でも利益出ると英語のサイトで読んだんだけどどうもそんなうまく行かない
悪寒。どんな動的ストップ使ってますか?
413 :
Trader@Live! :2011/08/12(金) 16:02:20.02 ID:dFk3TZfm
イニシャルデポジットを巨額にして0.01ロットで回せばDDは下がる あまり意味はない。 成績の基準は、不動産でも他でも投資や投機はイニシャルデポジットの利回りが年どれだけ になるかが問題だ。 利回りに直結するのはPFなんじゃない?
>>413 イニシャルデポジットを巨額にして0.01ロットで回してPFが良くても、
利回りはそんなに良くないな。
たいていのケースでまあまあ妥当といえる成績評価の指標は、 期間あたり利益率(リワード)÷期間あたりの利益率のばらつき(リスク) みたいなタイプのリスク・リワード・レシオじゃない?(例:シャープレシオ) この手の指標なら、資金に対するリスクの大小には影響されないから。
416 :
Trader@Live! :2011/08/12(金) 17:16:07.88 ID:dFk3TZfm
そのとうり。現実的な話、イニシャルデポジットが少額でPFが悪ければ 利回りは上がらない。イニシャルデポジットが少額の時は巨額の時よりDDは 拡大する。 比較や評価の対象として重要なのは、破綻しないでどれだけ儲かるか? なんじゃない?
この話題、何回も繰り返されるね。 次スレのテンプレに入れたら?
418 :
Trader@Live! :2011/08/12(金) 18:19:35.35 ID:X9gTebq1
MT5にはシャープレシオあるらしいね。
みんなすごいんだねぇ。指標とかなにを参考に作ってるの?デフォのiBands,iMAとかだけでやってんの? それともまったく新しいの0から作ってんの、それともそれらを組み合わせてんの?
420 :
Trader@Live! :2011/08/13(土) 01:51:18.47 ID:/a4nbPXr
指標?指標時はEAは停止する。 俺は一度作ったものを元に別のEAを作る。 基本フィルタ、エントリー、エグジットの流れは変わらないから、 後はフィルタやエントリー、エグジットなど個別に考える。 これってオブジェクト指向的だな、ってだっけ?
>>421 最後まで読んだ方が良い。ちゃんと答えてるよ。
>>419 俺はATRとMA以外全部自作。ATRも、概念は自分で考えてて、後から存在を知った。
>>420 そうかあ、個々の指標を理解したらあとはどう組み合わせるかのアイディア勝負って感じなんかねえ
なんというかPhotoshopの使い方はわかったが、絵心はない、みたいな状態なもんでさてどうするか。
とりあえずスキャルピングテクニックの本とかみて、その手法をシミュレートするようなものを作ってみようかなあと
>>422 そうかあ。ATRとかMACDとかパーツとして使えると思うんだけど、例えば時系列での動きを識別したいとかにどう使うかなあと。
たとえばこのあたりでピークになって一度さがってまたこう動くとか。しかも期間やらピークの高さやらはある程度柔軟で一種のパターン認識的な。
まあしこしこと作りこんで行くしかないのかなあ
>>422 いや、流石にそのくらい見れば分かるがな
ただ1行目が完全に勘違いしてるから、そこを突っ込んだだよ
言葉を知らないんだな、て思って
利食い値と損切り値を設定せずにイグジットポイントをロジックで決めてる人っている? 俺はそうしてるんだけど、これをやるとそのイグジットポイントが結果的に エントリーポイントとして最適になり、最終的にいつもドテンシステムになってしまうんだが・・・ つまり、ロジックが上昇すると判断したら買い、これ以上上昇しないと判断したらイグジット だとすると 「これ以上上昇しない」=売りのエントリーポイントとなってしまうわけだ 実際にドテンでないそういったシステムを作った時に、 イグジットポイントをドテンポイントにしたら利益が倍近くに膨れ上がったことがある しかしながら相場には「上昇する時」と「下降する時」という二つの状況だけでなく 「どちらに行くか全くわからない」という三つ目の状況があることも事実 DDの少ない優秀なEAを作るにはこの状況を的確に避けることが必要だが、 俺の場合この場所がどうしても見つからない いや、それが見つかったら苦労しないのだが、 むしろ考えてしまうね 全ての状況に上昇する可能性と下降する可能性があるのではないかと その可能性の「偏り」がある限りポジっているべきなのではないかと 冷静に考えるとこの考え方自体に無理があるのはまぁ何となく察してはいるのだが、 エントリー時に利食い値と損切り値を決める事は 収益の可能性を削ることになりかねないと俺は思うわけだ あるシグナルでエントリーし、価格が利食い値に達した時 そのシグナルがまだ消えていなかったらどうする?ということだ。 利益が伸びる可能性がある限り保持しているべきじゃないか?と考えるわけである。 このような脳味噌を持っているとTP、SLを設定することにメリットを見出だすことが 全くできないのだが、このタイプで優秀なEAが存在することも事実だ ここまで持論展開でだらだらと語ってきたわけだが、何かもう根本的に 考え方を改めたほうがいいような気がしなくもないのは気のせいか・・・ TPSL設定のメリットについて、または根本的な改善の指摘でもいい 君らの持論を聞かせておくれよ
>>426 > そのシグナルがまだ消えていなかったらどうする?ということだ。
> 利益が伸びる可能性がある限り保持しているべきじゃないか?と考えるわけである。
保持すればいいやん。
4番目?として中休み、つまり押し目戻り目を作ったあと、’そのまま上昇か下降を継続するのはよくあること。
長期でトレンドが発生している時には特に。
アグレッシブにドテンを二回するのも手。
保守的に逆張りを避けるのも手。
結局、戦略次第。
>>426 概ね
>>427 に同意だけど、俺もイグジットポイント=逆エントリーポイントがベースですね
別のスレで自称勝ち組のバカを煽りつつ似たようなことを書いたけど、バカに煽りのほうに食いつかれてしまってw本題についてはスルーされたw
安定してるなら、それでよしとし、別の戦略を考えて併用するほうが効率はよいとおもいます
>>420 頭悪い奴の文章すぎる゚( ゚^∀^゚)σ゚。ヶヶラヶラヶラ
ちょっと質問ノシ なんかあまりMT5の話題がないみたいだけどあまり使われてないのかな。 MT5のEAの最適化の速度って純粋にPC1台(コア1コ)の状態でMT4と比べて 速くなってる? (faiさんの記事みると、単独の性能は同じような書きっ ぷりだったんだけど)
>>428 人それぞれだろうけど、
> イグジットポイント=逆エントリーポイントがベースですね
オレは一度、待ちに入るかな。
イグジットしたって事は、それ以上利益が延びないと判断した訳で、
その判断はヨコヨコと判断したか、あるいは判断するまでに最適なエントリーポイントを逃している可能性大だから。
すみません。 過去のオーダーから、複数のマジックナンバーをピックアップしてそのトータルを出したいのですが、スマートに書く方法はありますか? 以下の書き方は間違っていますか?(Magic1とMagic2の場合) for (int i = OrdersHistoryTotal() - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if ((OrderMagicNumber() == Magic1) || (OrderMagicNumber() == Magic2)) { Count++; profit_total += OrderProfit(); } } }
433 :
Trader@Live! :2011/08/14(日) 20:15:44.39 ID:TtHPyvCX
Bars in test 2772 Ticks modelled 1664931 Modelling quality 90.00% Mismatched charts errors 0 Initial deposit 10000.00 Total net profit 421.43 Gross profit 456.46 Gross loss -35.03 Profit factor 13.03 Expected payoff 4.48 Absolute drawdown 44.90 Maximal drawdown 130.44 (1.29%) Relative drawdown 1.29% (130.44) Total trades 94 Short positions (won %) 51 (98.04%) Long positions (won %) 43 (97.67%) Profit trades (% of total) 92 (97.87%) Loss trades (% of total) 2 (2.13%) Largest profit trade 5.17 loss trade -23.03 Average profit trade 4.96 loss trade -17.52 Maximum consecutive wins (profit in money) 85 (421.46) consecutive losses (loss in money) 1 (-23.03) Maximal consecutive profit (count of wins) 421.46 (85) consecutive loss (count of losses) -23.03 (1) Average consecutive wins 46 consecutive losses 1 MACDのサンプル ざっと1ヶ月しかBTしてないんだけど。PF13って異常じゃね?
PF∞もつくれるお
435 :
Trader@Live! :2011/08/14(日) 22:49:42.91 ID:EHFeR/8a
436 :
Trader@Live! :2011/08/15(月) 08:57:19.53 ID:7RJXnP5T
MT4のEA開発を最近始めた者です。
バックテストのデータとしてFXDD(
ttp://global.fxdd.com/jp/mt1m-data.html )からダウンロードし、
History Centerでインポートしようとしても出来ません。
Browseでダウンロードしたファイルを選択して、OKを押してもインポートされません。
通常、ファイルを選択した時点で下にプレビューが出るようですが、それも出ません。
同じ経験をしたり、何か原因を思い当たる方がいたら、教えてください。
お願いします。
>>436 初心者スレ見てこい。
何度も同じ質問と答えが書かれてる。
438 :
Trader@Live! :2011/08/15(月) 09:34:51.11 ID:8QyQVCsm
豊嶋先生のライブラリを使ってEA作っている人います? トレールを使ったEAの場合、バックテストで結構エラー発生しませんか? 使いやすいライブラリなので重宝しているんですが、、、 どうしようかと悩みどころ。
トレールの幅がストップレベルより小さいんじゃ内科医
440 :
Trader@Live! :2011/08/15(月) 11:36:27.12 ID:F3nGVvRH
>>438 トレールでエラーが出る2大原因
原因1.
439が指摘しているようにSLがマーケットの値に対して近すぎる。これは
Marketinfo(Symbol(), MODE_STOPLEVEL)でポイント数を取得できるので
エラー処理が必要。
原因2.
SLがフリーズレベル内に入ってしまったにもかかわらず変更しようとした。
大体1PIPのブローカーが多いようだが決済間近とみられる値は変更でき
なくなる。この値は
Marketinfo(Symbol(), MODE_FREEZELEVEL)で取得。
441 :
Trader@Live! :2011/08/15(月) 12:03:18.01 ID:8QyQVCsm
うん?ライブラリが問題でなく。 トレール手法だと、(SLなどの設定で)結構エラーが出るということ?
442 :
Trader@Live! :2011/08/15(月) 12:21:50.16 ID:F3nGVvRH
>>441 すまんがそのライブラリは知らん。でもエラーが出るならライブラリにも問題があるんだと
思う。おそらくOrderModify()の前にストップレベルかフリーズレベルを調べてないんだと思う。
443 :
Trader@Live! :2011/08/15(月) 13:07:26.45 ID:8QyQVCsm
おっしゃるとおり、マーケット情報を所得していないようなので、 SL値がよろしくない値だとエラーがでるのかも。 エラー値は以下の二つ Invalid stops.//こっちは解るが。 Modification denied because order too close to market //マーケットが閉じてますのでオーダーできませんって。 バックテストなのに意味不明です。 なんにしろ、ライブラリを修正するか、本体を修正するかやってみます。
>>441 ライブラリを見たらストップレベルもフリーズレベルも調べてないね。
そのまま使うなら数値を大きくするしかない。
ライブラリを使わないでEAを作るほうが、後々有利になるよ。
445 :
Trader@Live! :2011/08/15(月) 13:16:16.38 ID:8QyQVCsm
あああ、見てくださったんだ。ありがとう。 そうですか、ライブラリ使わない方が後々いいかもですか。 豊嶋先生とこの本のおかげで、いろいろ勉強させてもらったけど、 そろそろ卒業の頃ですね。
>>443 Modification denied because order too close to market
->注文がマーケット(この場合は現在値かな)に近いので修正できません
と言ってる。ずばり>440の意味でしょ。
>>443 Modification denied because order too close to market
オーダー(の値)が(現在の)マーケット(の値)に近すぎるので変更は拒否された
448 :
Trader@Live! :2011/08/15(月) 13:27:57.96 ID:8QyQVCsm
449 :
Trader@Live! :2011/08/15(月) 13:47:21.26 ID:8QyQVCsm
完全EAに慣れるまでは、ライブラリの変更でやってみたいと思います。 ちょっと甘えさせてもらってすいません。 指値、逆指値の値が「MODE_STOPLEVEL」「MODE_FREEZELEVEL」以内ならOrdermodifyさせず。 という内容を追加すればいいですよね。
450 :
Trader@Live! :2011/08/15(月) 14:41:03.85 ID:F3nGVvRH
>>449 STOPLEVELはそれでおk
でもFREEZELEVELはちょと違う。現在既に注文済みのSLやTPが
マーケットの値(AskかBidかは注文種別で変わる)から近すぎると
変更できなくなる。例えば売りのSLが80.010円、Askが80.015円
でMarketinfo("USDJPY", MODE_FREEZELEVEL)で10が返ってきた
とするとこのブローカーのフリーズレベルは1PIP。上記例だと既に
0.5PIPの近さなのでFREEZEされて変更できなくなる。
FREEZELEVELって、なんでこういう縛りがあるの?
452 :
Trader@Live! :2011/08/15(月) 17:28:08.81 ID:8QyQVCsm
ありがとう。いろいろググってみたものも、FREEZELEVELをどうすればいいのか よくわからなかった。 MODE_FREEZELEVELの値を手に入れたとして、それをどう処理につかうのか よろしければ教えてください。
453 :
Trader@Live! :2011/08/15(月) 18:47:11.09 ID:F3nGVvRH
>>451 おそらくブローカーは客の変更がLP(Liquidity Provider)に届く前に
LP側で決済され、対顧客ではSLやTPが変更されて損することを
恐れているのだと思う。実際0のブローカーも多いよ。
>>452 適当な例ね。買いオーダーで、すでにオーダーはselectされていると仮定。
if (IsTesting() || IsOptimization()) {
double freezelevel = 0.0001;
double stoplevel = 0.0005;
} else {
freezelevel = MarketInfo(Symbol(), MODE_FREEZELEVEL) * Point;
stoplevel = Marketinfo(Symbol(), MODE_STOPLEVEL) * Point;
}
if (MathAbs(Bid - OrderStoploss()) <= freezelevel)
return (-1);
if (MathAbs(Bid - new_stop_loss) <= stoplevel)
return (-1);
以後OrderModify
----------
テストのときと本番の時では値が違ったりするから上の例のように少し厳しめの値で
テストすることをオヌヌメ。
454 :
Trader@Live! :2011/08/15(月) 19:12:10.23 ID:8QyQVCsm
ありがたう。わざわざプログラムで示してくださって申し訳ないです。 そうかバックテストの時は、マーケット情報を取れないから仮の値を与えて、、、 MODE_FREEZELEVELとMODE_STOPLEVELの違いは、 Bid - OrderStoploss()と、 Bid - new_stop_lossの違いなのですね。 ここらは、もうちょっと勉強します。 いや、本当にありがとうございました。
455 :
454 :2011/08/16(火) 00:13:22.80 ID:8L7qpX7I
トレード(Order)系の関数はむずかしいな。頭混乱してきた。
456 :
454 :2011/08/16(火) 02:18:36.94 ID:8L7qpX7I
昨日からずっと、この件で考えていたのですが、どうやら限界なようです。 ライブラリを紐解いていくと、OrderModify()が成功するまで一定時間ループさせる関数があってその為に意味もなくバックテストずっと、エラーが出しっぱなしだったようです。 ライブではループさせてもそれ自体は問題なく、バックテストで不必要なループから抜け出したい。 そういう改造を加えようと思いました。(ごめんなさいMODE_FREEZELEVEL/MODE_STOPLEVELは不必要になるのかな?) どなたか良いアドバイスを、、、。 オリジナルのプログラムコードの一部です。。 ★// スタート関数 int start() { ・・・・・ MyTrailingStopHL(TSPeriod, MAGIC); ・・・・・ } ★トレイングストップ関数 // HLバンドトレイリングストップ(TStype=1) extern int TSPeriod = 5; // トレイリングストップ用HLバンドの期間 void MyTrailingStopHL(int period, int magic) { double spread = Ask-Bid; double HH = iCustom(Symbol(), 0, "HLBand", period, 1, 1)+spread; double LL = iCustom(Symbol(), 0, "HLBand", period, 2, 1); if(MyCurrentOrders(OP_BUY, magic) != 0) MyOrderModify(LL, 0, magic); if(MyCurrentOrders(OP_SELL, magic) != 0) MyOrderModify(HH, 0, magic); }
457 :
454 :2011/08/16(火) 02:19:32.17 ID:8L7qpX7I
★オリジナルのライブラリ // オープンポジションを変更する bool MyOrderModify(double sl, double tp, int magic) { int ticket = 0; for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS) == false) break; if(OrderSymbol() != Symbol() || OrderMagicNumber() != magic) continue; int type = OrderType(); if(type == OP_BUY || type == OP_SELL) { ticket = OrderTicket(); break; } } if(ticket == 0) return(false); sl = NormalizeDouble(sl, Digits); tp = NormalizeDouble(tp, Digits); if(sl == 0) sl = OrderStopLoss(); if(tp == 0) tp = OrderTakeProfit(); if(OrderStopLoss() == sl && OrderTakeProfit() == tp) return(false); int starttime = GetTickCount(); while(true) { if(GetTickCount() - starttime > MyOrderWaitingTime*1000) { Alert("OrderModify timeout. Check the experts log."); return(false); } if(IsTradeAllowed() == true) { if(OrderModify(ticket, 0, sl, tp, 0, ArrowColor[type]) == true) return(true); int err = GetLastError(); Print("[OrderModifyError] : ", err, " ", ErrorDescription(err)); if(err == ERR_NO_RESULT) break; if(err == ERR_INVALID_STOPS) break; } Sleep(100); } return(false); }
あっ 7bit氏のサイトから落とすファイル名は common_functions.mqh です
461 :
Trader@Live! :2011/08/16(火) 12:37:32.79 ID:LcoWxMz5
>>455 うお、今度はそう来たか。
くそー。乗りかかった船だ。15分ほど待ってて。
462 :
Trader@Live! :2011/08/16(火) 13:03:42.02 ID:LcoWxMz5
こんな感じでどうかな。コンパイルもテストもしてないからバグってたらすまん。 extern int TSPeriod = 5; // トレイリングストップ用HLバンドの期間 extern int FREEZELEVEL = 10; extern int STOPLEVEL = 50; void MyTrailingStopHL(int period, int magic) { double spread = Ask-Bid; double HH = iCustom(Symbol(), 0, "HLBand", period, 1, 1)+spread; double LL = iCustom(Symbol(), 0, "HLBand", period, 2, 1); if(MyCurrentOrders(OP_BUY, magic) != 0) MyOrderModify(OP_BUY, LL, 0, magic); if(MyCurrentOrders(OP_SELL, magic) != 0) MyOrderModify(OP_SELL, HH, 0, magic); } bool MyOrderModify(int op, double sl, double tp, int magic) { int ticket = 0; for(int i=0; i<OrdersTotal(); i++) { if(OrderSelect(i, SELECT_BY_POS) == false) continue; if(OrderSymbol() != Symbol() || OrderMagicNumber() != magic) continue; int type = OrderType(); if(type == OP_BUY || type == OP_SELL) { ticket = OrderTicket(); break; } } if(ticket == 0) return(false); sl = NormalizeDouble(sl, Digits); tp = NormalizeDouble(tp, Digits); if(sl == 0) sl = OrderStopLoss(); if(tp == 0) tp = OrderTakeProfit(); if(OrderStopLoss() == sl && OrderTakeProfit() == tp) return(false); if (IsTesting() || IsOptimization()) { double freezelevel = FREEZELEVEL * Point; double stoplevel = STOPLEVEL * Point; } else { freezelevel = MarketInfo(Symbol(), MODE_FREEZELEVEL) * Point; stoplevel = MarketInfo(Symbol(), MODE_STOPLEVEL) * Point; }
463 :
Trader@Live! :2011/08/16(火) 13:04:14.31 ID:LcoWxMz5
if (op == OP_BUY) double market_price = Bid; else if (op == OP_SELL) market_price = Ask; else return (false); if (MathAbs(market_price - OrderStopLoss()) <= freezelevel || MathAbs(market_price - OrderTakeProfit()) <= freezelevel) { Print("MyOrderModify error: Market price is inside freeze level"); return (false); } if (MathAbs(market_price - sl) <= stoplevel || MathAbs(market_price - tp) <= stoplevel) { Print("MyOrderModify error: SL or TP is inside stop level"); return (false); break; } for (i = 0; i < 10; i++) { if(OrderModify(ticket, 0, sl, tp, 0, ArrowColor[type]) == true) return(true); int err = GetLastError(); Print("[OrderModifyError] : ", err, " ", ErrorDescription(err)); if(err == ERR_NO_RESULT) break; if(err == ERR_INVALID_STOPS) break; Sleep(3000); } return(false); }
464 :
454 :2011/08/16(火) 14:27:00.46 ID:dnSDFXIg
めちゃめちゃありがとうございます。今日は会社で動作は確認していませんが、取り急ぎお礼まで。 早く帰ってテストしたいです。
465 :
454 :2011/08/16(火) 19:30:40.13 ID:8L7qpX7I
>>462 さま
ありがとうございます。ほぼ問題なく動きました。
(break or continue used within some cycle only というのはでましたが、
こちらは私の方で処理します。)
今まで、エラーでまくりでバックテストを諦めてたので、ほんとうに助かります。
ずっと、フォワードテストを長い時間かけてようやくライブに投入してました。
関数もパラメータが二つ増えただけなので、EA達も少ない修正だけで済むようです。
にしても、今回プログラム力の違いを感じました。
指標やエントリーのシグナルは、なんちゃってプログラムで設定できても、
こういった、トレードのエンジン部分を修正するのはにわかプログラマでは難しいなと。
そのために、カプセル化したライブラリがあるんでしょうけど。。
いやあ。もっと勉強します。本当にありがとうございました。
ロジックの種類によっては連続負けトレードの回数も立派な変数として使えることを発見! これってもしかして微妙かもですw 同じように他に使っている人いますか?
負け回数カウントして一定数到達したらそこからロジック変わるやつ使ってる
逆に連続勝ちの間は建枚数をどんどん増やしてる うまく組めば資金の膨れ方がどんと上がる
>>467 ,468
そのやり方良さそうですね
私はドローダウンを抑えるのに効果的でした
ロジックは変えないけど、パラメータを変えて対応してる。
>>465 それは良かった。
初めてそのライブラリ見たけど有名なライブラリなの?あまり実戦向きじゃない気がする。
IsTradeAllowed()はなにか一つのEAがmodifyやsendやcloseすれば必ず数秒間は
Falseになるし、Sleepも100じゃ全然足りない。stoplevelやfreezelevelの罠はいろいろ
なブローカーで実際にエラー食らって損しないとわからないしね。頑張ってください。
472 :
454 :2011/08/16(火) 20:31:53.58 ID:8L7qpX7I
そうなのかあ。 豊嶋さんの本でMT4を弄りだした人たちは大概このライブラリ使ってるかも。 上にあった7bitさんのライブラリとか、良さそうですね。 Cとか勉強した方がいいのかなあ。
LibOrderReliable_V1_1_2.mq4 も有名なライブラリかも。
一つの既存インジだけでパラメータやタイミングをちょっといじるだけで 月200pips以上 DD10%以内を達成できてる人いますか? やっぱり複数のロジックを組み合わせるか、自分でインジやロジックを作り出さなきゃ そのレベルは達成できないのでしょうか?
OrderClose を実行時に、全てのポジを勝手に閉じられるんですが、これはプログラムが長すぎるとかが原因ですか? どうも OrderTicket()が取得できてないような機がするのですが
>>475 機能を大きく分けてパーツ化し
問題の切り分けの見通しを良くするのが先決ではないですかね
ベースループでこんな感じにOrderSelectしてますか?
for(int i = OrdersTotal() ; i >= 0; i-- )
{
if(!OrderSelect(i, SELECT_BY_POS , MODE_TRADES)) continue;
}
>>474 相場の状態によって損しないための入り口の見方が違ってきますので
1つだけでは難しいと思ってますけどどうでしょうかね
構成として相場状態の判定→上げ相場・下げ相場・横相場→ボラ有無→順張り・逆張り→エントリする・しない
そこにpivotやMAの近似ヒットテストなど引っ掛けるなど人間の考えるパターンをコード化しようとすると
クラス機能がないと全体を構成する機能をまとめにくいですね
判定結果に対して逆行するのはどうにもならない中でDD10%以内は目指したいですね
Pivotってなんかの役に立ててる人いる?一応通過率は70%程度なので なんらかの役には立ちそうな気はするけど
>>478 利食い、損切り、増し玉などで判定に使えると思いますが
用途によって使用方法が変わってくると思います
>>477 ありがとうございます。やる人というのはそこまでちゃんとやるんですね。
そこまでいくと最適化も大変なことになりそうですし、やはりPC買い替えも
検討するべきかと思えてきてしまいます・・・
少しずつ前進してきている気はしていましたが、まだまだ先は長そうです・・・
>>480 他の人はどうやってるかは知らないですが
状態を無視した場合、よく言われる騙しなどにかかったりするので
セットアップでエッジが出せるか前提条件を判定した上で
仕掛けないとDDが悪化するということでおけ
>>475 ありがとう御座います。
以下のような関数を12個(MNumber1 - MNumber12)一つのEAロジックと一緒に入れてますが、
なぜかMNumber7 - MNumber12 のクローズ時に全てのポジションを閉じてしまいます。
リアルで使ったところ、手動ポジションも閉じられました。
Void CloseOrder1()
for (int i = OrdersTotal() - 1; i >= 0; i--) {
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
Print("Error in OrderSelect! Position:");
} else {
if (OrderType() == OP_BUY) {
if (OrderMagicNumber() == MNumber1) {
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),slippage);
}
}
if (OrderType() == OP_SELL) {
if (OrderMagicNumber() == MNumber1) {
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),slippage);
}
}
}
}
}
>>482 Void CloseOrder1()
{
for(int i = OrdersTotal() ; i >= 0; i-- )
{
if(!OrderSelect(i, SELECT_BY_POS , MODE_TRADES)) continue;
if( OrderSymbol() != Symbol() ) continue; // 他の通貨での注文であればなにもしない
if( OrderMagicNumber() != MagicNumber ) continue; // 該当マジック以外はなにもしない
// 他に除外条件があればここに追加
if (OrderType() == OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),slippage);
}
if (OrderType() == OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),slippage);
}
}
}
>>483 ありがとう御座います。
早速試してみます。
あと、現在開いてるポジションのマジックナンバーから、そのポジが閉じたのを確認して別のポジを閉じたいのですが、以下の書き方でシグナルを取得できません。
間違っているのでしょうか?
bool signal1(){
bool sig = false;
for(int i = OrdersTotal() ; i >= 0; i-- )
{
if(!OrderSelect(i, SELECT_BY_POS , MODE_TRADES)) continue;
if( OrderMagicNumber() == MagicNumber ) continue;{
sig = true;
}
}
>>485 bool signal1(int magic)
{
bool sig = false;
int cnt=0;
for(int i = OrdersHistoryTotal()-1 ; i >= 0; i-- )
{
if (!OrderSelect(i, SELECT_BY_POS , MODE_HISTORY)) continue;
//if ( OrderComment() != "[sl]" ) continue; // ストップ終了
if ( OrderMagicNumber() == magic )
{
sig = true;
break;
}
}
return(sig);
}
>> 486 ありがとう御座います。 質問なのですが、この場合、ヒストリーに1個でも該当magic number があると強制終了となりますか? また、S/Lとは限らないので、以下の書き方でもよろしいでしょうか? for文でカウントする数を1にした場合、何らかのアクシデントで、該当ポジが閉じた直後に別のポジが閉じ、カウントが間に合わないこともあるのでしょうか? 無知な質問ですみません。 bool signal1(int magic) { bool sig = false; int i=0; // for(int i = OrdersHistoryTotal()-1 ; i >= 0; i-- ) for(int i = 0 ; i >= 1; i++ ) { if (!OrderSelect(i, SELECT_BY_POS , MODE_HISTORY)) continue; if ( OrderMagicNumber() == magic ) { sig = true; break; } } return(sig); }
>>487 その辺は検証してないからわからないですが
後ろから-1でカウントしないと新しい日付の最新終了ポジへの到達時間が長くなりますよ
あとマジックのヒットでbreakするとloopを抜けることになります
>>487 こういうことがしたいってこと?
bool IsAliveOrder(int magic)
{
for(int i = OrdersTotal() ; i >= 0; i-- )
{
if(!OrderSelect(i, SELECT_BY_POS , MODE_TRADES)) continue;
if( OrderSymbol() != Symbol() ) continue; // 他の通貨での注文であれば無視
if( OrderMagicNumber() != MagicNumber ) continue; // invalid magic
return(true);
}
return(false);
}
>>489 1本のクローズを察知してもう1方を閉じたいだけなのですが、単純にマジックが無い状態をシグナルにしても駄目みたいで、上記試してもみたのですが、駄目みたいです。
無い状態なので、以下でいいかと想ったのですが、これも駄目みたいです。バックテストだからでしょうか?
bool IsAliveOrder(int magic)
{
for(int i = OrdersTotal() ; i >= 0; i-- )
{
if( OrderMagicNumber() == MagicNumber ) continue; // invalid magic
return(true);
}
return(false);
}
>>490 発注時にマジックがちゃんとセットされているか確認すると前にすすめるかもしれないです
>> 491 ありがとう御座います。 とりあえず、色々学べたので忘れないうちに試してみます。
バックテストの効率化を考えて 今後は、豊嶋先生のライブラリ以外のものを検討しなきゃと考える。 ライブラリを使わないでEAができたらいいのですが、 実際のEA作りにはなるべく、オーダー系の関数などばかりに力を注ぎたくないので そのあたりはやっぱりカプセル化されている方がいいなと。 豊嶋先生のライブラリのよさは、なんといっても日本語のマニュアルがあってサンプルも豊富なので 全くの初心者が始めるにはこれ以上の適したライブラリはないかと。でもねえ。 とりあえず、上にあった 7bit氏のライブラリ LibOrderReliable_V1_1_2.mq4 から吟味していきます。 特に、Ordersend関数で直接価格を入れるのでなくて、現在価格からpip値を指定するような 修正された関数があるのが最低条件かな。 儲けるためのテクニカル指標の吟味の前に、こういったベースの部分は安心して任せるものにしておきたいっす。
素直に考えれば 豊嶋氏のライブラリをよく読解して 自分がやりやすいように あるいは欠陥だと思う部分を直して使えばいいんじゃない? これができないようじゃ 他のライブラリ使っても 「よくわかんないけどなんか変だから他を使う」の永久ループだろ
495 :
Trader@Live! :2011/08/17(水) 15:05:25.86 ID:m6gqYbzD
質問いいっすか? マッデン3DSの日本版発売しますかね? お願いしますm(- -)m
>>494 それもそうだね。隣の芝生が青く見えるような永久ループはいやだわ。
しばらくはテクニカル関係の勉強よりトレード関連の関数を勉強した方が
いいのかも。
オライリーからMQL本出てくれないかな。 表紙は牛か熊で orz..
>>497 本出すほど書くことないだろ?Luaより薄い本になるぞw
499 :
Trader@Live! :2011/08/17(水) 19:59:01.79 ID:sPOF1UaA
牛か熊のオライリー本きぼんぬ。 MySQLと間違って買う人殺到。
>>498 薄い本ということはコミケで売るわけですね
501 :
Trader@Live! :2011/08/17(水) 22:50:10.43 ID:lFEHAN1/
AlpariのMT5 DemoでOrder出すとS/LとかT/P反映されないけど Metaquote本体のMT5だと反映されます。 類似例ご存知のかたいらっしゃいますか? ===以下Order処理=== #include <Trade/Trade.mqh> CTrade MyTrade; CPositionInfo myposition; double CurrentBid; double CurrentAsk; int OnInit() { //--- //--- return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- if(!RefreshRates()) return; double aaa=CurrentAsk + 0.1; Print(aaa); MyTrade.PositionOpen(_Symbol,ORDER_TYPE_BUY,0.1,CurrentAsk,1.43,1.45,NULL); } //+------------------------------------------------------------------+ bool RefreshRates() { MqlTick tick; if(!SymbolInfoTick(_Symbol, tick)) return(false); CurrentBid = tick.bid; CurrentAsk = tick.ask; return(true); }
502 :
490 :2011/08/18(木) 02:15:21.41 ID:cf+gWr4f
EA内で二つのポジションを管理してるのですが、1つのポジションが閉じたらもう一方もすぐに閉じるっていうのがうまくできません。 昨日教えていただいた分を改変したり、マジックナンバーを数字で固定してみましたが、どうも一方が閉じたっていうのをシグナル化するのに失敗しています。 何か解決策のヒントでもありましたらお願いします。
>>500 だれか有名どころのEAを擬人化して
ヤンデレ話の薄い本でも作らねーかなw
>>502 ManaKana.setTickets(ticket1, ticket2);とかして2つのチケットを関連付けて
ManaKana.doCheck();とかしてチェックするんじゃダメの?
MT4が落ちたら関連が崩れる問題は、マジックナンバーの上位1バイトとか
使って関連付けるオーダーは必ず共通の値を持つとかしとけばinit()内で
関連付けを復帰できる。
MQLの基本的な変数の範囲について質問です。 下においての、x1の変数の初期化と代入をした場合、 変数の値はどこまで保持できますか? いわゆるローカル変数としてfunction内のAまで保持できる と思っていいんですかね。 function abcd(){ { int x1 = 1;//@ } int x2 = x1;//A } int x3 = x1;//B
はい
ミスターブレイン氏のfx raptor使ってる人いる?
>>506 ありがとう。
functionってキーワードを関数名につけちゃったw
509 :
490 :2011/08/18(木) 14:23:01.32 ID:cf+gWr4f
>>504 ありがとう御座います。
色々調べてみましたが、言ってる意味が全く理解出来ません。
C言語あたりからやり直した方がいいですか?
MT5の最適化についての質問です。 MT4では最適化での制限に、例えば最大連敗数10を加えることができました。 MT5で同じことをやろうとするには、どのようなコードを書けばいいのでしょうか。
MT5使ってる人少ないから、誰も返事できないね。 MT4でやればどうかしらん。
512 :
510 :2011/08/19(金) 00:34:41.38 ID:0gVGPw8A
ありがとうございます。自分でなんとかしてみます。
手動オープンのマジックを取得する方法はありますか? 0がマジックナンバーなのでしょうか?
switch の case にユーザー関数使う方法ありませんか? switch OrderMagicNumber() case Magic_number:break; integer number expected って出てしまいます。
>>514 defineならいけるんだけどなー
ちなみにユーザー関数じゃなくて変数だよな?
イベントの起きる時間を指定する場合どういう書き方がいいでしょうか? 例えば、 ニューヨーク時間午前1時から2時までのレンジ幅を高値で抜ける時 とか、、どう表現すればいいですか?
>>517 普通にstart()内でTime[0]見て判定。
tickが来ないと動かないから厳密に時間ぴったりは無理だけど・・・・・・
どうしても厳密にって言うならDLL書いてスレッド作ってMT4にsendmessage
して強引にstart()呼ぶ(呼ばせる)方法もあるけど、徒労だろう。
ありがとう。ごめん、ちょっと書き方悪かった。 ニューヨーク時間の午前1時から、2時までの間のレンジ幅(高値、安値) を調べるには?
>>519 あ、そういう意味だったのか、それならiBarShiftで時間をバーのインデックスに変換して
あとはiLowest/iHighestで期間中の高値安値が取得できるよ。
start_time = datetime(14:00:00) end_time = datetime(15:00:00) int shift_start = iBarShift(NULL, 0, start_time) int shift_end = iBarShift(NULL, 0, end_time) iLowest(NULL, 0, MODE_LOW, shift_start - shift_end, start_time) iHigh(NULL, 0, MODE_HIGH, shift_start - shift_end, start_time) これでいいのかしらん。 ニューヨーク午前1時は、ローカル時間(PCの時計?)では、14時だったのでこうしたけど。 ググってみるとサーバー時間の方がいいとか。 頻繁にサーバーを変えるばあいは、どうしたものか。。。
iLowest(NULL, 0, MODE_LOW, shift_start - shift_end + 1, shift_end) iHigh(NULL, 0, MODE_HIGH, shift_start - shift_end + 1, shift_end) じゃない?
ありがとう。5番目のパラメータは、最後のバーの番号でしたね。 「shift_start - shift_end + 1」最初と最後のバー(午前1時と2時のバー)も含む っていう意味ですね。そうです。訂正ありがとうございます。
うーん、DDの定義がよくわからなくなってきた。 Absolute drawdown 5542.52 Maximal drawdown 9146.52 (61.60%) Relative drawdown 61.60% (9146.52) こんな風に出るんだけど、グラフは右肩上がりなんだよね。 最も高いピークと低いピーク取ってるわけじゃないだろうし、そもそもこの3つのDDってどうやって計算してんだろ?
526 :
517 :2011/08/20(土) 07:05:41.19 ID:61rj7pH3
ローカル時間だとまずいでしょうかね?
>>525 初心者スレでもスルーされるレベルの質問じゃなかろうか
>>514 括弧が足りないだけ。
switch (OrderMagicNumber())
529 :
517 :2011/08/20(土) 07:48:59.20 ID:61rj7pH3
iLowest()とiHighest()の返り値は、バーの番号か。 という事は、最安値と最高値を表示するには、これでいいのかな。 この際のバーの番号の0地点はカレントのバーなのか、スタート地点の番号か、どっちら。 lowest_shift = iLowest(NULL, 0, MODE_LOW, shift_start - shift_end, shift_end) highest_shift = iHighest(NULL, 0, MODE_HIGH, shift_start - shift_end, shift_end) Low[lowest_shift] High[highest_shift]
531 :
517 :2011/08/20(土) 07:59:07.25 ID:61rj7pH3
ありがとう。0がカレントならこれじゃ駄目だな。出直します。
1時間単位のHi/Loが知りたければTime[x]が希望の時刻のHigh[x]/Low[x]を 見ればいいだけ。
533 :
517 :2011/08/20(土) 08:06:39.33 ID:61rj7pH3
そうなのですが、時間は汎用性(分でも使えるように)を持たせたいので、、、。 といっても、できそうでないので、それで考えてみます。
534 :
517 :2011/08/20(土) 08:19:54.26 ID:61rj7pH3
これでどうかな。複雑になりすぎちゃったかな。 start_time = datetime(14:00:00) end_time = datetime(15:00:00) int shift_start = iBarShift(NULL, 0, start_time) int shift_end = iBarShift(NULL, 0, end_time) lowest_shift = iLowest(NULL, 0, MODE_LOW, shift_start - shift_end +1, shift_end) highest_shift = iHighest(NULL, 0, MODE_HIGH, shift_start - shift_end +1, shift_end) Low[lowest_shift + shift_end] High[highest_shift + shift_end]
>>514 括弧も足りないけど、integer number expectedなら
上で出てるようにcaseに変数使ってるのが原因。
>>533 それならTime/High/Lowの代わりにiTime/iHigh/iLowを使えばいいだけ。
Low[lowest_shift] High[highest_shift] じゃない? 天井の値を得るのに、High[ iHigest(Null, 0, count, start) ]という表現はよく使うよ。 ただ、目的が「値」じゃなくて、インデックスなら、lowest_shiftとかで取得できてるんじゃない?
>ニューヨーク時間午前1時から2時まで なら1時間足のHi/Loをそのまま見ればいいだけなのに...
538 :
517 :2011/08/20(土) 10:03:44.22 ID:61rj7pH3
>>536 ありがとうございます。
Low[lowest_shift + shift_end]
High[highest_shift + shift_end]
Low[0]がカレントの安値、High[0]がカレントのバーの高値を表示するらしくて
一方、lowest_shiftは、ニューヨークwwの午前一時のバーを[0]とした中の最も安値のバーの位置。
ですので、カレントのバーからニューヨークの午前一時までのバーの数(shift_end)を
足したものをLow[]に入れています。
でも合ってるかは、よく解りません。
戦略というか、この安値高値を後になって抜けて、それからまた戻ったときに抜けた方の
逆のポジションを取るというものです。ですので目的は「値」です。
>>537 はは、そうですね。でもいろいろと勉強を兼ねていますので、回り道をお許しください。
539 :
517 :2011/08/20(土) 10:20:10.49 ID:61rj7pH3
ちょっと修正して、こうなりました。でも不安定、どこか間違っているのだと。。 datetime end_time = StrToTime("15:00"); datetime start_time = StrToTime("14:00"); int shift_start = iBarShift(NULL, 0, start_time); int shift_end = iBarShift(NULL, 0, end_time); int lowest_shift = iLowest(NULL, 0, MODE_LOW, shift_start - shift_end +1, shift_end); int highest_shift = iHighest(NULL, 0, MODE_HIGH, shift_start - shift_end +1, shift_end); >>ニューヨーク時間午前1時から2時まで >なら1時間足のHi/Loをそのまま見ればいいだけなのに... それでやった方がいいみたい。
540 :
517 :2011/08/20(土) 10:56:37.00 ID:61rj7pH3
>>ニューヨーク時間午前1時から2時まで >なら1時間足のHi/Loをそのまま見ればいいだけなのに... 3行でできた。かも。 datetime start_time = StrToTime("14:00"); LOW(iBarShift(NULL, PERIOD_H1, start_time)); High(iBarShift(NULL, PERIOD_H1, start_time)); で時間はローカルタイムでもいいんです?
スプレッドチェンジって出来なくなりました? オフラインにするとバックテストできないんですが
勘違いだったようです。 失礼しました。 switchの件についても、ありがとう御座います。
>>541 唐突に意味不明なことをw。30秒エスパーして考えたんだがFaiさんのスプレッドチェンジャーを
使ったバックテストは出来なくなりましたか?ってことか?だとしたら仕組みを理解してないな。
あれはsymbol.selに入っている最新のスプレッドを変えるだけ。したがって原因は別にある。
545 :
Trader@Live! :2011/08/21(日) 00:59:15.64 ID:YMVDlaqr
ここにいる奴らって 意図せぬバクで図らずも利益が出るよりも 仕様どおりに稼働して資金を大きく減らすほうのほうを良しとするようなのばかりだろ
>>545 意図せぬバグで利益出しても次に繋がらないじゃないか。
一度に一生遊んで暮らせるくらい抜けるならともかくな。
それに、そのバグには勝ちと同じだけ損失のリスクがあると思うよ。
>>545 EAはオ○ニーだからな。オ○ニーは気持ちいいだろ?そういうことだ
なんか昼間から意味不明のことをぶつぶつ呟きながら商店街を歩いてるような おっさんが混入してきたな。
おっさん 「いつかEAで一儲けしてやるんだ・・今度のはいいアイディアなんだ・・ぶつぶつ・・」
MT4が異常に遅くなって調べてみると、logsとかhistoryに巨大なファイルが 出来てる。どうせ見ないlogなので初めから出力させない方法は無いでしょうか?
ファイルを削除してから、ファイル名と同じ名前のフォルダを置く
555 :
Trader@Live! :2011/08/21(日) 19:42:45.27 ID:zDP3v8CR
拡張子とか認識しないの?
EA開発用PCのCPUって、話題に出るのはインテルの奴ばっかりだけど、 AMDのPhenomとかって、性能良くないんですか?
>>556 世代と値段が同じくらいならインテルもAMDも変わらん。
>>556 最近までAthlon X4 640使ってた。今はSandyのi7。体感はそれほど差はないよ。
でもSandyのいいところは低発熱でAMDより速いところかな。
MT4のEAのバックテストは、1年間をテストするのにだいたいどのくらいの時間がかかりますか? CPUパワーやEAによって異なると思いますがだいたいの時間もしくは日数を教えて下さい。
>>559 今作ってるのは1秒以下。秒単位でかかるようだとちょっとやってられない。
1年だと早いのは1分、時間がかかるのは3〜4分かなあ。
外部インジ呼んでいて、MTFで、ControlPointだと精度でなくて パラメーターが30個もあるようなEAに遭遇すると、気が遠くなる。 がんばって回すと、MT4が落ちる。 しかも評判が良かったりして。
MT5でBTできたら速いのかもしれないけど、 いざ探してみると勉強できるサイトが充実してないのがきついですよね
1年なら30秒〜2分かなぁ
>>561 の1秒以下って早すぎないか?ちゃんとeverytickでやってるんだろうか。
>>566 最適化はControl pointsだと4、50分、Everytickだと3、4時間かな。
実際は4年間くらいでやるからこの4倍かかってちょっとやってられないレベルだけどw
MT5に移行したけど、大して最適化は速くならない。 2コアの貧弱マシンではあるけれど、MT4の最適化と比べて2倍も速くなんてならない。 せいぜい2,3割程度くらい。
>>568 ヒストリーはそれぞれどこのを使って?
MT5はわからないんだけど、MT4だとvolumeにすごく依存するよね。
volume をわざと減らして高速化するノウハウなんてのもあったな。
>>560 >>561 >>562 >>566 559ですがありがとうございまます。
自分はMT4使って手作業で週末にチャート検証をしていますが1〜2ヶ月やるのがやっとです。
数分数時間で1年が検証できるなんて夢のようですね。そんなに検証できたら勝ちまくりじゃないですか?w
EAの勉強始めてみようかと思います。
572 :
忍法帖【Lv=2,xxxP】 :2011/08/23(火) 03:07:11.50 ID:TnGCEgff
以下を実行すると i=1から始まりません。 Print("j=",j);をコメントにするとi=1から始まります。 スタックサイズの影響か?? int start(){ for(int i=1 ; i<=30 ; i+=1){ Print("i=",i); for(int j=0; j<10 ; j++){ Print("j=",j); } } Sleep(600000); return(0); }
>>572 ログ表示は出力が多いと飛ばされてしまう。
ログファイルには全部出てる。
574 :
忍法帖【Lv=2,xxxP】 :2011/08/23(火) 07:09:51.68 ID:TnGCEgff
>573 サンクス
そう言えば前にバックテストとかをCUDA化してる人がいたな。 MT4に比べてどんだけ速いんだろ。
576 :
179 :2011/08/23(火) 12:56:08.79 ID:zojx+KdG
>>575 >>179 です
私のEAはティックあたりの計算量が通常のEAより格段に多いので
参考になるか分かりませんが
構成:Core i7 920 (4core, 2.66GHz) + GTX580×4枚
前提:1時間足で5年間のバックテスト時間(Every tick)
時間:MT4 → 約3時間
C++ → 約80秒(4並列で約20秒/BT)
C++&CUDA → 約1.2秒(4並列で約0.3秒/BT)
C++やC++&CUDAは、MT4からのDLL利用ではなく
Strategy Tester(最適化ロジック含む)も自作です。
>>576 がんばってるね。リアル成績どんな感じ?
凄いな 凄いとしか言いようがない
>>576 最適化ロジックのアルゴリズムはオリジナル?
それとも、MT4を逆アセンブルして同様にしたの?
おれも前にC++でやってたけど、好きなだけ回せるし単純なGAでもMT4と同程度以上の 結果は出せてたよ。 あまりの面倒さにあきらめちゃったけどw
581 :
179 :2011/08/23(火) 17:02:50.27 ID:zojx+KdG
>>577 まだ最適化が済んでないのでリアル運用はしてないです。
現段階でのBTの最適化結果とFTの結果はこんな感じ。
BT5.0年(2005/1/1-2010/1/1):P/F1.7 650取引/年 収益/DD/年=1.4
FT1.5年(2010/1/1-2011/7/1):P/F1.4 600取引/年 収益/DD/年=1.2
許容リスクを資金の20%とすると年利24%ぐらい。
ロジック(説明の為に簡略化)
・直近の値動きに「似ている」過去データを数百件ピックアップ
・過去データのその後の値動き平均(±○pips)と標準偏差(信頼性)から
Entry,Keep,Exitを判定
・「似ている」の判断に使うテクニカルは同時に128個、候補は数千個
582 :
179 :2011/08/23(火) 17:14:25.37 ID:zojx+KdG
>>579 最適化ロジックはMT4と同じ遺伝的アルゴリズム(Genetic Algorithm:GA)です。
比較的メジャーで理解しやすいアルゴリズムなので結構簡単に実装できますよ。
ただMT4と違って、自作の場合は最適化に使う「適応度」を自由に設定できるのは大きいです。
MT4はbalanceとかdd(%)とか決められた何種類かだけじゃなかったかな。
私はリスク100%の場合の年利と資産曲線の安定度を組み合わせて適応度としています。
>>576 C++にするだけでも、こんなに短縮できるのか
何割・・というか、どういう箇所をdllにすると効果的?
>>581 その手法だとPFやDDよりも勝率が重要じゃないの?
もっと厳密に言えば、「似ている」が当たった率みたいな。。。
>>581 株だと似てるチャートで儲けるってのを前にTVで見たことあるけど、それだけ
やってもPFそのくらいしか行かないのか、難しいね。
似てるチャートの判定方法が難しいし、それによって成績も大きく変わる希ガス FXでも似てるチャートを探し出すっていうツールがあるらしいが ああいうのの仕組みとその成績が見てみたいな
皆さんバックテスト用にPCを何台お持ちですか?私は4台
>>586 BTはともかくFTのPF1.4なんて神の領域に近いと思うけどなぁ。
BTではもっと立派な結果のEAは腐るほどあっても、実際に使える
ものはごく少数でしょう。
たぶんスキャルじゃないでしょうから、FTとリアルの差も心配
するほどのもんじゃないと思うし。
どちらにしても179さんの気力と技術力には感服。
凡人としてはエッジのあるアイデアで勝負するしかないけど、その
アイデアが...
>>584 MT4を一切使わずに
C++からhistoryデータ読んでBTしてるってこと?
>>590 そういうことでしょう。おれもやってた。
592 :
Trader@Live! :2011/08/24(水) 09:49:31.73 ID:ZlLDBlc0
どなたか教えてください。 ボリジャーバンドを計算して描画したものを MT4付属の「Bands」と比較した際、微妙に値がずれてしまいました。 違いを調べたところ、 「標準偏差:σ(シグマ)」の計算に違いがありました。 ・MT4の計算式 標準偏差 = √(期間×期間内の終値の2乗の合計−期間内の終値の合計の2乗)÷(期間×(期間)) ・使用した計算式 標準偏差 = √(期間×期間内の終値の2乗の合計−期間内の終値の合計の2乗)÷(期間×(期間−1)) 標準偏差の計算式は後者を使うと思われるのですが、 MT4の式に違いがあるのはなぜでしょうか。 ご回答いただける方、お願いいたします。 長文になってしまし、すみません.でした。
標準偏差でぐぐれよ
594 :
Trader@Live! :2011/08/24(水) 10:51:31.91 ID:ZlLDBlc0
>>593 ぐぐって、
確認した上で後者の計算式を使用したのですが、
再度調べたところ、標本分散と不偏分散の違いがあるようです。
もう少し調べてみます。
179さんまだいるかな。 その気力と技術力の秘訣は? どうやってアイデア湧いてきたん?
エクセルでも標本分散と不偏分散の計算式用意してる。 別にどっちが間違いというわけじゃない。
597 :
179 :2011/08/24(水) 11:30:58.43 ID:Pve2FbOl
179です。
別話題に移ってきてるのでそろそろ最後にします。
聞きたい事がある場合ははやめにおねがいします。
>>585 >その手法だとPFやDDよりも勝率が重要じゃないの?
>もっと厳密に言えば、「似ている」が当たった率みたいな。。。
流石にこのスレの方は理解が早いですね。
私も以前は"「似ている」があたった率"を適応度としていました。
しかし実際に分析してみると、BTとFTの成績が安定しませんでした。
(安定優等生型よりバクチ好きヤンキー型が優秀と判定され生き残る)
やはり実運用で有利な係数を適応度とするのがベストだという結論です。
>>587 >似てるチャートの判定方法が難しいし、それによって成績も大きく変わる希ガス
「似ている」の判定方法の最適解を人間が手作業で導くのはほぼ不可能です。
なので「似ている」の判定方法自体(テクニカルの組合せ)を最適化するんです。
イメージとしては、テクニカル選定⇒EA作成⇒テストまでを自動化(0.3秒/回)して
ガンガンテストさせて、優秀なやつを採用する、と。
598 :
179 :2011/08/24(水) 11:32:09.20 ID:Pve2FbOl
>>595 >その気力と技術力の秘訣は?
ん〜、回答に悩むけど、一番の秘訣はリーマンということかな。
EAに失敗してもなんとか食っていけるというストレスの無さ。
あと仕事がSE(MS Officeがお友達)なので開発に飢えてるのも大きいです。
>どうやってアイデア湧いてきたん?
私も昔はうんうん悩んでEAを作ってたんです。
1)テクニカルを眺める
2)よさそうな組合せを考える
3)EA作ってみる
4)バックテストする
5)よさそうなら改造、イマイチだったら捨てる
でもこれだと1回試すのに1日とかかかっちゃうので、時間が無い身としては厳しい。
そこで1)〜5)を自動化すりゃいいやん、と思いついたのが始まりです。
要するに楽したかったんですw
らんち、いって、きます(`・ω・́)ゝ
>>598 似ている度ってどうはかってるの?
テクニカルに落としてからやる方がいいとも思うけど、値そのものをHMMで
予測するだけとかでも結構いかないのかな。単なる予想だけど。
600 :
Trader@Live! :2011/08/24(水) 12:04:36.05 ID:ZlLDBlc0
>>596 ボリジャーバンドの製作者は「不偏分散」を使用するとのこと。
検索した大半が「不偏分散」を使用。
MT4では「標本分散」を使用。
「不偏分散」を使おうと思うのですが、
MT4が「標本分散」なのが気になります。
>>599 素直にテクニカル値のベクトル間の距離とかじゃないかな?
602 :
179 :2011/08/24(水) 12:53:27.12 ID:Pve2FbOl
>>599 >似ている度ってどうはかってるの?
>>601 でほぼ合ってます。
過去データの類似度[m]=Σ重み[n]×√((過去テクニカル[m,n] - 現在テクニカル[n])^2)
※n=0〜128、m=0〜過去データ数
もちろんテクニカルはそのまま使える物(RSIなど)や絶対→相対変換が必要な物(MAなど)があります
>テクニカルに落としてからやる方がいいとも思うけど、値そのものをHMMで
>予測するだけとかでも結構いかないのかな。
値動きそのもので「似ている」を判断した時期もありましたが、
ノイズが多すぎて使い物にならなかったという覚えがあります。
(FXプライムのぱっと見テクニカルのような感じ)
私のやり方では、実体(値動き)の比較より写像(テクニカル)の組合せの比較のほうが
実体(値動き)の『性質』比較には優位である、という結論に達しました。
もちろん
>>599 さんのやり方では実体の直接比較のほうが優位かもしれません。
>>602 なるほど。足はどの足でやってるの?
ある程度の時間的なゆらぎに影響されないようにテクニカルに落とした値でも
HMMとか使うといいんじゃないかと思う。処理量がかなり増えるとは思うけど、
そこはGPUの力でw
>>600 EAの話でしょうからぐずぐず悩まなくても、両方試せばいいじゃないですか。
両方試して統計的に有意な差があれば有利な方を採用して、誤差程度なら
自分が正しいと思う方を採用。これでいいじゃないですか。
理論や計算式が正しいから利益になる、間違っているから利益にならないって
もんでもないでしょう。
損をしてでも「正しい」計算式にこだわりますか?
ボリバンを使った逆張りなんてまったく素人っぽい手法だけど、結構使える
ような気がする。
>>605 んー、理系なら習うんじゃないかな。
CUDAでもOpenCLでもライブラリはあるっぽいから使えるのではと。
>>602 似ている度を測るテクニカルは成績が出やすい傾向のものなどありますか?
もしいくつか組み合わせたり、ちょっとフィルタを加えたりしてれば、
そのとき有効になりやすい組み合わせや傾向があれば教えてください
608 :
179 :2011/08/24(水) 18:45:46.73 ID:Pve2FbOl
>>603 HMMは勉強してみます。使えそうなら次バージョンで試してみます。
ただCUDAは分岐があると一気に使えない子になるんで、
GPUでごり押しは難しいかもしれませんね。
>>607 テクニカル名やパラメータをそのまま言うわけにはいかないので傾向だけw
現時点での有効な組合せはトレンド系:オシレータ系=3:7
トレンド系は殆ど長期(日単位)で、オシレータ系は短期(時単位)〜長期
(日単位)が結構均等に使われています。
あくまで私の「似ている」ロジックで優秀なテクニカルですのであしからず。
あと、フィルタという概念は取り入れていません。
過去データから算出した予測値動き(どれだけ上がるか下がるか)と
その信頼性のみで取引を判断しています。
Walk Forward Analyzer について分る人いたら聞きたいのですが、 このソフトは、一端BTで得られた良さそうなパラメータを、 再度近似値を使ったテストでその設定の有効度を測る為のものという認識であってますか?
まあHMMとかCUDAなんて完全に自己満だけどな
まぁFXより株でやった方が確実だとは思う。
CPUのせいかものすごく時間がかかるから本気でC++にしようかと調べ始めた ヒストリーファイルはcsvで出力できるんだな んで、それをテキストにコピペしたら普通に配列で読み込めるもんな と考えてたんだが、MTは最適化の設定が気軽で簡単なのと 結果の出力が分かりやすくて何かと捗るんだよなぁ
>>608 ありがとうございます
自分も今取り組んでみてて、似ているの判定の難しさを
感じていますが(ここが肝だと思うので当然だと思いますが…)、
参考にさせていただいて頑張ってみます
>>612 ヘルプにヒストリーファイルのフォーマットが載ってるからCSVに出さなくても
直接読める。
まぁ値動きの予測なんてのは自分で考えるより チャートに聞いた方が早いというのはあるね ここ最近ずっと開発を続けていてそう思うようになった どういうロジックなら勝てるかを考えるより EA自体がシグナルを探っていくようなシステムを作るべきだと つまりAIという概念 過去スレでもちょいちょい出てたね 極論がここであろうことはなんとなく予想していたけど いまいち開発に踏み切ることはできなかった 俺もそろそろ開発の方向をそっちに変えるべきかな
>>608 前スレに出てた
FTTを使って、波形の指紋みたいなのをデータベース化して近似値を照合する方法とかは?
617 :
Trader@Live! :2011/08/25(木) 08:21:39.66 ID:5RWDJo3a
スタティック変数とグローバル変数の違いを教えてください。 どちらも関数外でも変数を保持してプログラムを閉じるまで記憶されるんですよね。
>>617 スタティック変数は関数外から参照できない
619 :
Trader@Live! :2011/08/25(木) 08:45:16.15 ID:5RWDJo3a
よくわからんけど。コメントの値はこうなるの? funcA(){ static int a = 0; } funcB(){ a += 1; return a; } start() { funcA(); Print("a=",funcB()); } ////////// コメント a=1
621 :
Trader@Live! :2011/08/25(木) 08:57:12.91 ID:5RWDJo3a
すいません。でもまいいや。ありがとうございました。 int funcA(){ static int a = 0; } int funcB(){ int a =+ 1; return(a); } int start() { funcA(); Print("a=",funcB()); }
こんな時間までコーディング・・・ 今までは主にインジの数字嬲ってたんだけど、インジ使わない手法を 見つけてそれをEA化しようとしたら、プログラムの技術が足りないのもあって 一大事業になってしまってる 数日以内に終わればいいな・・・そしてこんだけ苦労してるんだから エッジがあることを祈るのみ・・・
また鯖落ちた?
すみません ima などのperiodを可変にしたいのですが、以下のような書き方では駄目みたいです。 外にいい方法はありませんでしょうか? extern int p_15 = 1; double ima_1 = iMA(NULL, l_period_99(), 700, 0, MODE_EMA, PRICE_CLOSE, 0); int l_period_99(){ int p_15; int l_period_11 = 0; switch (p_15){ case 1 : l_period_11 = 15; break; case 2 : l_period_11 = 30; break; case 3 : l_period_11 = 60; break; case 4 : l_period_11 = 240; break; } return(l_period_11); }
2つ目のint p_15;を削除する。 しかし、そんなデコンパ丸わかりソース貼らんでも...
>> 625 ありがとう御座います。 出来ました。
Tickデータとか手に入れるいみあります? 売ってるところとかありますが、これバックテストに使えるんでしょうか? historyには1分足しか無いような気がするんですが。
>>628 あるよ。擬似Every tickと結果があまりにも変わって愕然とすることがある。
せっかく苦労して作ったのが形になってきて嬉しいので これからのユロドル予想も書いてみるwwwwwww 短い足ではもうちょい下げるかもしれないが、そのあと数十pipsぐらいは上がる可能性あり ただし、1時間足と4時間足で計算するとこの流れのまま1円以上は下げる可能性あり っていうこれを書いたのが23時50分ごろだったので ちょっとずれてしまったけど、短い足のほうは一応当たってたと言ってもいいのだろうか・・・?
631 :
忍法帖【Lv=1,xxxP】 :2011/08/27(土) 07:48:51.70 ID:NIlzK3EN
revival
・・・15分足的には一応大きく上げるパーセンテージは大きかったので 当たってたといえば当たってたんですが、大きな足的に大外れですね とはいえ、1時間足4時間足での大きな下げの確率は他の値動きと比べると一番確率はは高かったものの、 全体的には35%程度で2/3の確率で外れるものだったわけで、 そこに賭けるのはミスだったのか・・・ これはもう少し使い方を工夫する余地がありそうでした 予測の材料も考えてみれば直近4つまででは危なっかしいので 最大で直近10個までを材料に使えるようにしたら改善するかも・・・ まだまだだということがよく分かったので、もっと研究します 失礼いたしました
リアルTickデータはDukascopyのものを推奨。デモ口座を開いて Jforexで過去データをダウンロードできる。その後JForex2FXT というスクリプトでMT4用に変換。もっといいTickデータソースあった ら教えて。Dukasのものは0.5pipが最小単位みたい。
634 :
Trader@Live! :2011/08/27(土) 15:56:26.90 ID:RMAsmxES
一日に一回だけ、ある条件でフラグを立てたいんだけど、 どう書けばいいですかね。 その条件は、一回フラグを経てば、その後条件に合致する事があっても無視します。 例えば朝8時以降にAというイベントが発生します。この時にAフラグ=trueをたてます。 Aフラグ=trueの時、真の売買条件が発生したとき売買注文を出します。 翌朝8時までに真の売買条件が発生しなければ、Aフラグを閉じます。(Aフラグ=false) Aフラグ=trueのとき、Aイベントが消滅しても、Aフラグ=trueのままです。 Aフラグ=trueのとき、売買注文が起きるまでは、Aフラグ=trueのままです。 売買注文が成立したら、Aフラグを閉じます。(Aフラグ=false) 一度売買条件が成立したら、翌朝までAフラグを閉じたままです。(Aフラグ=false) 翌朝8時までポジションが残っているとしたら強制的に決済します。 それで基本的な流れとして下のようなものを考えてみました。(流れですので、、) bool Aflag = false; int FilterSignal() { if( ある条件A && 本日8時以降 ) Aflag = true; } int EntrySignal() { if (Aflag == true && 売買条件 == true && 現在ポジションを持っていない) { 注文発注(); Aflag = false; } int CloseSignal() { if (利確達成 || 損切り達成) クローズ発注(); if (翌朝8時) クローズ発注(); } int start(); { FilterSignal(); EntrySignal(); CloseSignal(); } このままですと、条件が発生したら何度もAフラグが立ちます。 Aフラグは一回だけでいいのです。何か良い方法ありますか? またこの流れで問題点とかありましたら教えてください。
>>634 斜めにしか読まなかったけど、「今日はAフラグを立てましたフラグ」を持てば良いんじゃないの?
で、毎朝8時にそのフラグをクリアする。
>>634 適当にやってみた。<-が変更部分
bool Aflag = false;
bool myPos = false; <-
int FilterSignal()
{
if( ある条件A && 本日8時以降 ) Aflag = true;
if( myPos ) Aflag = false; <-
}
int EntrySignal()
{
if (Aflag == true && 売買条件 == true && 現在ポジションを持っていない)
{
注文発注();
myPos = true; <-
}
int CloseSignal()
{
if (利確達成 || 損切り達成) クローズ発注();
if (翌朝8時) クローズ発注();
}
int start();
{
FilterSignal();
EntrySignal();
CloseSignal();
}
637 :
Trader@Live! :2011/08/27(土) 18:45:50.36 ID:RMAsmxES
>>635 さん
>>636 さん ありがとうございます。
>>635 さん
今日はAフラグを立てましたフラグ の書き方がよく解らなくて、、。
>>636 さん
ポジションを持ったときにフラグを立てて、その場合Aフラグを閉じる
っていうことですね。
組んでみます。ありがとうございました。
相場をFFT処理したら短期予測できるかな?と思ってやってみたけど、 逆フーリエかけた時点で誤差がありすぎてとてもじゃないけど使い物に ならなかった。スクリプト書いた時間返せよorz
その誤差自体にすばらしい収益機会が潜めているのかも
>>638 逆変換する必要ない
ノイズ除去のためローパスフィルタ
適当に帯域を分けて、低周波ほど重み付けを大きくして、スペクトル値を合算
この値をデータベース化
今の値の近いものをデータベースから検索すれば、短期予測可能・・!?
検証よろ
パターンマッチングに使うというのは面白いかも?!と思ったけどそれだけのプ
ログラミングスキルがないですorz
>>641 このスペクトラムは処理が長期すぎてるからなのかな?と勝手に思ってます
無駄な高周波成分除去のために生データではなくてMAを使って、更に短期デ
ータで処理すると周波数ピークがいくつか現れます
ただシャープなピークではなく、かなりなだらかなものなのでそのままでは使い
にくい、、、なかなか難しいものですね
バックテスト時に、グラフ上に出る 緑の線は何を表してますか? 複数ポジの含みを表していると思っていたんですが、ポジション1つしか持たないEAでも出るみたいなので。
>>642 高周波除去にMAを使うのは有効な手だと思う
ただ、その場合、超短期・短期・中期MAの合算をFFTしないといかん気がする
>>641 はM1の2ヶ月分をまとめてFFTしても、得たいものが得られないと思う
デイトレ〜スイングトレードとすると
例えばM5の1日分をFFTして、スペクトル値合算
これを繰り返して、1週間とか1ヶ月分をさらに合算
今週とか今月の値と近いものを過去検索して短期予測。今月はこうなるはず、来月はこうなるはず等
この方法
音楽の違法up検索のために、曲をFFTしてスペクトル値合算
(合算のやり方やFFTの詳細は特許取ってるはず。特許庁のDBから検索すればOK)
その合算値は、その曲の指紋
ネット上の膨大なデータを同じ手法で指紋採取していって、似た値があれば、同じ曲。違法upですね
ということをやってると思う
>>643 ポジ数関係なしに含み損益だよ。英語で言うEquityね。
>>645 FFTするのにMAなんて特性の悪いフィルターを使う意味がわからない。
あとスペクトルの合算てなに?
>>647 ポジ数1の場合は出ないよね。というか、完全に重なるはずだよね。
特許じゃなくて、俺が読んだのは10年以上前の学会論文だった
ググってもさすがに出てこなかった
>>649 ///////////////////////////////////////////////////////////////////////////////
発明の詳細な説明
【0005】
ほとんどの既存の指紋技法は・・・
///////////////////////////////////////////////////////////////////////////////
俺が読んだ論文はもっとシンプルだった
例えば0.1秒毎のFFTをとって、スペクトル係数を適当に合算(ここ、どうやってたか全然記憶にない)
これを曲の長さ分やって、合算値をさらに合算(これも記憶にない)
これでその曲に対して一意の値(指紋)を作る、みたいな感じ
曲の長さは曲によって全然違うし
ネットに転がってるのは、必ずしも1曲単位とは限らない
開始・終了位置も一致しない(msecレベルで一致することなんて無い)
そのネットから指紋を検知するための方法なんだが、全然覚えてない
幸い、為替相場なら1日単位とか1週間単位とか区切って特に問題ない気がする
tester フォルダを、MT4プログラムフォルダ内じゃなくて別の所に起きたいんですが、パス指定変更って可能です?
>>653 有難う御座います。
SSDから読込めばいくらかバックテストの時間を短縮できるのかと思ったのですが、変わりませんでした。
あと、
>>643 の件ですが、EA中にロジックを2つ入れてて、一つをOFFにしているのが原因なんでしょうか
ポジはいくら確認しても一つまでしか開いてないにもかかわらず、所々緑のグラフが出ています。
655 :
Trader@Live! :2011/08/28(日) 19:55:17.07 ID:EdAn03dF
そのフィルターの話するのはいいんだけど。 できれば、別にできたインジスレで話してくれない。 目障りだ。
>>651 > 例えば0.1秒毎のFFTをとって、スペクトル係数を適当に合算(ここ、どうやってたか全然記憶にない)
> これを曲の長さ分やって、合算値をさらに合算(これも記憶にない)
音楽なら有意差がある音紋が得られるだろうけど、それは音楽だから。
為替だと合算していったら
>>641 になるだろうし、合算しなくても有意差は無いと思う。
>>654 青が確定済み口座資金、緑が含み損益を含む口座資金
>>654 お前質問しまくる割に回答をちゃんと見てないってどういうことだよ?
647で答えてやったろうが。658も親切に答えてやってるがこれも
スルーか?初心者というか常識学習スレにでも池
EAっていうかオプティマイズってほんと素晴らしいな チャートにこんな法則があるのでは?っていうただの思いつきでも 数十万単位のパターンを何年分も検証しなきゃいけないのが寝て起きたら終わってるんだもんな オプティマイズが使えなかったらめんどくさすぎてスルーせざるをえない 株や商品でもMT4(MQL4のほうが簡単なので)が使えたらどんなにいいことか
確かに手計算じゃ絶対にできないことを簡単にやってくれる。 結果の中には大きな利益になったものも含まれる。 でもねぇ、その利益が必然か偶然かを見極めないと、喜んでばかり もいられない。最適化で得られた利益はほとんどの場合偶然の産物 なんだから、結局使えないってことになってしまう。 同じ偶然を将来に期待しても失望するだけでしょう。
関数ポインタ的なことってなんとかしてできないかなあ
まぁswitch-caseでやるのが順当かな。 iCustom()使っていいならそれで。
>>660 分析だけならCSVで足をインポートすればできるよ。
665 :
Trader@Live! :2011/08/29(月) 20:39:52.53 ID:CBV1UipH
エクセルでリアルタイムで読みだして計算させようかと思ったが、これじゃバックテストできないし。どうしよ。
>>663 分岐というより依存関係を切りたくて。仮想関数が使えればいいんだけど。マクロを駆使して何とかできないかなあとか思案中。
switch-caseでもif-elseででも切れると思うけど? mql4のマクロは大したことできないのが残念。
switchは仮想関数と等価にはならないべ。iCustomは割と近しいことができると思うけど関数レベルでやりたいなあと。まあmqlリファレンスあさってみるわ
>>669 いや"switchで依存関係は切れると思うけど"、ってのが間違いって言ってるだけだよ。
>>670 まぁこれで切れてないと言うなら切れてないさ。
MQL4じゃこれ以上無理だと思うが。
#property indicator_chart_window
int g_func;
int func1() { return(1); }
int func2() { return(2); }
int vfunc()
{
switch (g_func) {
case 1: return(func1());
case 2: return(func2());
}
}
void setup(int id) { g_func = id; }
int test() { return(vfunc()); }
void init()
{
setup(1); Print("test()= ", test());
setup(2); Print("test()= ", test());
}
>>671 それは処理が分かれたわけであって、依存が切れたわけじゃないでしょ。
func1,func2がユーザ関数としてそれ以外がLibとすると、Libのvfuncがユーザ関数に依存しているよね。
例えばfunc3を追加したら、vfuncも書き換えなきゃいけないでしょ。
673 :
Trader@Live! :2011/08/29(月) 22:18:08.43 ID:Rs0XbI9z
>>669 含み損益だからポジの数は関係ないですよ。
>>672 当たり前。不毛だからもういいよ。
>>673 ポジ閉じた状態で含み損益がある状態って?
というのがわからないところ。
>>674 その当たり前を間違ってたのがあんたなんだが、、まあどうでもいいが
だからvfuncもユーザー側に出せばいいだけだろ、どうでもいいが。
vfunc()の修正が必要ってのは当たり前すぎてそのつもりはなかったんだが、 依存関係というのはtest()とfuncN()の関係のことな。 すまんな、お前にとっては当たり前すぎだったと思うわ。
>>677 だからそうしたら依存を切るって目的を実現できてないから本末転倒でしょ。vfuncに依存するtest()もsetup()もユーザ側に置かなきゃいけなくて全部いっしょくたでしょ。
そもそもそれが問題みたいなものだろうに。
そりゃもちろんtest()もsetup()もユーザー側の前提よ。 setup()はオブジェクト作る部分、test()はユーザー関数想定だからさ。 話がかみ合わないからそもそもどういうことがやりたいのかを具体的に出してもらわ ないと。 単純に仮想関数をそれをサポートしている言語のように実現したいってのは 無理なんだから。
681 :
Trader@Live! :2011/08/29(月) 23:06:30.85 ID:Rs0XbI9z
なんだ?この人。
せっかく応えてくれてるんだし俺も煽るつもりはないんだよ。 いやいまライブラリを色々開発整理してるんだがいかんせん仮想関数がないとうまいこと再利用性を確保できんなあと。。 だから同じようなこと考えてる奴がいるかなあと投げてみただけだ。 無い物ねだりのつもりもないしもうちょい模索して無理そうならなんかしら妥協するよ
本当に仮想関数が必要ならマクロじゃどうしようもないと思うが... 仮想機構で実現される部分を定型的にユーザー側でやるのは仕方ないと思うよ。
まあ一例なんだが ユーザ関数: MyEntrySignal, MyExtSignal,, Library: SignalComposer みたいなものがあるとして、ComposerにユーザSignal関数を複数渡してなにかしら演算結果を返すと。 もちろんLib側はユーザ側には依存できないとする。 こういうのを実現しようとすると仮想関数なり関数ポインタが必要になるよね、と。別の言い方だと コールバック関数もしくはdelegateとかboost::bindとか、、 まあ俺がmqlをそれほど追求してないだけかもしれん。もうちょいあさってみるよ
だからそれだけでいいならvfunc()をユーザーにやってもらえばいいだけでは?
まぁこれが気にいらないって話ならしょうがない。
Lib:
SignalComposer() { ...; vfunc(id); ...; }
User:
vfunc(int id) { switch (id) { case 0: MyEntrySignal(); break; ... }
>>685 ちょっと違う話かな。
まぁ自前でプリプロセッサを作るならなんでもできるけどね。
>>685 そりゃもちろんDll使ってC++側でやればなんでもできるけど。。
もちろん検討してるし試してるけど、今はmqlのコードが多いんだよね。
でもいずれはほんとdllに持って行った方がいいかもね。速度的にも、他のモジュールとの連携でも。
ただiMAとかをC++で再実装しなきゃいけないのが面倒そう
>>686 > まぁ自前でプリプロセッサを作るならなんでもできるけどね。
LSI-C試食版のプリプロセッサを持ってくるだけ。
>>686 No,No. Composerはもちろんvfuncを使うんだってば。
Composerはvfuncを使って登録されたユーザSignal関数を呼び出すんだよ。つまりコールバック。
それでいて具象ユーザ関数に依存してはいけないということ。
Javaで言うと、ISignalクラスのexecuteを呼ぶような感じ。
あとLib側でUser側の関数を呼ぶならUser側のヘッダもincludeすることになるし、Userが使う度にLibにincludeを追加することになる。 そもそもmqlが相互参照でコンパイルできるのか..
>>686 あと食い違ってる点だけど、俺は依存関係は
User → Lib
にしたいんだけどで、君は
User ←→ Lib
で別にいいじゃん、ってことだけだと思うよ。
ただ、俺はいまのところLibの独立性を高くしておきたいと思ってるだけで(複数のEAから使われるものだから)、
君のやり方でも動作すると思うし間違ってるとか全否定したいわけじゃないよ。
なんにせよmqlが簡易言語だし、色々と妥協が必要なのはその通りだと思うし。
1〜10の数値をとるパラメータA, B, Cがあるとして 10^3の1000通りの全組み合わせをoptimizeしたときに 例えばA=5, B=7, C=2 が最も成績良かったとする しかし、どれかのパラメータを±1しただけで大きく成績が変わるならカーブフィッティング そこで、最も無難というか最良な組み合わせを調べる方法ってある? 統計学の〜〜法とか何でもいいから、あるなら勉強して実装するお
>>692 話しを簡単にする為に、パラメータはA, Bの二つだとする。
二つのパラメータは平面上にプロット出来る。
そこに各組み合わせのPFをZ軸として追加すれば、デコボコした三次元チャートになる。
ここで理想のEAは、PF=1以下の大きな窪みが何も無いEA。
次善に良いEAは、PF=1以下の窪みが偏っているEAで、そのエリアを避ければ使える.。
どれか±1しただけで大きく成績が変わるなら、それは窪みが満遍なくバラ蒔かれている地雷源の中にあるパラ。
そのEAに、「最も無難な組み合わせ」は無いと言える。
BT結果をXYで表示するとPFの善し悪しを濃淡で表すから、それを見てみれば?
>>692 ロバスト最適化。
まぁ凸凹がひどくても最悪値でPF3とかあるならあまり問題ないわけで、
評価関数が難しいね。
>>684 究極にキワいが組み込みLUAとLUAのコルーチンを使う手があるかも?(未検証)
MT4への組み込みスクリプトは、コールバックを実装する最も手軽な方法だけど
スクリプト側からMQL4コードを呼べないのがかなり大きな制約になる。
っで、この方法でなら工夫次第で(もしかしたら)MQL4関数だけは呼べるようになる
かも?って話。具体的には・・・・・・超長文になるんでダリ〜w
ザクっと要約すると、LUA側でMQL4関数が必要な時にyieldで中断して、一旦MQL4
コード側に戻して、MQL4コード側でMQL4関数を呼び出してもらって、その結果を引
数に再びLUA関数のラッパー関数を呼び出して、ラッパー関数側でLUA側の適当
なテーブルに返値をセットしてコルーチンを再開して、LUA関数側で適当なテーブル
から返値を得ればいい。
実際にやろうとすると何か落とし穴がありそうだけど・・・・・・
てか、7bit氏が組み込みPythonでドツボにハマって頓挫したみたいだしねw
個人的には、コールバックって言っても動的な解決がどうしても必要とか いうんじゃなければ、上でも出てる自前のプリプロセッサを書く方法が最 もリーズナブルだと思う。 別に構文解析からやらなくても、正規表現の置き換えとコード生成くらい で十分に目的には適うと思う。
>>693 そういえばOptimization Graphでスペース押せば2次元グラフ出るね
良し悪しを判断する値がProfit、PF、Drawdownの3つの場合、5次元になってしまうけど
TestingのOptimized parameterをBalance, Drawdownと変えてやれば、各2次元グラフ出るから
それを総合していくしかないのか・・
パラメータ2種の場合は、この方法でいけるけど
実装したいのはパラメータ5種 x Profit xPF x Drawdownの8次元・・・
>>694 おぉ!
しかしロバスト最適化でググると、なんか研究論文みたいなのしか出てこない
解説したサイトない?
最適化問題の類似項目から、ナップサック問題、局所探索法見てみたけど
この手法、得られた解の隣の解が地雷でした、ってことがありそうな・・?
>>697 ダメなアルゴをいくらBTで補完/補強しようと、ダメなものはダメ。
FTすれば途端にボロが出る。
時間の無駄だよ。
>>697 おれもちょっとググっただけなんだけど、ロバスト最適化で出てくる
2つ目のISASとか5つ目のデンソーの人の論文はわかりやすいんじゃない?
>>697 > この手法、得られた解の隣の解が地雷でした、ってことがありそうな・・?
最適化問題って、全数検索が計算時間的に困難な場合に、
いかにショートカットして短い計算時間でより良い解を求めるか?が問われている感じだよね
何かしら解が得られたら、その解の近傍を検算しておけば、隣の地雷を避けられるんでないかね。
そのより良い解の求め方が知りたいって話でしょ。
ラグランジュ未定乗数法とか最急降下法とかで色々出てくると思う。 前作ったことあるけど割と最適値は見つかるけど局所最適解にはまったりする。。 数学的背景を理解して実装できたなら局所解とその近傍解の乖離の大きさを調べるのは難しくはないと思う。 ただそこまでがんばる必要があるのか。。mtのoptimizerはグラフ出してくれるし、、 まあでも確かにあのグラフはパラメータ変動を横にずらっと並べただけだから近傍の把握はしづらいか。
すみません。オープンポジションが閉じたらシグナル発生って言うのをやりたくてずっと試行錯誤しているのですが、全く出来ません。 前スレとこのスレで聞いたり調べたりして、以下のようにしてみたのですが、まだ駄目なようです。 何か間違っているのか、根本的に違うのか、初心者スレから出直した方がいいのか、教えて下さい。 bool IsAliveOrder(int magic) { int ticket1; for(int i = OrdersTotal() ; i >= 0; i-- ) { if(!OrderSelect(i, SELECT_BY_POS , MODE_TRADES)) continue; if(OrderSymbol() != Symbol() ) continue; if(OrderMagicNumber() == magic){ ticket1 = OrderTicket(); Sleep(10000); for(int i2 = OrdersTotal() ; i2 >= 0; i2-- ){ if(!OrderSelect(i, SELECT_BY_POS , MODE_HISTORY)) continue; if(OrderTicket() == ticket1){ return(true); } } } } return(false); } 取得 if (IsAliveOrder(Magic_Number)){ }
>>704 > 前スレとこのスレで聞いたり調べたりして、以下のようにしてみた
コピペで書いている様では、まだ初心者スレだな。
> if(!OrderSelect(i, SELECT_BY_POS , MODE_TRADES)) continue;
> if(OrderSymbol() != Symbol() ) continue;
continue;でいいの?
>705 有難う御座います。 最初の3行で対象ポジの確認を行いチケット番号を取得、 その後10秒待ってから、for 文の入れ子でヒストリーから 取得したチケット番号があれば、trueを返し、無ければ false という内容で書いたつもりです。 色々変えて見てますがどうも間違ってるようで上手くいきません。
>>703 thx 難しそうなので気長に勉強してみる
>>ただそこまでがんばる必要があるのか
optimize→FTでボロボロ を散々繰り返してきて
もはやどうoptimizeしていいのか分からなくなってきた
なんで、多数のパラメータの組み合わせから無難な解を探しだすコードを書いて
そっちに任せよう、と
>>707 え、MT4使わずに自力でしようとしていたの?
てっきりMT4の結果からいいものを選ぼうって話かと思ってた。
>>704 単純にmagicのポジがあるかないかだけ調べればいいのでは?
bool IsAliveOrder(int magic)
{
int ticket1;
for(int i = OrdersTotal() - 1; i >= 0; i--) {
if(!OrderSelect(i, SELECT_BY_POS , MODE_TRADES)) continue;
if(OrderSymbol() != Symbol()) continue;
if(OrderMagicNumber() == magic) {
return(true);
}
}
return(false);
}
>>707 最悪の選択じゃないでしょうか。そもそも最適化に頼って利益を
出そうって考えから抜け出さないと泥沼だと思う。
全数検索できないほどパラメータ数が多い or パラメータ幅が広いので
GAやナントカ検索に頼らなければいけない場合、それで得られた結果に
ついてはたぶん説明できないでしょう。
なぜパラメータAが○○で、パラメータBが□□であるかは。
ただ最適化で成績が良かったというなら、過去については偶然そう
なっただけ。
その偶然を未来にも期待するのは自由だけど、可能性は低いと覚悟
しておいたほうがいいかもしれない。
クロスバリデーションを丁寧におこなえばよいだけのこと。
最適化の結果は偶然じゃなく、確率を期待してるのでは。
>>712 そうだと思うけど、その期待した未来に対する正しい確率を返して
くれないから707さんは苦労してるんでしょ。
返ってくるのは過去に対する確率で、未来のことは一切含まれていない。
未来は過去と同じだろうという考えは外れることも多いよね。
もちろん、手法が大事であってどうoptimizaすればいいのかってのはそれほど 関係はないとは思う。 どれだけ外れるか→PFに直結なので多いと困るw
>>708 両方ありだけど
MT4でOptimize→結果をhtml保存→excelで読み込んでcsv化→最適解?近似解?を検索
の方で
>>710 EAにどんな素晴らしいロジックを載せても、裁量とは決定的な違いがある
極端だけど、EAのパラメータは特定期間における確率の問題に尽きると思う
昔は絶好調だったEAが今はボロボロ・・・
でもロジックが糞なんじゃない。今の相場に合わせて最適化すれば良い
パラメータを変えたパクリEA→パクリEAのループで、ロジックはそれほど変わってはないだろうし
>>713 過去2年間のBTで好成績だったものが、未来2週間でボロ負けする確率は標準偏差で何σだ?
とでも思わなければ、BT自体の存在価値がなくないか
>>709 ありがとうございます。ですが駄目みたいです。
前スレ 735の方がチケット番号保持する方法を聞いていて解決したらしいのですが、
どうやって保持しているのかが気になります。
引用
744 名前:735[sage] 投稿日:2011/06/21(火) 02:36:18.88 ID:ZlC7ekCi
>>741 理由は不明ですが、たま〜にループでTicketの取得が
正常に出来なかったので、直前のチケット番号を保持
する仕組みに変更しました。
例えばある一つのパラメータを100通り試したとする。 その時のオプティマイズのグラフが山型になっていて、 ある数値に向かって成績が上がっていくようなグラフになっていた場合、 その最適化は有効だったと俺は考えるね。逆にバラバラなら無駄だったと。 例えばRSIで言った場合、9だとか14だとか、 一般的に使われているパラメータに向かって成績が上がる傾向にあるね。 まぁ、これ以上は言う必要がないな。
>>715 完全に最適化教に取り憑かれているみたいですね。
BTとはいえ利益は損失より嬉しいので、気持ちは分からなくもないけど。
> optimize→FTでボロボロ を散々繰り返してきて
最適化に対する考え方が間違っていると、自分で何度も証明したようですね。
> 過去2年間のBTで好成績だったものが、未来2週間でボロ負けする確率は標準偏差で何σだ?
> とでも思わなければ、BT自体の存在価値がなくないか
誤った最適化や最適化に対する考え方は、存在価値がないというより有害でしょう。
確かにヒストリカルデータから利益を出すのに、最適化は一番手っ取り早く楽な方法です。
お粗末なEAでも最適化さえすれば、過去については自慢できるような結果を残せます。
でも誤った最適化はただそれだけのもの、文字通りそれだけのものです。
ヒストリカルデータから利益を出せたとしも、それから先利益が出せるかどうかは運を天に
任せるしかありません。
まだ最適化に頼って利益を出そうっていうなら、もうお大事にとしか…
>>720 なんだかスゴそうな人が降臨したな。
じゃあ何に頼って利益を出せばいいの?
>>721 スゴイ人じゃありません。723で指摘されたようにただのバカです。
これ以上「最適化命」って人の気分を害するのも良くないようですが…
EA作りも「観察→仮説→検証」という流れが一般的でしょう。
私はこのサイクルの中に最適化を持ち込むべきではないと思います。
この検証のために最適化をしてしまうと、仮説の正否に関係なくPCのパワーで
利益を捻り出します。
私の場合トレードをイメージして、EntryもExitもパラメータ固定&フィルタなしで
テスト、それでダメなら最適化はしません。
悪足掻きしてもロクなことにはならないと思っています。
最適化なしで利益が見込めるときは、仮説を壊さないように注意しながら一部の
パラメータを最適化して調整します。
もちろんFTで最適化が有効かどうか確認が必要です。
インジ込みのチャートを見て仮説を立てる(トレードをイメージする)ので、
Entryについては最適化しません。
Entryのパラメータを変更すれば、トレードのイメージが大きく変わってしまいます。
これが正しいと主張するつもりはありません。これが私の最近のやり方というだけです。
内容が無いよう
過剰最適化のリスクなんて入門書に書いてある話でどうでもいいし講釈はゆとりスレでやってくれ 具体的な数値のBT分析結果とか質問とかなら歓迎だがね
俺も
>>724 と似たような「演繹的」(?)な方法だな。
それで発見する(?)幾つかの手法は、例えば
>>179 の人が
>>180 で説明しているような、
「一般的」なテクニカルのパラメータの組合せでは、
たとえそれが数千個あったとしても、絶対に見つからないような手法だしな。
「観察」してると考えが裁量に傾きそうになるが、
それを無理矢理厳密にプログラム化する過程で「一般的」なものから外れていく、
とでも言うしかない。
プログラミング言語を自然言語並みに使いこなせないと難しいと思う。
最適化は最後に一応やってみるが、
結局は最適化の結果よりも「仮説」として演繹してきた理論を重視した方が良い結果になる。
要は、自動でやるにせよ頭を使うにせよ、
テクニカルそのものを新たに創造するような過程が無いと厳しいってことだと思う。
自演乙ww
>>715 エラそうな事を言っているけど、
> パラメータを変えたパクリEA→パクリEAのループで、ロジックはそれほど変わってはないだろうし
ここはおまえが来るスレではない。
>>729 その通りだね。
よく読み返すと、最適化以外の話を叩いてる奴って。。。
クズだったんだなw
公開されているEAでBTが数年間右肩上がりの物ってありますか?
損切りしないEAはだいたいそんな感じ
ぇ!、強制L/C でガタといかない?
証拠金をふやせばいい。
ありがと! レバ 1 で BTしてみるよ
736 :
忍法帖【Lv=37,xxxPT】 :2011/08/31(水) 14:48:21.19 ID:/3kAvfJX
カーブペッティング
737 :
Trader@Live! :2011/08/31(水) 21:53:08.71 ID:AGZDeBjE
配列も変数も関数に入る前に宣言しています ---- double tick_p[]; int tick_count; int start() { tick_p[tick_count]=Bid; Print("hozon ok tick_p "+tick_p[tick_count]); tick_count++; } ---- とBidを配列に保存していきたいのですが、うまく代入ができていないようで、試しにPrint()したところ、0でした Print("hozon ok tick_p "+Bid); と直接Bidを表示したり、 testという変数を用意して、Bidを代入して、Print()表示した場合にはちゃんとBidが表示されていました 応急処置としてtestを配列に代入してみても0でした MarketInfo()を使用しても0でした 配列にBidを代入する場合は何か特別な方法が必要なのでしょうか? あるいは不手際があれば、教えてください よろしくお願いします
739 :
Trader@Live! :2011/08/31(水) 22:17:06.57 ID:AGZDeBjE
>>738 ありがとうございます
ExtMapBuffer1[]の例から、関数外の宣言の場合は不要なのかと思っていました
数字を入れたら動きました
ただ、extern int tick_saveという外部変数を用意していて、この数だけ配列を用意しようと考えています
単純に
double tick_p[tick_save];
とすると、関数外の宣言の場合はエラーになってしまいますが、割り当てる方法はあるでしょうか
742 :
Trader@Live! :2011/08/31(水) 22:29:55.24 ID:AGZDeBjE
リファレンスを示してもらった意図とは違うかもしれませんが、 とりあえずinit()でArrayResizeでリサイズすることにしました ありがとうございました
>>739 init()とかでResizeすればおk
744 :
Trader@Live! :2011/08/31(水) 22:36:14.12 ID:AGZDeBjE
>>718 最後に書かれているように
PF至上主義で追っていって、最後はスーパーカーブフィッティングでEndだよ
>>722 それ使ったら、「Ratio 0.5以上で有効」なところを3とか出て、逆に怖かった
748 :
Trader@Live! :2011/09/01(木) 19:55:12.13 ID:w8u8r9FG
なんちゃってコーダーなので、プログラムの流儀ていうのを知らないだが。 関数の中で、取り扱う変数やらが多くなって、また戻り値やら、 使った変数をまた別の関数でつかったりと、 どうもスパゲティ化してしまう。 シンプルなプログラムを作るためのお約束事ってありますか? 例えば、関数の中で扱う変数はできるだけ少なめにとか(そんなのあるか知らないけど)。。 ふう。
>>748 具体的なアドバイスは無いけれど、そういう問題意識を持つのが一番重要と言ってみる。
751 :
Trader@Live! :2011/09/01(木) 20:36:39.50 ID:w8u8r9FG
うーん。元webdesignerで、JavaScriptとかActionScriptとかは独学で 勉強したけど。 いかんせんデザイナーなので、、ちゃんとC勉強した方がいいかなあ。
>>748 MQL4では基本的に無駄足掻きw
グローバル変数をそれ自身とそれを扱う関数のみのライブラリにする手もあるけど
関数呼び出しがバリバリ増えるんでパフォーマンスが心配なのと、再利用性もない
のにバイナリが複数できちゃう上に格納フォルダも分かれちゃうんで、扱いづらくて
ウザいだけなんでお勧めできない。
>>748 俺はすべてオブジェクト指向で開発してるよ
>>754 最初、UMLとかフローチャートとか先に書いてからプログラム書く?
ていうかクラス使わないからUMLじゃないのか。
とりあえず、いきなり書くのか?それとも何か設計みたいなものを書くのか?
あ、
>>754 さんだけでなく。
みなさんに聞いてます。
プログラムの流れを整理する何か?が欠けているようで、
なにかいい方法あるのかしらん。プログラム板往けっていうのは無しで。
758 :
Trader@Live! :2011/09/01(木) 21:23:13.76 ID:jNtjtuws
そもそも道具でしかないんで、そんなのに時間かけてるぐらいなら相場を勉強するわ。
>>757 EAなんて、フローチャートを書くほどのもんじゃないと思うんだ。
きれいなプログラムを書くのが目的じゃなくて、利益を出すプログラムを書くのが目的なんだから。
ただ、最低限のモジュール化はしておいたほうがいいと思ってる。
モジュール化をすることによって、開発効率がぐんとアップするから。
>>758 相場が大事っていうのはわかるんですが、道具を使いこなせるとその相場の動きに
よりよく対応できるのでないかと。
言ってることわかるかな。ごめん。
>>760 MT4だとフローチャートはともかく、UMLはプログラムにマップできないから使いづらいと思う。
オブジェクト指向な言語機能も無いし。
俺も道具に慣れてたほうがいいと思うよ。
誰もがゴールデンクロスみたいな単純なアイディアでやってるわけではないし。
言語機能で用意されてなくてもオブジェクト指向ライクに作ることは可能だよ。 注文、ポジション、資金、などを各オブジェクト単位にして切り出していけば独立した処理単位になり、グローバル変数への依存だらけのスパゲッティコードは避けられるよ。 さらにEntryやEntryCloseなどもオブジェクトにしていけばブロックを組み合わせるように売買ロジックを組み立てられるようになるよ。 そうするとinit()関数の中身自体はびっくりするほどコード量が減るはず。
オブジェクト指向ライクって MT4では適切な関数という事でOK?
>>763 関数とオブジェクトの内容を入れとくメンバ変数の組かな。
オブジェクトの外からはメンバ変数に直接触らないようにすればおのずと独立性が確保されるよ。
つ構造化プログラミング
おまえらソース管理ってどうやってる?
>>768 いつでも前のバージョンに戻れる。実験的なコードはブランチで管理できる。
安定バージョンを保てる。
俺はないともう無理
PFは2.39、1年で6388pips、 maximal DDは7.68%とrelative DDは17%になったけど、 pipsでいえば575pipsと1800pipsのDD・・・ 575pipsといえば資金が1/3ぐらいになってもおかしくないもんな・・・ いやDDを上回る利益は出てるんだから問題はないのかもしれないけど
間違えた1800じゃなくて180pipsでした
>>726 お〜い。久しぶりに大好きな話が来たよ〜。
議論してあげなよ〜w
いつにレスしてんだよw
過剰最適化を避けるために 成績最高じゃなくてもいいから周辺に地雷のない無難な解を出したい、って話なんだけどな
>>774 >>697 の人なら直後の
>>698 がすべて。
最適化を魔法か何かと勘違いしてないですか?
FX以外の一般的な最適化は解を得ればそれでお終い。
解の隣が地雷であろうと関係なし。
FXの場合はその解を不確実な未来に適用しないといけない。
解の隣が地雷だとかなり怖い。
付近に地雷などない理想的な解でも、未来に通用するかは未知数。
最適化に幻想を抱いているようじゃ可能性は低いでしょう。
過去の静的な問題を解けば終わりじゃないんだから、最適化に血眼
になるのは逆効果。
最適化以前にしっかりとした戦略・戦術・エッジなどがあれば
大丈夫かもしれんが。
>>775 ロバスト最適化な方法を使えばそういうケースではあまりいい解が求まらない。
逆にいい解がみつかればそれはしばらく未来までは使えるだろう。
ま、希望的観測だけどね。
>>774 否定的な意見を重ねて申し訳ないけど。
今まで行ってきた最適化は過剰最適化だから、FTで失敗すると
考えているんですね、きっと。正しく最適化すれば大丈夫だと。
その考えは違うと思いますよ。
期待値マイナスのEAに対して行う最適化は「過剰」であろうと
「適正・適切」であろうと関係ありません。
期待値マイナスのEAはどのように最適化しようと、フォワード
では元の期待値に収束するのが普通でしょう。
話をぶった切ってすいませんが、デコンパイル対策にはデータスクランブル?が良いと聞いた のですが、実際作ったEAにどうソースを入れてスクランブル化したらいいのでしょうか? デコンパイラーで開かれても中身がスクランブル化されてればクラックされないで済むものと 期待してます。 ダメ初心者ですが、ご指導よろしくお願いします。
>>777 過去儲かっていたEAが、なぜ今は勝てないのか?
ロジックが悪いのではない
今の相場にパラメータの数値が合っていないだけ
と
>>715 で言ってるだろうが
君の言う話は正論だが、悪いが当たり前すぎて何の役にも立たない
>>780 失礼
>>715 はどんなEAでも勝つ時期もあれば、負ける時期もある
ただそれだけのことで、コメントするようなことじゃないと
思っていました。
最適化地獄に陥った人をその呪縛から解き放つには、私では
役不足ですね。
何度騙されても何度裏切られても、最適化に縋ってしまう。
最適化とはそれほど魅力的であることは否定できません。
でも期待値マイナスのロジックを最適化で取り繕ったところで、
フォワードではマイナスに押し戻されます。
うわべだけ飾ってもなかなか通用しません。
最適化には期待値マイナスのロジックを蘇えらせるほどの魔力
はないようです。
まあ今まで一生懸命頑張ってきたものを無駄の一言で片付けられる
のも悔しいでしょうから、どんなEAでもこのように最適化すればFT
で結果が出せるという神を待てばいいと思いますよ。
そんなものがあるなら聖杯でしょうから、ここには晒したくないかも
しれません。その時はメールでお願いすればいいでしょう。
>>780 「今の相場にパラメータの数値が合っていない」
これが真であると、誰も証明出来てない様に思うのだがどうよ?
真でなければ、いくら最適化を議論しても不毛。
モンテカルロ法でバックテスト結果から信頼度99%でDDはいくらですって出してくれる ソフトがあるんだけどPFには応用できないもんかね。
>>780 過去ってどれくらいのこと言ってんだよ?ここ1年のBT程度ならこの8月は大相場だったから無理かもなw
10年のBTでどの月も+なら来月もたぶん勝つだろうな。でもそんなEAないしあっても利益が少ない。
だからみんな2年、1年ってBT期間減らすリスクとって高利益を狙ってるわけだ。
どういうバランスを狙うかはお前次第だろ
俺はほぼあらゆる通貨ペアと期間で勝つEA持ってるけど、利回りは他に劣るしつまらんから使ってない。
ミドルリスク、ハイリターンを狙うくらいがやりがいあるかな
>>781 地獄呪縛裏切魔力神聖杯w
どんだけ厨二病こじらせてんだよww
聖杯って誰が最初に言い始めたか興味あるわ。 たぶん欧米なんだろうけど、普通なら必勝法で済ますところをEAに限って大げさな言い方するよね。 お前は十字軍か、インディ・ジョーンズかと。
聖杯は英語でなんて言うの?
>>781 役不足とはまた大きく出たなw
期待値マイナスってどういう意味だよ。
どんな最適化してもFTの瞬間からマイナスになるって意味か?
無限にFTすればどんなEAでもマイナスになるってのは否定しないが。
最適化後のある程度の期間は+になるEAを前提に話をしようぜ。
>>789 サンクス。Holy Grail EAでぐぐったら、おもしろかった。
次のEAはHoly Grail II って名前にしようw
>>785 投機の世界は厨二病くらいのがいいかもしれんぞ
>>782 現に、かつて名を轟かせていたEAで
今は誰もその名を口にしないようなEAをOptimizeして爆益中だ
ただ、たまたまOptimizeが成功した一例にすぎない
ボロ負けのパラメータ(同EA・同ペア)もあるし、爆益中のもいつまで続くかは分からない
>>781 Optimizeしないで何年も固定パラメータで勝ち続けるEAがあると思っているのか?
そんなのはBTの世界だけだ
ロジックが糞なEAを何とかしようという前提で話をするのはやめろ。まるで意味が無い
ロジックそれなりに良いけど、今の相場に合っていない、という前提だ
>>792 >現に、かつて名を轟かせていたEAで
>今は誰もその名を口にしないようなEAをOptimizeして爆益中だ
最近こういうスレ違いが増えてるな。
>>793 そうだな、スレタイを100回読めと言いたい。
だな。拾い物EAのパラメータ調整だけの話ならEAスレに行けと
798 :
Trader@Live! :2011/09/03(土) 20:50:04.45 ID:WrYm/m4x
EA乞食スレは落ちたのか
自作EAにAIを組み込もうとしたらif文とfor文だらけでぐちゃぐちゃになった。 配列を扱ったあたりからfor文が異常にに増えてきて、途中からワケワカメになって挫折した・・・ プロのプログラマーってこういうのを軽々と組むんだろうね・・・凄過ぎるよ・・・
800 :
忍法帖【Lv=39,xxxPT】 :2011/09/03(土) 21:12:15.55 ID:nz/MDwR7
forはあぶないっす
AIを組もうと言うのにfor,ifで挫折とはこれいかに
俺も昔のFortranとかで組めと言われたら余裕で挫折するわ。
MQL4はFortranと同じレベルだと思うけどねw
>>804 あ、その意味で書いた。俺、MQL使いじゃないもんで。
DD減らすのってむずいな あともうちょっと減ったら実用したいと思っているんだが
またそんなスレ違いを。
いや、
>>805 宛てね。
じゃぁなんでこのスレに?w
>>808 トレードのアイディアはプラットフォームに関係ないからね。
179の人のやってるみたいなのが好物だけど、自分じゃMT4でやってみようとは思いも寄らないです。
>>809 まあね、チャート分析・統計手法は共通してる部分が多いし、売買システムもいろいろあるしね。
EasyLanguageとかどうなんだろうな。他によさげなプラットフォームってなんかあったっけ?
俺はkakakuFX mk2というかJForexでやってる。Javaは以前から使い慣れてるから。 ただレバが低いから、海外のMetatrader業者に注文だけ流せるブリッジ作れたらいいな、とは思ってる。
>>812 mk2ってバックテストが異様に遅くない? というか、1週間分の足を落とすだけで
何分かかんだよって感じで使うのあきらめたよ。
もともとJavaは性にあわないしw
>>813 遅いよ。ただヒストリカルデータの品質は良いと思う。
自分はバックテストというか最適化にはあまり比重を置いてないので気にしてない。
>>814 んー、まぁ最適化は使えないにしても何年か分は確認したくない?
どこまで足が落とせるかなんて試す間もなく使うのあきらめたんだけどw
なんか別のシステムで確認してるのかな。
>>812 Javaか・・色々と広がりはありそうだけど、めんどくさそうだなあ。てか最近Javaやってないからもう忘れたw
取り敢えず自分の考えているロジックを実装できなきゃバックテストも何もあったもんではないので。 というわけで、まだプログラム作成中ですよ。
最適化の「隣のパラメーターによる結果は〜で地雷・・・」な話が何回も出てるから提案したいんですけど。 目的関数を極値そのものではなく、極値と近くのパラメーターからの値を平均して丸めるという手法も あるみたいですよ。ロバート・パルドさんの本に載ってあります。 フォワードテストは、つべこべ言わずどんどんやった方がいいです。株屋や相場師に限らず統計学者もやるそうです。 二重盲検法というらしいです。 ただ、一発のフォワードテストだけでは、ただの偶然ということもあり得るので、最初に決めといたステップウィンドウ毎に 最適化テストおよび最適化後テストのウィンドウもコロコロ変えていく必要があるそうです。 パルドさんは単一市場あたり10ステップぐらいはやれ、とか言ってます。 まあ皆知ってるか。当たり前すぎる。こんなんよりも、 プログラマー級の開発スキルとかに憧れる。 自分のEAなんて豊嶋先生コードにオリジナルを10行くらい足すだけで、いつも物足りない。
上の方でスクランブル化について質問していた人いるけど、おれもよくわからないからエロい人に教えてほすい。 最近おっ?と思ったEAをデコンパイルしてみたら、ほとんど内容が意味をなさないコードで埋め尽くされていて string gs_XXXX = "Key Scramble SC2"; っていう文字が目についた。 これってどうやるの??
今までユロドルだけでテストしててせいぜい安定して取れるのは月400pips程度だったんだけど さっき夜中にふと起きてスイスフラン円試してみたら、 1ヶ月で2800pips取れててDDは15%程度、勝率が平均70%ぐらいあってワロタwwww 通常は15%は不安だけど月2800pips取れるなら月曜日から早速試してみようかwwww まぁ上手くいく気はほとんどしないけどこれは試さざるを得ないwwwww
逆張りか
>>821 いえ、MAの順張りです
そこにフィルタをいろいろかけてますが使ってるインジ系の関数はiMAだけです
いまさらだけどpipsでいくつ取ったとかっつーのはとっても情報量少ないよね。 ロット数も元本もわからんし利回りもわからん。 一日1000pips取ってても0.01lotなら残念だしねえ
突然の大きなリターンが訪れたことは大変よろこばしいことですが、そのリターン大きさは バックテストなどから推定できる範囲内の大きさのリターンかどうかを考えた方がいいと思います。 もしそのリターンが異常値であるならば、システムに調整を加えて再最適化するのも良いでしょう。 ボラティリティの急上昇が再度来ても、耐えられるか、またあわよくば利益にしてしまえるかのように システムに学習させましょう。 価格変動が急変したら、システムが異常に大きなリターンを得ることはしばしばあるのです。 そしてそれは、後にその大きな利益を上回る大損失が訪れることの兆候でもあるのです。
____ / \ / ⌒ ⌒ \ 何言ってんだこいつ / (●) (●) \ | 、" ゙)(__人__)" ) ___________ \ 。` ⌒゚:j´ ,/ j゙~~| | | | __/ \ |__| | | | | | / , \n|| | | | | | / / r. ( こ) | | | | | | ⌒ ーnnn |\ (⊆ソ .|_|___________|  ̄ \__、("二) ̄ ̄ ̄ ̄ ̄l二二l二二 _|_|__|_
AIって人工知能の? MQLに組む事できるの?
AIって言ってもピンきり。スキル次第でいくらでも組み込めるだろ
随分「AI」も敷居低くなったなw
ニューラルネット使ったEAとかは随分と前からあるけどな。
詐欺師?お前のことかい?
難読化ツールを使ったんだろう
難読化ツールって意味ないよねぇ... ex4の形で安全に公開する方法があればいいんだけど。
836 :
バケツ大佐 ◆5Lg3WltxEI :2011/09/05(月) 13:14:07.28 ID:mK5qfqT9
システム売買しようと思うんだけど フォレックスとセブンインベスターズどっちがいいの?
>>834 >>835 そのスクランブル化したex4をデコンパイルしたら全く機能しない内容で出力されたよ
この方法なら外部アプリとかが不要になるから良いと思うが。
ちなみにmqlの難読化ツールなんてあった?
本家フォーラムで、中国のソフトメーカーが ex4をデコンパイルできないex4に変換するツールを売ってたよ
とは言ってもデコンパイラのバージョンが上がったら終わりだよね。
デコンパイラ作ってるところに頼むと、完璧なプロテクトができている現状。。
デコンパイラを解析して、弱点を探ってデコンパイラが読み込んだらダミーのコードを吐くように変換してるのかなぁ
>>840 元々自分でデコンパイルを流行らせて、今度は返す刀でプロテクタを販売と・・・
商売上手いよねw
ポジったらディスプレイの電源ONにしたいんだけど、WinAPIで出来る?
試したことないからダメかもしれないが、マウスを動かすAPIでマウスポインターを動かしたら電源付くとかないかな?
その手があったか なんかThunderBirdがメール受信したら電源ONになるから、そういうAPIがあるのかと思った
848 :
Trader@Live! :2011/09/06(火) 13:16:57.47 ID:Yo6+nA1A
グローバル変数を多用するのはあまりよろしくないですかね。 関数間で変数をやりとりするのが多いので重宝してますが。だんだんと、わからんめになります。 プログラムの基本としてよい変数の扱いかたってありますかね。
ちょっと上でそんな話が出てたな
そんな話はまったく出ていない。
>>848 748あたりかな。まあ同じ人かもしれんが。
853 :
Trader@Live! :2011/09/06(火) 14:17:37.68 ID:Yo6+nA1A
>>849 ありがとう。このブログ参考になります。感謝!
EAに特化した話じゃねえだろ 初心者スレ逝け
グローバル変数は頭文字を大文字、で十分じゃね
MQLの命名規則ってみんなどうしてる?
俺は他言語で書くときと同じようにしてる strValue、nValue、dValueみたいな感じ。関数の外の変数は「_」を先頭に付加
>>857 ハンガリアン記法ね。
廃れてきたとはいえ、オブジェクト指向言語みたいに命名する訳にもいかず、
まあ、仕方なく使っている感じ。
>>858 オブジェクト指向言語みたいな命名法て何?
そんな特殊なものあったっけ?
>>859 キャメル記法メインで英語っぽくする感じ。
それでクラスのメソッドの頭は動詞になるとか。
クラスも含めて型チェックが厳しいので型の接頭辞が(建前上)いらない事になっている。
EAに特化した話じゃねえだろ 初心者スレ逝け
>>861 EAに限った話だよバカ。
普通のプログラミングならこんな小細工必要ねーんだよ。
別にEAに限った話しじゃないが、開発全般な話題だから別にいいだろ。自治厨うざいわ
まあたいしたネタもないしな。お前ら昨日のスイスは乗り切れましたか?
盛大に死亡に100フラン
>>864 あれでDD食らわないEAはどうにかしてるw
ただ、ラッキーな方向に滑ったので、少し救われたかな。
>>864 すげ〜損してドテンして
結局通常と同じ利益が残った
堅牢性とかレバの掛け具合については確信がもてるようになった(笑)
あんまりドカンと勝つことはないと再確認できたしね
あーいうのを検知して荒稼ぎするEA作りたいな
荒稼ぎはともかく損切りして取引を控えるくらいのことは当然やるべきなんだが、 市販のEAでもできてないんだよな。
成行で注文して、自動的に20pipsのストップを設定できるEAありませんか??
>>871 ありがとう。EA初心者だからよく分からないが調べてやってみる
実際に体験したことは無いけど、滑ってストップ効かないっていうのはあるだろうな きちんとクローズされてるかのチェックルーチン用意したほうがいいのかもな。面倒な、、、
>>873 11:02:21 EURUSD,H1: 成行で売り 1.42020
11:02:22 EURUSD,H1: 約定 1.42607
11:02:30 EURUSD,H1: SL/TPを設定 1.42607 sl: 1.43115 tp: 1.42515 ok
で、約定したのが、
11:03 1.42236 EURUSD,H1[tp/gap]
滑りに滑って爆益w
>>875 滑るって自分が不利になる場合しかないと思ったらそうでもないのか?
>>872 トレールなら、MT4の機能があるけど?それじゃだめなん?
>>876 トレールじゃダメなんだ。
Entryした瞬間にEntry価格から20pips固定でStopを置きたいんですよん。
どなたか分かりませんかね?(^_^;)
>>876 どっちにも滑るでしょう。ちなみにこの1つ前のポジが、
10:07:06 売りポジ EURUSD at 1.40972 sl: 1.41822 tp: 0.00000 ok
で、約定したのが、
11:02 1.41916 EURUSD,M5[sl/gap]
9ピピ以上滑って爆損w
成行き注文するときにストップを入れるだけでないの? 何故にEAでないといかんの? 俺何か勘違いしてる?
>>880 勘違いしていないよ。確かにStop入れるだけなんだけど、
Entryごとに自動で出来たら手間が省けると思って。
もしかして手動注文だとStop値がずばり価格値で入れないといけないから そうじゃなくて、ストップ値の値幅20pipだけ固定させて成行き注文したいってこと?
了解。 難しくないから誰かやってくれると思うよ。 僕が書いてもいいかなって思ったけど、ライブラリ使うし、まだ初心者だし、 手馴れた人を期待。
>>884 今まで既存のindicatorをいじったりした事はあるんですが、
EAについては初めてで、今いろいろと情報収集しながら勉強しています。
あんまり人に頼りすぎるのも良くないとは思いますが、助けてくれると嬉しいですね\(^o^)/
>>884 さんもありがとう!!
>>884 基本的過ぎて、消えてほしいなとオモタ
ticket = OrderSend( Symbol(), 〜
if (ticket>0) {
OrderSelect( ticket, SELECT_BY_TICKET );
OrderModify( OrderTicket(), OrderOpenPrice(), OrderOpenPrice()-Point*20.0, 〜 );
>>886 int sign = 1 - OrderType() & 1 << 1;
OrderModify( OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - sign * 20.0 * Point, 〜 );
ロング/ショート両対応ならこうじゃね?
889 :
Trader@Live! :2011/09/08(木) 03:51:16.61 ID:g23laa9F
成り行きポジション用のEAって作ったことないからわかんないんだけど。Orderselectでマジックでなくチケットなのは、成り行きだから?
複数ポジション持ってたらやばくね?
DDの%ではなくて金額もしくはpipsのほうだと、どのぐらいまでなら許容範囲にしてる? 自分的には1年分の1ロットずつの取引で500pips分以下までなら、っていう基準でいます そうとう厳しいので基本的にクリアできませんが
上のは通算ではなくてMaximalDDの欄に表示されてる数字です
893 :
Trader@Live! :2011/09/08(木) 04:05:50.71 ID:g23laa9F
>>889 ゴメン、成り行きじゃなくて手動注文の事ね。
手動注文って複数ポジション取れるんだっけ。
>>887 >>1 > EAの開発をメインとしたスレです。
> 姉妹スレとの住み分けを考慮しながら利用しましょう。
サンプルEAを見れば3秒で判る話しで、ワザワザ質問するまでもないこと。
このスレはEAを開発することがメインであって、MQLのQ&Aがメインじゃないので、そこんとこヨロシク。
それとFTすれば判るけど、OrderModify()の後にエラー処理が必要だから頑張ってな。
>>888 >>889 この手の処理はサンプルEA「MACD Sample.mq4」に由来するから。
// check for long position (BUY) possibility
if(MacdCurrent<0 && MacdCurrent>SignalCurrent && MacdPrevious<SignalPrevious &&
MathAbs(MacdCurrent)>(MACDOpenLevel*Point) && MaCurrent>MaPrevious)
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"macd sample",16384,0,Green);
if(ticket>0)
{
if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
}
else Print("Error opening BUY order : ",GetLastError());
return(0);
}
895 :
867 :2011/09/08(木) 09:34:05.81 ID:oTPuM41+
>>873 ストップなしでも死なないレバにするという原則を持っているからね
システム不具合に備えて注文上は入れてるけど
正常動作してればそれに掛かる前にドテンしちゃう
>>895 俺も損益の曲線が上にも下にもブレない偏差の少ないのが好きな安定志向なんだけど
先日のスイスのやつは早過ぎてドテン注文が追いつかなかったw
そういう面で業者の選考も大切ですなぁと思う今日この頃
897 :
Trader@Live! :2011/09/08(木) 09:56:04.80 ID:g23laa9F
MQLの質問は以前からここで盛んにされてたけど。EAの開発はMQLでやるんだし、区別できない範疇も多々ある。他人が書いたMQLをみて発見できることもある。 テスト結果をコピペして、これどう? とかいうのより、俺的には価値あると思う。
>>897 おいおい、初心者スレに「ゆとり隔離」となってる理由を思い出してくれよ。
頼むよ、ホントに。
俺は新参なんで逆にどういう位置づけになってるか聞きたいな。 例のインジケータネタや人工知能的な話題が出ても違うっていうやつ出てくるし、 プログラミング初心者ネタでも違うと言われる。 このスレで何について語ればいいかさっぱりわからん。 ロジック伏せて自作プログラムのPF自慢しても仕方ないし。
初心者スレってMT4の使い方スレじゃないか?
>>898 はここで何を望むのか教えてくれ。
ケースバイケースでその都度判断するしか無いんじゃないの? でも基本は「自動売買」だよ。 今回の場合、「手動注文」の補助であり、なおかつ、初心者レベルのプログラミングである、 ということを考えれば、スレ違いと言われても仕方がないよ。 で、こういう初心者の方々の質問は散発的なので、 ちょっと前に落ちてしまった依頼スレの維持すらできないという困った状況なわけで。。。
今のところこのスレは、こんなもんか MQL質問 テスト結果評価 売買アイデア テスト効率化 インジケータ 特殊インジケータ(波形フィルタ等) 確かに範囲は広いな、 でもこれを分けると僻地スレになりそうだなあ。
ちなみに、 今回の初心者の方の要求は既にサンプル内にあると思われるのもまた不毛な話でね。 experts\scripts\modify.mq4
>>891 インジケータは専用スレが立っているぜよ
初心者は初心者スレ池とかあるけどさ。 初心者は特に大事にしましょう。だって大切なカ○なんだもんw というのは冗談です。
>>905 もしかして俺がスレの範囲の認識を間違ってるかもしれないけど、
>>891 はEAの話のつもりだったんだけどEAのDDのpipsってインジスレの範疇になるの?
>>907 >>902 でいうところの「テスト結果評価 」じゃね。
インジっていわゆるテクニカル指標をMT4上で表示するためのプログラム
って事でしょ。
iBandとiStochasticを組み合わせたSignalでこのチャートだとこういう結果になるんだけど、もっといい評価関数・手法は ないか、とかそういう議論だとEA開発スレっぽい感じがするなあ。 そういうばポジションを置くロジック・手法の議論なんて久しく出てないな、開発スレなのにw
>>899 > 例のインジケータネタや人工知能的な話題が出ても違うっていうやつ
折れ、そのインジスレに追い出された通称電気屋w
EAの為のインジですらスレチと言われたんだから、さらにその前のMQLのQ&Aがおkなのは、釈然としないな。
>>910 MT4やMQLの話が皆無だったからだろ。
別言語で作ったスクショを延々貼り付けてるだけなのと、全く変わらないという状況。
電気屋を追い出した当時のメンバーなんてもう居ないんじゃないか
>>910 俺としては電気屋さんのネタこそが開発スレに相応しいと思ってます。
>>870 みたいにEAありませんか?はさすがにすれ違いだと思うけれど
注文時に自動的にストップを設定するというテーマ自体は取引自動化の一部なわけで排除しなくてもいいと思う。
つまらない話題だけど。
初心者が多くなっているんで、一言だけ独り言。 EAで勝てているものってソースみたりすると、単純なテクニカルサインでの売買じゃない。 いや売買自体は実は単純なテクニカルサインなんだけど。 どのテクニカルを利用するか、相場の状況を判断させるロジックが肝だったりするな。 となると、単純なプログラムを覚えただけでライブに参入したりすると痛い目にあったりする。 (テストしてみりゃ単純なプログラムでは勝てないのは直ぐわかるけど) 初心者が豊嶋本とか、必死でプログラムを覚えたとしても多分勝てない。否、絶対勝てない。 勝てるようになるには、もう一つ山を越えなければいけない。 テクニカルと相場の研究と併せて、MQLを自在に操る為のスキルが鍵になります。 これがC言語等の他言語を操っていた人たちが優位点を持つ理由であります。 初心者が自作EAで勝つためには相当な努力が必要です。 そうでなければまだ裁量の方がマシかもしれません。
>>914 なんか的外れな上に全然関係ない話だな。
電気屋=ちゅるや=fai_fxでおk?
ところで、SLの決め方いいのないかなぁ。
固定値だと4年以上は苦しいし、かといってATR使って線形予測したくらいじゃ
いいのできないし。どうしたものか。
今のところ固定値で行くしかないなとは思ってるんだけど。
初心者へ向けての独り言ね。 電気屋とfaiさんは別人でしょ。
917 :
Trader@Live! :2011/09/08(木) 13:27:05.88 ID:g23laa9F
>>915 固定値だと4年間は苦しくない、っていうならそれで十分じゃねえの。
おまえら仕事は?
DDの話しようぜ・・・
まぁ結局は自分で納得するまでやるだけだし、他人がOKともNOともいっても
自分がよければおkなのだろうし別にいいんだけどさ
人の意見聞いてもあくまで参考にしかならないのは承知さ
>>915 損切りは俺のやり方が悪いのか、たいてい損切りとして条件書いて切るより、
利確のタイミングかドテンのタイミングで切ったほうが結果が良くなることが多いような
だから、損切りは特に設定せず、損が出ないようなロジックを作るほうに全力を
注いだほうがいいという結論に達しました
>>920 まぁ戦略によるよね。
SLの話1つとってもどんなEA目指してるのかで全然違うよね。
おれはTP=20〜30、SL=100くらいで、4年でPF=3以上が最低ラインかな。
あと取引回数は200回以上。もちろん本当はもっと回数増やしたいんだけど うまくできないw
923 :
Trader@Live! :2011/09/08(木) 13:46:30.22 ID:g23laa9F
>>923 1時間足。あとレンジを見るのに4時間足。業者で違うから本当は4時間足は
使いたくないんだけどね。
925 :
Trader@Live! :2011/09/08(木) 13:56:50.76 ID:g23laa9F
1時間足で20〜30のtpは少なくない?atrにもよるけど。
損切りに限らずあらゆるところで使う数値に対して絶対値にするか相対値にするかは迷うところだなぁ 相対値の方が堅牢性の高いシステムを作れるはずなんだけどこれが非常に難しい 絶対値で作ったEAはいつか壊れるんじゃないかっていう不安があるよね
927 :
Trader@Live! :2011/09/08(木) 15:37:49.59 ID:g23laa9F
ボラティリティが変わっていくのにね。固定だと対応できない。
3200万円ちかく種あるんだけどFXはじめてでまだ投資できてない 誰か運用してぇぇっぇぇ
929 :
Trader@Live! :2011/09/08(木) 17:11:24.55 ID:g23laa9F
釣りには誰も反応しないはずだが。
反応してるじゃねぇかw
931 :
867 :2011/09/08(木) 17:16:14.91 ID:oTPuM41+
>>926 俺は仕方ないから標準偏差をベースにしてる
何かもっと妥当なのはないものだろうか
SLは俺もATRの倍数でやってるけどどうにもしっくりこない 直近の安値高値を基準でもいいんだけど最近はそこを割り込んでから 元のトレンドに帰っていくとかやらしすぎるわ!!!!
>>925 そりゃ大きくしたいけど、TPも大きくすると安定しないのよ。
>>927 そんなのわかってるんだよ。だから固定じゃない方法についての話なんだよ。
いい方法知ってるんなら教えてくれよw
>>928 よし、全部無くなってもいいならおれがもらってやる。
>>932 > 直近の安値高値を基準でもいいんだけど最近はそこを割り込んでから
> 元のトレンドに帰っていくとかやらしすぎるわ!!!!
誰もが注目している分かりやすいSLポイントは狙われるってことか。。。orz
935 :
Trader@Live! :2011/09/08(木) 18:42:35.02 ID:g23laa9F
損切りが利確より大きくてもそれを上回る勝率ならいいんだけど。遠すぎる損切りは胃に悪い。
(・ω・`)
937 :
Trader@Live! :2011/09/08(木) 18:57:49.41 ID:zLkP7Av4
単純過ぎて申し訳ないのですが レートが ○○(数字)になったらアラートを鳴らす というインジを作ってくれる方いたらよろしくお願いします。
>>937 MT4に元からついているアラート機能じゃぁどうしてだめなのか。
940 :
Trader@Live! :2011/09/08(木) 19:10:13.60 ID:zLkP7Av4
>>938 すいません
調べたらできました。
どーもどーも
941 :
Trader@Live! :2011/09/08(木) 19:20:32.80 ID:g23laa9F
大切なカ○ですので仲良く逝きましょう。
NGID: g23laa9F
つーか
>>819 や
>>837 や
>>844 が言ってる奴って結局誰もわからんの??
おれもあるEAをデコンパイルした時、一度見た事があるんだけど、やはりKEY SCRAMBLE SC2
って出ている以外は意味不明なコードで mq4化された
難読化ってレベルじゃねー気がするんだが・・・
難読化?した状態でコンパイルして、デコンパイルされた時点でもう読めない状態になる
誰かやり方知ってる??
しつけーな。EA販売してる詐欺師は消えろよ
945 :
Trader@Live! :2011/09/08(木) 19:33:22.87 ID:g23laa9F
>>933 俺初心者なんで参考にはならないかもしれんが、損切りはatr で値幅をみて、dmiで方向を見る。その差分をノイズとしている。そのノイズが損切りの値にしている。atr だけより若干ましだと思う。
隣の小学生がバレエ時間なので人前で着替えはじめた。なので忙しくなったので落ちる。
お前は詐欺師かもしれんが、おれは無料配布だよ しかもIBもやっとらん クローズドフォーラム内のメンバー用だよ カス
>>943 そのデ゙コンパイルしたのをまたコンパイルして元と同じように動くのか?
動くならソースとしては使えるだろうに。
>>947 デコしたソースを再度コンパイルしても使えないんだよね。
だからmq4の時点で何か特殊な事やっているんじゃないかと
じゃぁデコンパイラの問題じゃん。
ちゃうと思うが?
クローズドの無料配布ならソース見えたっていいだろ、、、
そうもいかないのです・・・
>>950 MT4で動くex4がソースに戻せないんだろ?
デコンパイラの問題じゃなくてなんなんだよ。
上で出てた中国人かデコンパイラ作者のツールかなんか別のツールで変換されてるんだろ。
デコンパイラ作者がやってるのでなければそのうち対応すんだろ。
DLL化して保護すれば少々のことでは解析されないと思うが。
>中国人かデコンパイラ作者のツール 具体的な名前教えて
>>946 それで俺達に対するメリットは?
なんでオープンな俺達が、そのクローズドな奴らを助けなければいけないんだ?
NGID: lIP5IBrY
じゃあ協力してくれた人にだけEAやるよ
こんな所で聞いても無理
要らんがな。
興味ないと誰も協力しないんだろう。 最近鬱気味だなあ。 チャート研究したり、プログラム打ったりしても それが社会的に何も貢献しないと思うと。 株ならそれが投資として社会に役立つかも知れんが。
株とかモロインサイダーで儲かるから社会どうのこうのないと思うよ。就職した会社の合併情報聞いて売買して大もうけしてそう思った。
そうだな。俺にはFXしかできないから。 たくさん稼いで消費すれば、周辺には良い効用があるかもな。 サラリーマンがちょっと羨ましい今日この頃。
たくさん稼いで、寄付をいっぱいすれば喜ばれるよ。
965 :
910 :2011/09/08(木) 23:35:39.36 ID:geshEkYo
>>911 > MT4やMQLの話が皆無だったからだろ。
その非難には当たらないなぁ。
確かに「遅延しないLPF」 のアルゴを作る為に、Scilabのスクショを貼ったこともあるよ。
でもそれって、インジスレのこれ↓以降の話し。
http://kamome.2ch.net/test/read.cgi/livemarket2/1304547533/14 そう、これ以前にここ開発スレに貼ってたのは全部MT4だよ。
スレチになりそうで控えてたんだけど、亀レス
>>868 > あーいうのを検知して荒稼ぎするEA作りたいな
難しいかな。今のIIRだとこんな感じ。
ttp://www.debuchan.us/uploda/img/up00005811.gif サインが出て無い!( ゚∀゚)アハハ
「+3σ付近からさらに上昇したら」という条件でシグナルを出せばよさげではあるけど。
ちなみに、この時のEUR/USDならなんとかなったかも。
ttp://www.debuchan.us/uploda/img/up00005810.gif >>913 > 俺としては電気屋さんのネタこそが
今はインジスレがあるから、そこで売買ロジックを考えればいいと思ってる。
ちなみに今は、EAをテストする為にLPFの整理中。
インジ+EAで3000行位で、EAとしては比較的大作になりそう。
>>902 EAの売買ロジックのインジでブランチした前例が出来てしまったから、今はこうだと思う。
> MQL質問 →初心者スレでいいと思う
> テスト結果評価 →ここ、開発スレ
> 売買アイデア →インジスレかもね
> テスト効率化 →ここ、開発スレ
> インジケータ →ここ、開発スレ
> 特殊インジケータ(波形フィルタ等) →ここ、開発スレ
イヤだと不快感を表明する人が居て、移動先があるなら粘着せずに素直に移動すべきだと思う。
だって、スレに粘着するのが目的ではなく、良いEAを作って利益を上げるのが目的なんだから。
>>915 > 電気屋=ちゅるや=fai_fxでおk?
違うよ、faiさんは雲上人ですよ。
>>931 > 俺は仕方ないから標準偏差をベースにしてる
俺も標準偏差ベース。
あの時のUSD/CHF、±1σ以内のボラが無いところから+3σまで上がってそろそろ反転しそうな時に介入?
難しいな…、このインジで売買したらSLだなぁ。
>>920 > DDの話しようぜ・・・
俺はDDを抑える為に、攻めの発想でエッジが効いたエントリーを目指している。
だからM1ベースで、そこにM30かH1相当のシグナルを出そうと。
だって、おかしいじゃん。一般的なインジはなんで足を替えるとシグナルが変わるのさ?
そもそも、最適なエントリーポイントは唯一無二なハズ。
MTF? 納得出来ないんだよね〜。
おっと、IDが変わってしまう。んじゃ、巣に帰るわ( ゚∀゚)アハハ
言い忘れ。 EURUSDの上に出ているのは、今朝初心者スレにレスったMT4-LevelStop-Reverse-vB0-4.mq4とSlope Direction Line.mq4。 IIRはサブウィンドウだよ。
俺もSL/TPをATRで可変にしたり値段に対するパーセントにしたりピボットの 値幅にしたりしたがあまり効果はなかった。 ところで最近の激動イベントの後数日から1週間くらいはEAが負けやすい相場 が続くんだけどこれをフィルタリングするのにいいアイデアはないかな?スキャでも ブレークアウトでも漏れ無く負けやすいのが値幅がやたらでかいレンジ相場だよね。 H4かD1でATR使うとトレンド相場と幅広レンジ相場の区別がつかなくなる。 高値同士の値幅、安値同士の値幅を使えばなんとかなると思うけどパラを増やし たくないし一発解決の方法はないかなあ?
>>967 AtrPeriodはデフォの14? 足はH1?
俺は思う、ボラを求めるなら東京・欧州・NY時間全て含んでいないと意味が無い。
つまり過去24時間の平均値から、現在のボラが高いか低いか判断しないと見誤ると。
まぁ普通は日足だろうけど、日足も業者で変わるから使いたくないな。
AtrはH4でピリオドは10くらいが一番成績いいかな。
面倒だけどGMTで手動計算すれば鯖時差 の影響受けない
>>965 >
>>911 > > MT4やMQLの話が皆無だったからだろ。
> その非難には当たらないなぁ。
> 確かに「遅延しないLPF」 のアルゴを作る為に、Scilabのスクショを貼ったこともあるよ。
> でもそれって、インジスレのこれ↓以降の話し。
>
http://kamome.2ch.net/test/read.cgi/livemarket2/1304547533/14 > そう、これ以前にここ開発スレに貼ってたのは全部MT4だよ。
やれやれ。
MT4のスクショじゃないなんて、一言も言ってないのにな。
MT4の画像貼ればMT4なんだからEA開発スレでスレ違いじゃない、とはならないだろうという話。
画像だけなら他言語の画像貼っても一緒だろ、という話。
以前は時々「自慢のトレード画面を貼れ」みたいなスレが立って、
MT4に限らず(まあ、ほとんどMT4だったけど)、やたらインジやEAを乗っけたスクショをみんなが貼って、
おおすげーとか関心してたスレがあったわけだが、
それをこの開発スレでやったら、そのスクショのインジやEAが全てMT4自作だったとしても、明らかにスレ違いだ。
で、お前が以前やってた事は、そんなスレ違いとどこが違うんだ?
たいして話題もないんだし、全然問題ないと思うが。
>>965 昨日のスレまとめ乙でした。(もう毎日やってよ。)
波形インジが話題になった時は、なんというか
自分には(多分他の人も)高度すぎて解る人だけで盛り上がって、
当事者はその気はなかったとは思うけど、解る人だけで楽しもうぜ。
っていう空気を感じたんだよな。
2ちゃん的にはそういうのができると、スレから排除される運命になるんだな。
これが、他のオタク系の話題だったら、その話題を共有していこうという中の人が
でてきたりして、またそれがスレの活性化になるんだけど。
いかんせん。みんなゼロサムゲームの当事者なんで、情報の利用方法が解る人と
解らない人との違い(格差といっていい)に(無意識に)気づいて、苛立った人が出てきたと。
自分としては話題としては面白かったし、気になった内容だったけど、理解できなかった。
中の人がもう少し、空気読めたら多分追い出されなかったかも。
ところで別スレで話題にあった「ウォール街のランダムウォーカー」読んでるだけど。 有無を言わさずテクニカルを罵倒しているな。 といってもファンダメンタルも批判してる。 客観的にテクニカルを見ようと思ってこの本を読んでみたが、萎えてしまったw 1000円本と併せて、読んではいけない本に推薦します。
今みたいな1ヶ月で2000pip動き15分で1000pip動くキチガイ相場見てると、5分足以下のEAじゃないとだめだなと思ったよ
>>970 H4だったんだ。「H4かD1でATR 〜 区別がつかなくなる」を読んで、もっと短い足かと思った。
一発解決の方法…、ん〜ATRを一回否定してATRを別なアプローチから再発明するとか…。
インジスレネタだけど、ATRを再度お勉強w
ATR :
@現在足高値−現在足安値
A現在足高値−前足終値
B現在足安値−前足終値、
の中の最大値TRのN期間指数潤滑平均線(EMA)
これだけ読むとなるほどなと思うけど、これって間違いなく@以外選ばれないよね。
なぜなら前足終値と現在足始値とは、H4なら同じ値の筈だから。
それに@だと、H4の中で一往復した場合と二往復場合を無視するし…。
つまりH4の中で極大点と極小点を見つけて、その各差を要素として移動平均を計算しないとボラを表す指標として正しく無いのではないか?という仮定が成り立ちそう。
それなら「H4でピリオドは10」に加え、「H1でピリオドは40」と「D1でピリオドは4」も計算する。
トレンドならこの三つの計算値はほぼ等しくなる筈。
でも、幅広レンジなら値はH1 < H4 < D1に並ぶんじゃね? (Just Idea!)
>>977 > トレンドならこの三つの計算値はほぼ等しくなる筈。
ならねぇ〜よ、アホがw > 自分 (… orz)
>>974 > 当事者はその気はなかったとは思うけど、解る人だけで楽しもうぜ。っていう空気を感じたんだよな。
そうだったんだ、空気を読めて無かったかな?
本人としてはIIRなんて、MA→FIR→IIRとフィルタを急峻化するだけの簡単なお話意識しか無かったんだけど…。
流石にWaveletになると、飛躍しすぎかと自覚はあったけど…。
そういえば前々スレのFFTの人、その後顔を見せないけどどうなったんだろう。
> 中の人がもう少し、空気読めたら多分追い出されなかったかも。
申し訳ない…
>>972 電気屋はコードこそ載せてなかったけれど、どういうアルゴリズムがどのような効果があったか
示すために貼ったスクショで、ただの利益曲線スクショ貼りとはぜんぜん違う。
そのコードを載せないで利益曲線を貼っていったのが、まぁあれだ。 上で書いてあった、格差?を感じずには得られなかったって事だな。 それでも、スレの端っこでやってりゃ、文句なかったかもしれんが、一時期その話題でスレが埋まってたからな。
>>978 俺は電気屋さんそんな嫌いじゃないよ。
ところでそのフィルターとかをEAに載せるには
高校数学レベルの知識とMQLの知識で構築できるもんなの。
>>980-982 うん? スクショのインジは勘弁だけど、ベースのIRフィルタは晒そうか?
ベースに使っているけど、スクショのインジにはさらに信号処理を加えたもんだし。
そもそも一回晒した覚えがあるしw
続きはインジスレにて。
>>974 全然違う。
幾つかの間違いを指摘された電気屋が、
指摘した奴の方が間違ってるって叩いたのが荒れた原因だろ。
その後、何人かが丹念に電気屋の間違いをわざわざ指摘していったが、
電気屋と「盛り上がって」いた取り巻きは最初スルー、最後に出ていったw
理解してる全員が盛り上がっていた、というのは全然違うね。
それはわからんかった。
987 :
Trader@Live! :2011/09/09(金) 17:58:04.05 ID:Y2hX+1AJ
自分が書いたスレに対して執着するのは、損切りできない心理と近いのかもな。 怒ったり感情的になるのは本来、相場に向かない性格かもしれん。
>>984 自分の主張を、ゴリ押ししていた奴がいたのは覚えてるw
何がスレ違いかの議論が発熱してるようだけど その議論をしてるおまいらが今は一番スレ違いなんじゃないかな?かな? だけどこれだけは言っておく SとLでエントリーもエグジットも完全に分けるべきだと
× 発熱 ○ 白熱
991 :
Filter :2011/09/10(土) 00:15:18.44 ID:L+32U8+2
>982さん ところでそのフィルターとかをEAに載せるには 高校数学レベルの知識とMQLの知識で構築できるもんなの。 数学いらないよっとw 簡単に説明すると、コーヒーFilterを思い出してほしいw 珈琲豆はコップにいれたくないから、抽出するものと、しないものを分けるよねっとw 基本的にオリジナル関数はこんなんでいいんじゃないかなっとw 例: FilterSignal() ぱらめた 買いが1 売りが1 なしが0 あとシグナルは取引時間を設定できるし、応用だと 仮シグナルAを決める 仮シグナルbを決める Aの条件を通ったら本シグナルへ。
正直フィルターって仕組みは必要ないと思ってる
フィルターの内容によるんじゃね? フィルターだけでもプラスに触れるぐらいのフィルターだったら効果は高いと思う まぁそうなるとフィルターってより、二つのロジックを走らせてるってことになるか それはそうと、時間も大事って話よく聞くから、EAで時間帯ごとの傾向とか 折り返し方とか見てると、本当に時間の傾向ってあるんだな これはフィルターにも使えるけど、これ単独でも1ロット取引数時間以内に決済で pf1.5ぐらいで年4000pipsぐらいプラスに出てる
例えば3つのSignalのうち2つがSignalを出した場合に買うなどの判定はフィルターだとやりにくい。 個別に演算して外側でこの判定をするのはとても簡単
ちょっと意味がわからないんだが、フィルタと言えば時間フィルタやトレンドフィルタだろ。 そういうのはフィルタとして記述した方が簡単じゃないのか。
取引用に6コ、最適化用に12コ、合計20コ動かしてるがたまに画面がおかしくなるな。 デスクトップヒープがまだ足りないのかなこれ。
>>994 俺はバラバラの方が扱い辛くてかなわんな。
この人の意見に同調する。
> 401 名前:Trader@Live![sage] 投稿日:2011/02/04(金) 21:49:31 ID:BUic6hhw
> たしかに、EA作ってる人は最初からBTする人が多いけど、
> 私はインジケータから作って、次にフォワードテスト、最後にバックテストって順にしてる。
> インジケータでリアルタイムに相場を見ないと欠点とか良い点、改良点がわからないことも多いし、
> フォワードテスト中にエントリー・エグジット処理の不具合とか新しい改善点が見つかることも多い。
> いきなりバックテストやると悪い結果のときの原因とか改善するべきところが見にくいんだよね
次スレでは強力な自作EAを手にしたいものだ。
自作EAに暴益あれ!
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。