【MT4/5】Meta Trader初心者専用57【EA素人】
■ このスレッドは過去ログ倉庫に格納されています
先月からXMのVersion 4 Build1160になったら、
Period Converterが動くのですが、1度終了して次の日起動したら止まってしまうので、
毎日毎日やりなおさければいけないのですが、解決方法はありますか?
Period Converter Optはオフラインチャートすら認識しません。 Win10でMT4のbuild 765を動かしたいのだけど誰か動かしてない? どなたかColseByTimeという関数について知っている方いませんか?
検索してヒットするページが少ないのですが、それだけのことなのでしょうか >>235
公式でヒットしないんだから自作関数でしょ >>236
公式を見てきました。ないですね。
ありがとうございます。 iHighest()で同値の場合に何を返すかを知りたかったんだが、仕様では決まってないのかな もうmqlにリソース割いても報われないよ。見切り付けてpythonにしたほうが良い 座標ではなく価格位置で固定するOBJ_ARROWみたいなオブジェクトから、
マウスドラックで移動後に価格位置を取得する方法ないでしょうか?
このタイプはOBJPROP_YDISTANCEで座標位置も戻り値出ないし、
表示中のライン等やデータウインドウにも情報が出ないのでObjectDescriptionでも
拾えないです。
分かる人いますか? OBJPROP_TIME1/PRICE1じゃいかんのけ? できました
ObjectGetInteger()の方でずっとやってたので
古いObjectGet()でやったら出来ました
有難うございました じゃなくて、ObjectGetDouble()です
もちろん出ませんでした ちゃんと取れるやんけ
GetDouble使うならENUM_OBJECT_PROPERTY_DOUBLEのid使え はじめまして、こんにちは
MT4のMetaEditorにて
ボタンを押すと通貨が変わるなどの動作をするプログラムをつくり
ボタンやラベルを作成して、ボタンをおす動作確認をしているのですが
定期的に、動かなくなります。
エラーを見るとこのようになっています
どうやら、
EURGBPを開いた後に、CADJPYなど違う通貨にするさいにエラーがでるみたいなのですが
2019.01.10 17:04:28.480 testbotton8 EURGBP,H4: 25 objects of type CArrayInt left
2019.01.10 17:04:28.480 testbotton8 EURGBP,H4: 25 undeleted objects left
これはどういう意味でしょうか?
どのようにしたら、解決するのでしょうか?
ぜひともご教授ください
MT4 ver1170 そのエラー自体はnewしたオブジェクトをdeleteしてないってことじゃないの
通貨変えるとOnDeinit->OnInitと走るから
しかし、そもそもCxxはちょっと前まで通貨変えたり再起動とかするとおかしくなってた気がするけど直ったんかね >>251
ありがとうございます。この関数は排除することで解決にしました^^ もう一つ質問なのですが、
ExpertAdviserにて、何も記述していなくて
@
Ondenit のところにコメント関数を書きます。
void OnDeinit(const int reason)
{Comment("test"); }
A
それでChangePair系のインジケーターを使うと
すごい処理が重たくなります
いろんなChangePairを拾って試したのですが
なぜか、OndenitにObjectDeleteやComment関数など
使うと、すごい処理が重たくなります
なぜでしょうか?バグですかね? チャートを画像保存した後に画像を開かないようにしたいんだけどどうしたらいいの? >>254
ChartScreenShot(...)関数を呼ぶだけのスクリプトを書くとか? OrderSendのスリッページを0にしても、指定したレートより不利に約定します。なぜでしょうか?
そういう場合はリクオートさせたいのですが、どうすればいいでしょうか? そんなことできるわけねーべ
そもそもslippageはMarket Executionの業者じゃないと意味ないぜ >>259
ありがとうございます
業者はNDDの外為ファイネストですが、今HPを見たら、
「※当社MT4・ZEROは「Market Execution (カウントダウン)」方式のため、スリッページ値が設定されているEAで取引した場合でも、
スリッページの設定は無視されますのでご注意ください。」と書いてありました レートを読み上げる、pricetalkerみたいなのありましたら教えてください。
有料のでもいいですし、サイトでもいいのですが、数年前から使えなくなって困ってます。
レート読み上げって需要無いのですかね?
みなさん、ずっとチャートを眺め続けているのでしょうか??? SofTalkはAques使ってんのになんでわざわざSofTalkのexe呼んでるのかね
重くなるだけやん 誰か教えて下さい!
MT4のチャートで「ロウソク足」ではなく「ラインチャート」にした時、
ラインの色や太さを変えることはできるのでしょうか? というか色を変えるだけならプロパティで設定できるな
ラインの色をNoneにして1期間MAを表示すれば点線にもできるな >>266 >>267
プロパティで色を変えることができました。
ありがとうございました。 >>263
とっても、すごく、ありがとうございます!!!!
ビッグ感謝いたします!!! TRYJPYの取り扱いがあってスプがあまり広がらないMT4のデモ口座やってる所を教えてください
今まで試した所
XMはTRYJPYの取り扱いなし
FXTFはhttps://i.imgur.com/fW4SZ20.png
OANDAはスプガバでチャート飛びまくり 移動平均のゴールデンクロスで
エントリー決済の、パロメーターを調整したら、
2012年からバックテスト回して
pf=2.0になったけど、
ルールが単純すぎるからこれで本当に良いのか怖い。
だいたい、2012年〜いろんな出来事があったけど、6年分もテストする意味があるのだろうか。
統計を独学で学んで、計算通りなら
安定して利益でそうだけど怖い
デモも設定甘いから信用できない。 >>262
昔、図書館で借りたヘッジファンド密着みたいなDVD借りたけど、
家庭でbgmみたいに、ずっとレートの読み上げされてたけど、
見てるだけで気が狂いそうだったわ。
まだ、携帯も普及してなかったのか
ポケベルみたいなので、レートチェックしてた >>275
期間もそうだがトレード数が重要
6年やっても数百回レベルならカーブフィッティングの可能性が高い >>277
年30回くらいだったかな。pc開くのめんどい。3〜4日にいっぺんくらいエントリーして、翌週にはしまうくらいの頻度。×6年分
バカのなんとかみたいに、統計の本に書いてあることを真似て計算してみて、
本数が少ないから、様子見が必要だけど利益が出そうではある。
質問じゃないのはわかってるよ。ただ、不安だから書いてるだけ。
前回は、カーブフィッティングで見事にやられたから
トラウマなんだよね。
前回は、停止したタイミングもあれで良かったのか確信が持てなかったけど。 MT4に対応していないFX業者で自動で取引するのにAlt+AやAlt+Bなどのキー操作を出力したいのですが、MT4のみで可能でしょうか? ググってもEventChartCustom関連しか引っかからないけどもうちょっと探してみます バックテストの結果をcsvかexcelで落としたいのですが、できますか?
現状、レポートをダウンロードして、
webブラウザで開いて、コピーして、
excelを立ち上げて
貼り付けて、グラフを消して
大変手間です。 >>282
自分の場合は、
OnDeinitに、テストモードの場合、
FileOpenとFileWriteで必要な項目を書き出すようにした。
その部分のコードだけ独立させてスクリプトも作った。 MT4に平行チャネルラインのショートカットはありますでしょうか 次のようなことを考えていますが難しそうで手に負えそうもありません。
だれかヒントだけでも、あるいはそんなインジはすでにどこどこにあるよと教えてくれると有り難いです。
よろしくお願いします。
-------
ドル円の時間軸の異なる3枚のチャートが表示されているとします。
例えば左から、M30,H1,H4.
このとき、どれかのチャートに十字カーソルを表示して動かしたとき、
他の2枚のチャートにもカーソルが出現して同じ時刻を示すように動く。
-------- カーソルが出るのは知らんが、SyncChart系はいくつかあるね >>287
たしかにいくつかありました。
そのうち、HT-FXさんのHT Crosshair Syncがピッタリのようです。
もうすこし詳しく見てみます。
こんなに早く解決するとは思いませんでした。
有難うございました。 アプリ版のMT5で同ペアの時間足違い分割チャートで片方にライン引いたらもう片方に自動で反映ってできないよね? MT4を終了したときにEAから発注したオーダーをキャンセルしたいのですが、
以下のようにOnDeinit関数の中に処理を入れてもうまく動きませんでした。
どなたか解決策をご存知の方がいればご教示頂きたいです。
コード
=========================================
//+------------------------------------------------------------------+
//| OnDeinit(アンロード)イベント |
//+------------------------------------------------------------------+
/*
void OnDeinit(const int reason) {
string text="";
switch(reason)
{
case REASON_ACCOUNT:
text="Account was changed";
break;
case REASON_CHARTCHANGE:
text="Symbol or timeframe was changed";
break;
case REASON_CHARTCLOSE:
text="Chart was closed";
break;
case REASON_PARAMETERS:
text="Input-parameter was changed";
break;
case REASON_RECOMPILE:
text="Program was recompiled";
break;
case REASON_REMOVE:
text="Program was removed from chart";
break;
case REASON_TEMPLATE:
text="New template was applied to chart";
break;
case REASON_CLOSE:
// 現在アカウントで保有しているポジション数分ループ処理を行う
for ( int i = OrdersTotal()-1 ; i >= 0 ; i--) {
// 注文プールからエントリー中の注文を選択する
if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) {
break; // 注文選択に失敗したらループ処理終了
}
// 選択した注文の通貨ペア名を取得し、現在チャートの通貨ペア名と一致しているかチェック
// 選択した注文のマジックナンバーを取得し、このEAのマジックナンバーと一致しているかチェック
// 上記の両方の条件に一致した場合のみif文内の処理を行う
if( OrderSymbol() == Symbol() && OrderMagicNumber() == MAGICNUM) {
if (OrderType() == OP_BUYLIMIT || OrderType() == OP_SELLLIMIT){
res = OrderDelete(OrderTicket());
}
}
}
break;
default:text="Another reason";
break;
}
} >>290
そこまでコードあるならデバッグprint入れてどこがおかしいのか調べられるだろ
もう少しどこがおかしいのか絞れ >>291
大変失礼しました。
Ondeinit関数の「case REASON_CLOSE:」の条件では
res = OrderDelete(OrderTicket());
の部分が失敗します(resの値が0になります)
それ以外の、例えば「REASON_REMOVE: 」の
条件で同じ処理をすると正しくオーダーが削除されます。
「case REASON_CLOSE:」の条件ではオーダーを削除
する方法が知りたいです。 エラーが起きてるならGetLastError()でどういうエラーか見ろよ >>293
ありがとうございます。
エラーは「02 ERR_COMMON_ERROR」
という謎のエラーでしたが、少し進展したような気がします。 >>292
多分だけど、REASON_CLOSEでOnDeinitが呼ばれた時点で既にEA
(というより自動売買?)の実行許可フラグが落ちてるのかも?
仕様だとしたら俺も知らんかったわ
俺は一目見てどうせOnDeinitの時間切れだろ?くらいに思ってたがw
仮にそういう仕様だとしたら意外に深い(mqlの範囲内で回避する方法
が思い浮かばない)かも?
dllでサブクラス化してクローズボタンの押下をMT4(メインウィンドウ)
より先にキャッチして、カスタムイベントをpostしてOnEventでキャッチ
してやりた処理をするって手はありそうだけど・・・・・・
大元のウィンドウプロシージャを止めてる状態でpostしてOnEventが
ちゃんと発火するかはやってみないと分かんない
試してみるにしも週末にならないと・・・・・・
そもそも質問者的にdll使用がアリなのかも分からんしねw REASON_CLOSEはterminal.exeの終了だから遅すぎなんじゃね
適当にどれか使えるでしょ あるいは単純に常に全部deleteしとけばいいじゃん >>295
そういう仕様なら納得です。
OrderTicket()は問題なく取得出来ているのに
OrderDeleteだけが実行できなくて困っていました。
DLLはハードルが高いので別の方法を検討したいと思います。
ありがとうございました。
>>296
ターミナルの×ボタンを押したときは
他のイベントは拾えない様でした。 EA止める
オーダーキャンセルのスクリプト実行する
閉じる
でいいんじゃね
カッコ悪いというなら頑張れ >>299
俺はプログラマーじゃなくてトレーダーだからそんなこと微塵も気にしないけど、
このスレの住人の多くはプログラマー崩れだろうから、そんなブザマなことはしたくないだろうね
そんなところに時間を使うくらいならもっとストラテジーの研究に時間を使えって思うけどね >>300
その程度の足回りに気を使えない奴がストラテジーのコア部分を見落とし無しで実装出来るはずがないっていうのが確率論なんだよね。この後の自分だけは例外って感じの必死レスまで予測可能 ふうん、やっぱりそこは触れちゃいけない部分だったみたいだね
まあ頑張れよ >>301
確率論関係ないじゃん…
お前はちょっと落ち着け どっぷりなプログラマーほどプログラムだけでなんとかしようとする。
優秀なSEはプログラムにこだわらず柔軟に解決方法を模索する傾向にあると思う。
は、さておき、そもそもキャンセル完了を確認してからMT4を閉じるべきじゃないかね。
サーバー側や通信不具合が原因で本当に失敗することも無いとは言えない訳で。 >>302
ほらなwww
>>303
確率と繋がってんの理解出来ないのはかなり痛いぞ。学歴と年収の相関みたいなもんだ。 >>306
確率で合ってるよ。学がないと大変だね。 まぁDLLまで持ち出すのはちょっと本末転倒だけど、別に>>299は無様でもないしな
頭の硬いプログラミングの知識の無い老害は放置推奨な かくりつろん【確率論】
確率の一般法則を論ずる数学の一部門。パスカルなどに始まり、数理統計学・誤差論など科学の方法として応用されている。 初カキコです。MT4での自作EA歴半年です。MT4で自作EA動かしているんだけど、業者からサーバーに多大な負荷()がかかっているからEA止めるか取引量減らせという通知が。
そこで質問なんだけど、OrderSendとOrderModifyで、引数に現在値と同じ値を設定して、エラーでERR_NO_RESULT(1)が返る場合はターミナル内でエラー処理されているわけですが、このとき業者サーバーにはメッセージとやらは送られているのでしょうか? >>308
あ、あれか、きみさ、ハードディスクのことを「ハード」とか読んでドヤっちゃう人なんだー
君もきみがいる世界のレベルも知れるよ >>311
引用するのに出典を書くような世界の人でないことはもうわかってるからいいよ >>314
これは失礼
引用元によって変わるような意味合いのモノでないので不要かとおもったのでね
まあ明らかにしてあげると大辞林 第三版
これでも>>301の表現が適切だったとおもってるのかな?w >>318
アンカも打たずにわかりやすい勝利宣言だなw
アンカも省略したのかな?
「安価なしであってるよ。学がないと大変だね。」( ー`дー´)キリッ そこまで追い詰められたいならさ、
「その程度の足回りに気を使えない奴がストラテジーのコア部分を見落とし無しで実装出来るはずがない
っていうのが確率論なんだよね。」
でさ、前段のどこが確率論なのかね?
几帳面な人は知能が高い、的なもの言いだけど、そこまで言うなら相応の「統計的なデータ」でも持ってきたら?w ガイジ、まだ気づいていない模様ww
>>316辺りを読めばわかるんじゃね?w 301=305=ID:spLzg8w30 と思ってたが違うのか??
難しいの〜w 301=305=ID:Wdqs0l9X0
やで
アホすぎて自分で言ってることがわかってないんだよ赦してやれ ID赤くして余程恥ずかしかったのね。失礼。
ま、そんな短絡的じゃやはりまともなストは描けないよね。
これも確率論。理解出来ないみたいだから放置。
この後またID真っ赤に醜態レスまで予測可能 >>326
違うぞガイジw
俺は今日しか書き込んでないw 主張も煽り方も同じアホが二人もいるのも確率論かあ
深いねぇ ■ このスレッドは過去ログ倉庫に格納されています