X



【MT4/MT5】 EA開発研究スレ Part39 【自動売買】 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お金いっぱい。
垢版 |
2017/09/02(土) 22:45:54.85ID:ohTZZ4zD0
EA(Expert Advisor)の開発をメインとしたスレです。

▼関連スレ
【MT4/5】Meta Trader初心者専用54【EA素人】 [無断転載禁止]©2ch.net
http://tamae.2ch.net/test/read.cgi/market/1488076405/
【MT4/MT5】 EA運用観察スレ Part1.1 [無断転載禁止]©2ch.netDat落ち)
http://tamae.2ch.net/test/read.cgi/market/1457092185/
【MT4/MT5】 EA乞食スレ Part1 【素人以下】 [無断転載禁止]©2ch.net
http://medaka.2ch.net/test/read.cgi/market/1494911868/

▼ドキュメント
MQL4言語ドキュメント(英語)
https://docs.mql4.com/
MQL5言語ドキュメント(日本語)
https://www.mql5.com/ja/docs
▼アップローダー
めたとれなうpろだ
ttp://u3.getuploader.com/mt
▼Q&A
・○○できるインジありませんか? → スレチです
・○○できるEAありませんか? → スレチです
・○○するコードの書き方教えて下さい → スレチです
・オススメの業者教えて下さい → スレチです
・PCのスペックで最適化の効率が… → スレチです
・バックテストでこんなすごい結果出たぜ! → スレチです
・○○言語ってどうなの? → スレチです

EA開発研究に無関係な話題、ループしてる話題、成績自慢を徹底して無視することがスレの品質向上に繋がります。

▼前スレ
【MT4/MT5】 EA開発研究スレ Part38 【自動売買】 [無断転載禁止]©2ch.net
http://medaka.2ch.net/test/read.cgi/market/1497365612/
0428名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 15:29:44.73ID:SNtb2Z4j0
ついでに仮想関数定義してオーバーライドしてみたんだけど、こっちは調べるのにえらい大変だったです。

公式って、クラス定義の中にボディー書いてる記述ばっかりだけど、
実際のプログラムでそんな書き方する事なんかまずなくて、普通、ボディは切り出すでしょ。

■基底クラス
virtual int getMaskWidth() = NULL;

■派生クラス
virtual int getMaskWidth() override;

実装
int Mask::getMaskWidth() override
{
 return MASK_WIDTH;
}

でいいんだろうけど、これだけの事調べるのにあっちこっち検索しまくりとか、
なんか、ドキュメントの作り方下手くそですよねぇ…

ちな、これが仮想関数の説明ページ
https://www.mql5.com/ja/docs/basis/oop/virtual
0429名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 15:30:23.98ID:SNtb2Z4j0
>>426

て、天才ですね! まさしくその通りでした。 m(_ _)m
0431名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 15:40:52.26ID:SNtb2Z4j0
>>425

何、そのエロそうな名前は?と思って検索してみたら、なるほど。、そういうことなんですね。
納得です。
0432名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 15:43:05.72ID:SNtb2Z4j0
>>430

作法については1つ言語しってれば他も大抵流用できるけど
文法については“知っている”という事がかなりの要素を締めちゃいますもんね…

ま、1回分かれば後はそれにならって書いてくだけなんで、つらいのは最初だけなんですけどね。
0434名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 15:49:44.16ID:SNtb2Z4j0
で、これでやっと、
かねてからの懸案であった、チャート上にアイコンとかラベルとかボタンを配置するクラスが

class Objects : public Buttons : public Mask : public BaseObject

という構造で整理されたのです。

しばらく休憩するのです。
0436名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 16:04:43.04ID:SNtb2Z4j0
>>435

これでいいのでーす。
0437名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 16:11:00.06ID:SNtb2Z4j0
コンビニから帰ってきて冷静になったら、必要のない場所で呼び出していたのでそもそも仮想関数つくってオーバーライドする必要は全く無かったことに気付いたけど、
まぁ、勉強にはなったのでよしとするのでーす。
0438名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 16:15:12.52ID:SNtb2Z4j0
去年末にUSDJPYになんとなく使ってみた無料の全クローズEAによって、
結構下の方でポジった全く関係ない羊LとキウイLがことごとく決済されてしまったのにブチ切れて金目当てで始めたEA作成だけど、
知れば知るほど、いろいろと面白くなってきて趣旨が変わってきてしまい、なかなか運用に漕ぎ着けない…
0439名無しさん@お金いっぱい。
垢版 |
2017/10/13(金) 17:25:22.14ID:XkdW7ygy0
MT5のストラテジーテスターのターミナル変数て内部では正常に処理してるのにGetする時ある一定の容量から先に増えた分止まってる気がするんだよね。
0441名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 10:40:32.84ID:NPDVlzIR0
>>435

ほら、そんな事言うから、

class Objects ┬ calss Arrow : public BaseObject
         ├ class Buttons : public Base Object
         └ class Mask : public Base Object

って、ちゃんとやりたくなってきちゃったじゃないです、どうしてくれるんですか。
0442名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 10:41:06.04ID:NPDVlzIR0
Arrow 's' だな
0444名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 13:49:45.70ID:NPDVlzIR0
なーにを言ってるのです
0445名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:05:49.64ID:TgQUL+cb0
classにobjectという命名はしないでしょってことじゃない?
それより、凄く聞きたい、oopするとtddいける?
0446名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:15:08.35ID:BsrbPq2C0
で、EAはMQL5でプログラミングしてるの?
MT5は、使ったことないから分からないな
MT4だと、oop使わなくてもできちゃうし。
oopだと、初心者はクラスとか変数に振り回されて
肝心のトレードロジックが手薄になりませんか?
C++でoopも書けるといってる人がいるが
プログラミングはSimple is Better!が基本です
0447名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:19:31.12ID:NPDVlzIR0
>>445

だって、class ObjectControllerとか、長いし…

TDDに関しては、MQLのUnitTestよく知らないので何とも…
0449名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:22:06.88ID:NPDVlzIR0
>>446

EAの総行数何行くらいですのん?

僕、既に万行超えてると思うんで、OOP使わないとか考えられないっすね。
0450名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:23:01.70ID:NPDVlzIR0
>>448

どこのこと言ってますのん?
0451名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:25:53.01ID:BsrbPq2C0
学生時代か、若い頃にoop学習しないと、
Fortran, unix, C言語時代に育った人間は中々馴染めないし
GUIもあまり使わないEAで、なぜoopを実装するのか理解できない
これも世の中の流れなのだろうか?
oop使うならCTradeの方がズバリC#で書けるでしょ。
CTradeがMT4ほど小回りの利く汎用性あるかどうかは知らないが
0453名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:37:08.61ID:BsrbPq2C0
>>452
oopをかじってる程度で偉そうな奴だな、
あんたまともなEAひとつでも作てるのか?
そんなにoopが好きなら、C#スレでも行けば君より遙かに詳しい人が
一から丁寧に教えてくれるだろ
0455名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:38:52.37ID:NPDVlzIR0
>>452

多重継承じゃないっす。 C++ の継承はコロンですよね?

Objectsインスタンス内でArrowsとButtonsとMaskのインスタンスを生成してprivateで持っておくです。

で、他所からはObjectsのインスタンス経由でArrowやButtonやMaskを操作するです。
他所から直接、オブジェクトはいじらないです。
0456名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:39:20.56ID:BsrbPq2C0
こんなアプリスレでoopひとより少しばかり知ってるだけで
あんたアホなの?
EAのレベル見せてみ。俺が鑑定してやるわ
0458名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:42:35.47ID:NPDVlzIR0
BsrbPq2C0は、どうしてそんなに頭に血が昇っちゃったです?

8nFQvpMM0は結構穏やかに話してくれてる方だと思うです。

関係ないけど、8nFQvpMM0ってもしかして、この前packの事とか教えてくれた人じゃないですか?
0460名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:44:41.95ID:BsrbPq2C0
>>454
EAもまともに作れない奴が偉そうにし過ぎだカス
C#スレに逝って基本でも教えてもらえ
ここはEAを開発スレってわかって言ってる?
0461名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:54:23.06ID:BsrbPq2C0
知らない奴も多いだろうが、
CTradeを動かすためにC#を駆使してた奴
AIブームに乗っかってPythonを徹底的に学習して奴
ここにも登場したがみんな消えていった
oop化よりEAのロジックが大切だと言いたい
0462名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:54:23.16ID:BsrbPq2C0
知らない奴も多いだろうが、
CTradeを動かすためにC#を駆使してた奴
AIブームに乗っかってPythonを徹底的に学習して奴
ここにも登場したがみんな消えていった
oop化よりEAのロジックが大切だと言いたい
0463名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 14:54:45.76ID:NPDVlzIR0
>>459

基底クラスの BaseObject を継承した Mask を継承した Buttons を継承した Objects クラスですん。
0464名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 15:00:45.53ID:8nFQvpMM0
>>463
Objectsてのはボタンを中で持って制御するんでしょ?
それだと継承いらないでしょ
でもButtonsも複数形だし、ちょっと何がやりたいのかよくわからんわw
0465名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 15:03:47.97ID:NPDVlzIR0
>>464

なので、

>>441 ほら、そんな事言うから、

class Objects ┬ calss Arrow : public BaseObject
         ├ class Buttons : public BaseObject
         └ class Mask : public BaseObject

って、ちゃんとやりたくなってきちゃったじゃないです、どうしてくれるんですか。

と、なってきてしまったのです。

元々、全部Objectsクラスの中に書いてあって、正直、チャート上に表示するオブジェクトなんか
EAの機能には大して関係なくて、開発していく上でEAの状態を視認するためだけの目的だったから
あんあまり真面目に作り込む気はなかったんですけど、

>>435 「そりゃ根本から間違ってるぞw」って、グサーーーーっと刺されたので、
ちゃんとやろうかなーって思い始めたのですん。
0466名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 15:10:20.47ID:8nFQvpMM0
適当にやるにしてもなんで継承する必要があったのかがわからん
まぁ問題ないならそれでいい
0467名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 15:11:51.79ID:NPDVlzIR0
ほいほい。ありがとうございますん。

後ちょっとなのですん。来週からデモでのフォワードテストに入るのですん。
0470名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 15:44:58.45ID:NPDVlzIR0
>>469

多分、これでいいのかな?
https://imgur.com/a/UIB7k

こんな感じで、EAに関するいろんな状態をarrowやlineの他、Commentでも出してるんですけど、
チャートと重なるとCommentがメチャクチャ見にくいんですよね。

だから、半透明のマスクを重ねて見やすくしてるんですが、
チャートが動く度にマスクはずれていくので、onTick()毎にマスクが同じ位置と大きさに成るように調整してるんですん。

Buttonは、裁量発注と裁量クローズ用ですん。
0473名無しさん@お金いっぱい。
垢版 |
2017/10/14(土) 16:00:31.56ID:NPDVlzIR0
>>471

ほ、ほうぅ…、また脇道にそれさせる気マンマンですねん?
FTに入ったらじっくり呼んで見るです、ありがとうございますん。

>>472

EAがしっかりできていれば裁量は必要ないはずなんですけど、
もし万が一とりあえず全部クローズしたいとか、EAは動かしてるけど発注だけは止めたい
みたいなことが、絶対に初期の段階ではあるはずなので、今のうちにつくっておいたのですん。
0474名無しさん@お金いっぱい。
垢版 |
2017/10/15(日) 00:34:13.28ID:4PcRzGre0
>>468
そうなんだけど、ロジックを試行錯誤で詰めていくとき、それなりのクラス構成にしておかないと苦しくなる
0475名無しさん@お金いっぱい。
垢版 |
2017/10/15(日) 02:01:24.75ID:djTNZxRF0
1時間足15,048本、パラ総当りで1,738,775,808通り
これでBTに半日、結果ファイルが20GB
速度重視でC++使ったけど、結果があってるかMT4でもやってみるかな
しかし、PCも速くなったもんだなぁ
0478名無しさん@お金いっぱい。
垢版 |
2017/10/16(月) 00:03:22.13ID:5VC4B57T0
w
0482名無しさん@お金いっぱい。
垢版 |
2017/10/16(月) 06:35:19.22ID:5VC4B57T0
出来ないんじゃなくて、したくないん
0484名無しさん@お金いっぱい。
垢版 |
2017/10/18(水) 01:35:30.15ID:ztUNX0Yi0
オブジェクト志向じゃない場合リファクタリングって言わないんじゃないの?
なんだろ?ソースの整理?w
0490名無しさん@お金いっぱい。
垢版 |
2017/10/18(水) 16:43:16.81ID:ztUNX0Yi0
>>489
リファクタリングって概念じゃないね。ループなくすのはリファクタリングじゃない。
それに昔からやってる・・・
おまいら「リファクタリング」って本読んだんだろうね?スレチだからもうやめとく
0492名無しさん@お金いっぱい。
垢版 |
2017/10/18(水) 17:03:21.67ID:ztUNX0Yi0
>>491
可読性と再利用性を上げる行為。メゾッドの切り出しは近いっちゃー近い
だがそんなもん大昔から普通にやること。
ループは違うよ。チューニングか?
0501名無しさん@お金いっぱい。
垢版 |
2017/10/18(水) 17:53:48.09ID:c920LSf60
まぁ儲からないとイライラしたりどうでもいいことに拘っちゃうよね
気楽に行かないと病気になっちゃうよ
もう遅いかも知れないけど
0502名無しさん@お金いっぱい。
垢版 |
2017/10/18(水) 18:00:40.23ID:ztUNX0Yi0
いや、ここへきて結構有意義だと思うなあ
OOP以外のリファクタリング?ぜひ教えてほしいわ
MQLにも役に立つだろ。俺には思いつかんし
0505名無しさん@お金いっぱい。
垢版 |
2017/10/19(木) 11:01:29.69ID:ScI3crTC0
てか、OOPじゃない言語て何が残ってるんだ?
アセンブラくらいか?

アセンブラ リファクタリング
約 12,400 件 (0.27 秒)
0507名無しさん@お金いっぱい。
垢版 |
2017/10/20(金) 00:51:17.60ID:K6gqeUQB0
くるくるワイドのEA作ったから貼るわ
https://www.axfc.net/u/3855190

機能もりもりでわけわからんと思うので
設定サンプルもつけるわ

ドル円で使うのを想定して
100円出口で開始成行Sするサンプルsetファイルな

ソースは無しだわ
0509名無しさん@お金いっぱい。
垢版 |
2017/10/20(金) 08:27:44.45ID:nlhavmjR0
>>506

だからUnitTestするんですん。つまり、OOPじゃないときついのですん。
0510名無しさん@お金いっぱい。
垢版 |
2017/10/20(金) 08:32:35.53ID:nlhavmjR0
最近、特に思うようになったんですけど、
MQLにも“プロジェクト”って概念、取り入れてほしいですよね。

クラスファイルとか書き換えた後、いちいちメインのmq4のタブ開てから“コンパイル” ポチッがめんどくさくて。
プロジェクトって概念があれば“ビルド” ポチッで行けるのに…

僕が知らないだけで、他になんか良い方法あるなんて無いですよね…?
0511名無しさん@お金いっぱい。
垢版 |
2017/10/20(金) 08:57:04.41ID:nlhavmjR0
あと、最近気づいたんですけど、変な値動きする時間って大体決まってるんですね。
BTでうまくEAが動かなかった時間にプログラム的にPauseかけて検証してるんですけど、
Pause設定する時間が日にちが変わっても大体同じなんですよね。

つまり、リアル相場で変な動きさせてるのはやっぱりプログラムなんだろうなって思うのですん。
0512名無しさん@お金いっぱい。
垢版 |
2017/10/20(金) 09:16:28.58ID:QNXa9HOP0
>>509
OOPでなきゃできないわけじゃないしユニットテスト
OOPに縛られないと隠蔽性が高いコードが書けない低レベルのプログラマが悪いよね
0515名無しさん@お金いっぱい。
垢版 |
2017/10/20(金) 11:51:11.62ID:nlhavmjR0
>>514

ほんとです! できました!

>>514天才ですん。 ここの人、みんな優しいですん。
0516名無しさん@お金いっぱい。
垢版 |
2017/10/20(金) 11:54:57.34ID:nlhavmjR0
めっちゃ楽になりましたん。
0517名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 00:40:17.43ID:7f5lVsw60
汎化能力高め隊隊長。
0518名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 02:31:18.06ID:Q3cx3j600
おまえら幸せそうだな
ドル円の逆張りEAは担がれてるの多そうだな
もう、テクニカルもファンダもあったもんじゃないわ
くるくるワイド?ループ系は壊滅じゃね?
0521名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 10:24:02.84ID:ItGAFDzT0
結局、EAに必要な要素なんて優位性のあるトレードアイデアであるか否かが99%で
プログラミング技術なんて動けばいいだけだからな
0522名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 11:13:26.97ID:TNn0aJD50
だよね
バグ無く動けば、極端な話し遅いコードでCPUパワー使いまくっても
動作に支障が無ければ良いし、勝った金でより良いPCなりサーバなり手に入れれば良いしね
0523名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 19:52:47.60ID:7f5lVsw60
まだFT入れてないのですん…
どんどん仕様が変わっていってるのですん…
現在、BTではボラが起きる度にガシガシ増える状態ですん…
その他は… ですん…
最初の頃と方向性がかなり変わってきてるのが原因ですん…
来月からFTに入れるといいな、くらいの進行状況ですん…
0524名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 19:57:04.24ID:7f5lVsw60
作ってく度に新たなアプローチが見えてくるのは仕方のないことなのですん…
0526名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 20:08:47.29ID:7f5lVsw60
着実に進化はしているのですん… 新しい良いアイデアは生まれているのですん…
ここが踏ん張りどころなのですん…
0527名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 21:25:58.33ID:Q3cx3j600
講釈はいらないから、リアル結果はよw
0528名無しさん@お金いっぱい。
垢版 |
2017/10/21(土) 21:28:27.12ID:Q3cx3j600
なあ、勝てるEAが出来ないからみんな消えて逝ってるんだが…
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況