【MT4/5】Meta Trader初心者専用56【EA素人】
■ このスレッドは過去ログ倉庫に格納されています
初心者的な質問ですまん。
MT4やMT5のチャートって随時更新されるけど、止める事って出来るのでしょうか?
過去のチャートを見ようとスライドさせてる最中に更新されて現時刻に戻ってしまうんですが、一時停止とかないのかな? mt4 Build 1090を使っています
ストラテジーテスタで複数チャートを同期して表示をしたいです
Period_Converter_Optの最新版かと思われるものを探しましたがどれもうまくいきません
https://gist.github.com/micclly/9451216
ダウングレードも試みましたが、950ではうまくいきませんでした
既存のスクリプトにあるPeriodConveterも試しました
オフラインチャートには作成されますが、開いてみるとデータが最新のまで作成されておりストラテジーテスタには利用できませんでした
どなたか解決法知ってる方教えて下さい>< >>26
何がやりたいのか、イマイチ分からない
複数の時間足のバックテストの結果チャートを、並べて表示したいの? ポインタを使ってクラスのオブジェクトを配列に格納してる。
Ctest *obj[];
ArrayResize(obj, 3);
obj[0] = new Ctest();
obj[1] = new Ctest();
obj[2] = new Ctest();
この配列のうち真ん中のobj[1]が不要になったから削除して前に詰めようと思った。
obj[0]
obj[1]
こういうときどうすればいいと思う?
delete(obj[1])
を実行しただけじゃobj[1]が消えるだけでobj[2]が前に詰めてくれない。
ArrayCopyを使ってつなぎ直すのもいいかなと思ったけど、
> 構造体配列のコピーを禁止する制御が入っているようですがポインタに対しても一律禁止になったようです。
http://mt4program.blogspot.jp/2017/05/mt4-build-1080.html
ポインタ配列に対してはこの方法は使えないっぽい。 ポインタのコピーはできるだろ
しかし、そのブログもひどいね ひどいどころかひどすぎる
たった数行のソースに2つもtypoしてるし、そのエラーメッセージも違ってる
まともに答える気すら萎える >>28
ジェネリックデータコレクションのCArrayListがほぼほぼそのように動作する。
どうやってんだろ?って思ったら単にコピーして詰めてるだけだったけど、、、、
CArrayList<hoge*> array;とすればオブジェクトポインタも扱える。 >>30
> ジェネリックデータコレクションのCArrayList
MQL5から引っ張ってこないといけないんだっけ? 逆指値が執行された時にアラート音鳴らすこと出来ないかな
いつの間にか損切りされてて気づかなくて困る ordersendのlimit注文の有効期限に関する質問です。
指値オーダーした後、ローソク5本以内に刺さらなければ、取り消しとする場合、これで正しく動作しますか?
datetime d1 = Time[0] + ( Time[1]-Time[2] )*5; >>33
そういうEAなりスクリプト作ればできる
>>34
Time[0]でオーダーしたということならいいんじゃね
dt = Time[0] + Period() * 60 * 5; ここでいうX社はXM、O社とはOandaのことか。
スプだけにこだわってはいかんな。
https://blog.goo.ne.jp/antnobu 普通MT4で自動売買する人って逆指値使わずに成行使うんじゃないの? https://www.metatrader4.com/ja/download
からはmt5しか落ちてこないし
今から始める場合はMT5を使った方がいいのでしょうか? >>42
metaのページは罠
MT4は色んな業者のページから落とせる
MT5はMT4と互換性がないので既存ユーザーは誰も使いたがらない こんにちは!
質問お願いいたします!
備考
仕様ツール MT4
--- 矢印表示の処理 ---
if (
High[i]>=band1&& //+2σにタッチした時
!(Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint1 && Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint2) //2つ前と直前のローソク足の上下幅が
5分足のローソク足12本分の平均値の4分の1以下ではない場合
){
sellbuf[i]= High[i] + markerdist*Point;
if (i < 2 );
//上矢印を表示
}
--- 矢印表示の処理終わり ---
+2σ(−2σ)線にタッチした時に矢印が表示されるコードに以下のコードを追加、要所に配置したところ矢印が出ませんでした。
考えられることとして
1.実装が間違っている
2.条件が厳しすぎる
以上ののどれか、もしくは複数が原因だと思うのですが皆様はどう思われますでしょうか?
/* 2つ前と直前のローソク足の上下幅が 5分足のローソク足12本分の平均値の4分の1以下ではない場合
iPoint1は i + 1 と同じ iPoint2は i + 2 と同じ */
//関数の宣言
double Waru4_1, Waru12_1, Seven_BarWaru12_1;
double Seven_iPoint1, Seven_iPoint2;
double Seven_Bar, Seven_Bar_0, Seven_Bar_1, Seven_Bar_2, Seven_Bar_3, Seven_Bar_4, Seven_Bar_5, Seven_Bar_6, Seven_Bar_7, Seven_Bar_8, Seven_Bar_9, Seven_Bar_10, Seven_Bar_11;
//関数に代入
Waru4_1 = 1 / 4; //4分の1の値を代入
Waru12_1 = 1 / 12; //12分の1の値を代入
//直前のローソク足の上下幅
Seven_iPoint1 = MathAbs(iHigh(NULL, PERIOD_M5, iPoint1) - iLow(NULL, PERIOD_M5, iPoint1));
//2つ前のローソク足の上下幅
Seven_iPoint2 = MathAbs(iHigh(NULL, PERIOD_M5, iPoint2) - iLow(NULL, PERIOD_M5, iPoint2));
//5分足のローソク足12本分
Seven_Bar_0 = MathAbs(iHigh(NULL, PERIOD_M5, i) - iLow(NULL, PERIOD_M5, i));
Seven_Bar_1 = MathAbs(iHigh(NULL, PERIOD_M5, i + 1) - iLow(NULL, PERIOD_M5, i + 1));
Seven_Bar_2 = MathAbs(iHigh(NULL, PERIOD_M5, i + 2) - iLow(NULL, PERIOD_M5, i + 2));
Seven_Bar_3 = MathAbs(iHigh(NULL, PERIOD_M5, i + 3) - iLow(NULL, PERIOD_M5, i + 3));
Seven_Bar_4 = MathAbs(iHigh(NULL, PERIOD_M5, i + 4) - iLow(NULL, PERIOD_M5, i + 4));
Seven_Bar_5 = MathAbs(iHigh(NULL, PERIOD_M5, i + 5) - iLow(NULL, PERIOD_M5, i + 5));
Seven_Bar_6 = MathAbs(iHigh(NULL, PERIOD_M5, i + 6) - iLow(NULL, PERIOD_M5, i + 6));
Seven_Bar_7 = MathAbs(iHigh(NULL, PERIOD_M5, i + 7) - iLow(NULL, PERIOD_M5, i + 7));
Seven_Bar_8 = MathAbs(iHigh(NULL, PERIOD_M5, i + 8) - iLow(NULL, PERIOD_M5, i + 8));
Seven_Bar_9 = MathAbs(iHigh(NULL, PERIOD_M5, i + 9) - iLow(NULL, PERIOD_M5, i + 9));
Seven_Bar_10 = MathAbs(iHigh(NULL, PERIOD_M5, i + 10) - iLow(NULL, PERIOD_M5, i + 10));
Seven_Bar_11 = MathAbs(iHigh(NULL, PERIOD_M5, i + 11) - iLow(NULL, PERIOD_M5, i + 11));
//5分足のローソク足12本分の値を全て足したもの
Seven_Bar = (Seven_Bar_0 + Seven_Bar_1 + Seven_Bar_2 + Seven_Bar_3 + Seven_Bar_4 + Seven_Bar_5 + Seven_Bar_6 + Seven_Bar_7 + Seven_Bar_8 + Seven_Bar_9 + Seven_Bar_10 + Seven_Bar_11) ;
//5分足のローソク足12本分の値を全て足したものを12で割ったもの
Seven_BarWaru12_1 = Seven_Bar / Waru12_1;
!(Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint1 && Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint2)
/* Seven_BarWaru12_1 / Waru4_1 //5分足のローソク足12本分の値を全て足したものを12で割ったものを4で割ったもの */ まずは変数、関数とは?から始めた方がよろしいです。
スタート地点にすら立っていません。 >>46
変数、関数調べてきました。
ご指摘ありがとうございます!
当方、文系でプログラミングは初めての経験であり独学で学んでおりまして、
今回インターン先から仕事として任されておりまして、一から勉強している次第です。
>>45の関数の宣言、関数に代入を変数に置き換えていただけたらと思います。
関数が以下のコードになるのかなと思います。
if (
High[i]>=band1&& //+2σにタッチした時
!(Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint1 && Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint2) //2つ前と直前のローソク足の上下幅が
5分足のローソク足12本分の平均値の4分の1以下ではない場合
){
sellbuf[i]= High[i] + markerdist*Point;
if (i < 2 );
//上矢印を表示
}
引き続き関数の処理(矢印表示)が出ない理由がどこにあるのか教えていただけたら幸いです。 >>45
ちなみにこちらソースファイルです。
dotup.org/uploda/dotup.org1498851.txt.html
pass: mt4
txtファイルですが拡張子をmt4にすればトレーダーツールで読めるはずです。
ご指摘よろしくお願いいたします!!! 俺が採用担当だったら、こういう課題を出した後に5chやteratailをチェックして、
自分が答えたソースをそのまま提出した奴は不合格にするだろうなw >>43
>>44
MT5のほうがバックテストも充実してるようですがMT4のほうがいいんですね
MT4のプログラムをさせるインターンって… >>50
超ベンチャーなんです笑
インターン(笑)みたいな?
僕webのフロントなら少し経験あるんですけど、ガチのプログラミングとかで初めてで・・・
phpやrailsならやれる人なら他にいますけど、多分会社の中でmqlの開発環境あるの僕だけですよ。
要件定義(仕様書?この時に矢印出してっていう文章)だけもらって、実装やデバックやチェック含めて全部僕やってますもん。
引き続き>>45お願いいたします! >>52
+2σ(−2σ)線にタッチした時に矢印が表示される条件に
2つ前と直前のローソク足の上下幅が 5分足のローソク足12本分の平均値の4分の1以下ではない場合の条件を追加したら
矢印が出なくなったので原因を知りたいです。 >>53
原因は追加した条件に引っかかったからじゃね
一体なにか知りたいのか? >>55
やっぱり実装は間違っていなくて条件が厳しすぎるんすかね? 条件が厳しいかどうかはあなたの判断次第
上手くいけばその条件が他人が知らないエッジになる >>57
すみませんそういう意味ではなくて汗
仕様は実装できているのか?
実装できているならOK
できていないならどこの部分が問題なのかが知りたいです。 >>仕様は実装できているのか?
誰が作ったの?
なんかおいちゃんとは話が通じないタイプの人みたいだ
他の方よろしく >>59
すみませんID変わりましてMGZnnhps0です。
僕が作ってます。
>>45の
!(Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint1 && Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint2)
この部分が
5分足のローソク足12本分の値を全て足したものを12で割ったものを4で割ったもの
として表現できているのかが知りたいです。 >>60
訂正
!(Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint1 && Seven_BarWaru12_1 / Waru4_1 < Seven_iPoint2)
上のコードが
2つ前と直前のローソク足の上下幅が5分足のローソク足12本分の平均値の4分の1以下ではない場合
として表現できているかです。 >>61
表現できてないと思うよ
SevenBarWaru12_1 / Waru4_1を展開すると、SevenBar / (1/12) / (1/4)になってる
てか、iATR(NULL, PERIOD_M5, 12, i) / 4で良さそうなもんだが・・・・・・ >>62
それです!!!ありがとうございます!!!
作ってみてもっとシンプルに作れる気がするなと思ってました笑
本当にありがとうございます!!! EAのOnTick()関数がきちんと呼ばれてるのかな?とふと疑問に思って
この場所に
Print("いまOnTick()が呼ばれたよ ", TimeToStr(TimeCurrent(), TIME_MINUTES) );
の一行だけを記述して1時間足で回してみたんだけど
ログ見ると途中6時間とかごっそり抜けてる場所がある。
当然モデルは「全ティック」を選んでるからもっとも精度良くシミュレートしてくれてるはず
1時間足チャート6時間ごっそり抜けるってこんなことってありかね? >>64
バックテストに使ったチャートがちゃんと連続しているなら、あり得ない
「全ティック」は関係なく、チャートの時間が連続していないと思われ >>67
平日だから時間はちゃんと連続してたよ
うむむ・・・なんだろうな >>68
ちゃんとヒストリーセンターで確認しようよ
連続した1分足から各時間足を作って、それでも飛ぶとか、そこまで確認した? >>69
一応1分足から全ての時間足のデータを作成したつもり
長い時間足でのバックテストでも、Every Tickにチェックを入れておくと
最も細かいtick(この場合は1分足)データを使ってくれるんだっけ? >>71
「つもり」じゃなくて、ヒストリーセンターで確認しろと。なぜ確認をしないんだ?何か理由があるの?
長い時間足の時は「全ティック」でも長い時間足が使われる ログを直接かビューワで見たか?
ログのタブには全部は出ないぞ スタートラインにも立ってないEA初心者なんだけど
RSI の レベル設定値 30(70) を終値確定で、またぐ度にメールを送るようにするには
結構知識いるかな? またがなければメール送らない。
30(70) を超えたら・割ったら1度だけ送るっていうのはあるんだけど。
またぐ度にっていうのが見つからない。
mt4 に元から入ってる RSIいじって出来ないかなと思って。 俺なら1時間以内ってとこだが、知識のない人に対して
結構知識がいるかと聞かれたら、そうだとしか言えねぇな
マジレスならRSI30-70だけじゃなくその他のテクニカルも合わせて
閾値オーバーでメールしないと騙しばかりになるぞ >>77
2本前のrsi値と1本前のrsi値を求めて、30(70)と比較してするだけ。雛形があるなら簡単。
1度だけとまたぐ度の違いは何?
どうやってもまたぐ度になるんじゃない? >>78 >>79
早いレスありがとう。お二人のレス内容からだと、作成可能で内容的に
そこまでは難しくないように感じるので、EAの本買って、ネットで調べて頑張ってみよう。
他のテクニカルも必要なんだけど、生命線がH4足のRSIなので
RSIだけでも何とかならないかなと思った次第です。
1度だけってのはネットで調べた、RSI インジは70%終値で超えると1度メールを送ってきて
次足以降が、70%割ってもメールを送らない。再度70%超えるとメールを送るような仕組みです。
言葉足らず、また後出しでごめんなさい。
欲しいのは終値で、70%超える(メール)→70%割る(メール)→70%超える(メール)の繰返し。
70%超える(メール)→70%超えたまま(メール無し)→70%割る(メール)→30-70間(メール無し)→30%割る(メール)
こんな感じですね。 追加
昔、俺も本買ったけど読む前にEAができてしまったwまあ無くても問題ない
ネットから調べたもので十分、とにかく検索しまくって他人のサイト、ブログを読みまくればできる >>80
簡単簡単、すぐ出来るよ。スマホに通知でも簡単に出来るよ >>81 >>82
センスある人は、そー言う。うーん、頑張ってみよう!ありがと!
分からなくなったら 相談しにきますー 初歩的な質問で申し訳ないのですが、mt4のデモ講座で「GOLD」のチャートを表示させたいのですが、気配値表示をいじっても出てきません。どうすればよいか教えてもらえないでしょうか? 返信有難うございます!FXCM-JPY DEMO 01と丈夫に表示されています。どの業者のを使えばGOLDのチャートが表示できるのでしょうか? もう一度聞く、どの業者使ってる?
業者名を判断した理由も書いてくれ 私はFXCMジャパン証券の業者を使っている状況ですか? だからそれを調べてるんだろ
どのアイコン起動して、IDは何を入れて
いちいちこちらから指示しなくても自分で動きなさい 申し訳ございません。無事解決致しました。根本的から間違えていたようです。ご指導ありがとうございました。 時間メモリにピンクや白の付箋のようなものが勝手につくのですがこれはなんですか?
消す方法はありますか
https://i.imgur.com/AWVHjQq.png >>97
できました
すばやい対応をありがとうございます 96と同じ質問をしようとしてた。
>>97は英語ページなのでサッパリわからない。日本語で教えて下さい。
あと、縦軸目盛りに現在のレートがリアルタイムで表示されて動くやつ、これの出し方消し方を教えて下さい。 >>102
> 96と同じ質問をしようとしてた。
> >>97は英語ページなのでサッパリわからない。日本語で教えて下さい。
指標カレンダーのタブを開く
↓
右クリック
↓
チャートに表示
↓
すべて削除
>
> あと、縦軸目盛りに現在のレートがリアルタイムで表示されて動くやつ、これの出し方消し方を教えて下さい。
チャートを右クリック
↓
プロパティ
↓
カラー
↓
BidラインをNoneに 3日間かけて、やっと
あと一日位で終わるとこまできたバックテスト
さっきうっかりそのMT4を閉じてしまいました
(他のMT4と間違えてしまいました)
かなりのショック・ダメージです
PCの再起動などはせずそのままにしてあるんですが
バックテストを続きからやる方法ってないでしょうか? Genetic algorithmにチェックを入れてなければ続くんじゃね
入れてたら無理 >>105
レスありがとん
遺伝的アルゴ
がーーん
チェックいれてました
泣ける
何かとっておきのレスキュー方法
ないですか?
ここだけの話にしますから >>107
またまたありがとん
さっきのテストは損切りできました
新たにやり直します
取り乱してすみません
>速くする
そんな方法あるんですか? 最適化だよね?
一度に2つまで。
始めから小刻みにしないで最初は大雑把に、数回に分けてやる。
機械的に馬鹿正直にやるんじゃなくて、パラメータの意味を考えながらどこは適当でいいかとか。
最終的な決定は最後に1つづつでいい。 >>109
おお、親切な人ありがとん!
ミスで止めちゃったテストは
最適化じゃなくてノーマルテストでなんです
最適化テストってたまにしかやりませんですけど
おしえてもらったコツ
なるほどって思いました
胸に刻んでおきます
感謝です ノーマルのバックテスト1回に3日かかるなら作りがおかしい。もしくはマシンが非力過ぎる。
それも致命的に。 バイオプ歴5ヶ月なんだが
MT4の基本スレを今はじめて見つけた
中身MT5やんけ!までがテンプレか GBPJPYのEAとサインツールを開発・公開しております。
興味がありましたら見てみてください。
https://t.co/lxx4AA5l3b 👀
Rock54: Caution(BBR-MD5:b73a9cd27f0065c395082e3925dacf01) スプレッドって
ショートの時は、後払いなんですか?
(そしそうだとしたら決済時点でのスプレッドが適用される?) >>116
そうです
決済時点のスプレッドが適用されます ありがとう
知らなんだ〜
ロング時は、先払いの形で
ロング時点のスプレッド適用ということで合ってますか? >>118
そうです
ロングの時はポジションをオープンした時のスプレッドが適用されます >>120
ありがとう
>>119
なんか変なこときいちゃってる? MT4のチャートって基本的に、BID価格を基準にしてますよね。
(間違えてたらご指摘願います。)
ちまたのEAもほとんどが、BID価格のみを基準(ターゲット価格)として造られてるのでしょうか。
若しくは、ロングのオープン後は
(決済目的で)BID価格をターゲットに
ショートのオープン後は
(決済目的で)ASK価格にターゲットを、なんて切り替えてたりするのでしょうか。 ■ このスレッドは過去ログ倉庫に格納されています