【MT4/5】Meta Trader初心者専用57【EA素人】
■ このスレッドは過去ログ倉庫に格納されています
みんなテクニカルは勉強するけど、確率統計学は勉強しないんだよなあ
そっちが1番重要なのにね、テクニカルなんて学ぶのは1番最後でいい、まずは確率統計学
あとはセンスというか探究心かな >>204
>一番知りたいのは、レンジ相場か一方通行かを機械的に判定させたいけど、
>方法がわからない。
一番キモの部分、それを見つける事が全てと言ってもいい
本当に重要なところはググっても出てこないぞ
オレだって見つけた優位性は何年も他言した事はない
仮に答えは「機械的に判断できない」でもいいのだよ
じゃどうするか?が、次の課題になるだけ ある程度の情報からヒントを見つけて自分なりに試行錯誤するのがデフォルトだからねぇ…
何故簡単に誰かが教えてくれると思ったのかが謎。 なるほど、どうもありがとう。
やっと独学でea組めるようになったのに、これから儲かるロジックを見つけるのが大変や 水平線を引くのに縦軸の位置を座標で指定する方法がわからない。
調べても価格で指定する方法ばかりで、座標で指定する方法が見つからない。
誰か知っていたらよろしくお願いします。 そもそも座標で引く理由ってなんだ?ちょっとわからん ピクセル座標で直線が引けないというのは、なんだかなぁ〜
何か方法がありそうな気がするんだけど? 水平線ならOBJ_RECTANGLE_LABELでなんとかなるんでね? >>214
やはりそれしかないでしょうか。
両サイドの縦線が邪魔なので何か方法はないものかと・・・
MQL4も一番基本的な直線が引けないというのもなんだかなぁ〜という感じです。 そもそも何がしたいのよ
別に無理して使わなくてもいいんやで だれでも思いつくようなことを
(こちらはその程度のことは既にやっていてその上でもっと良い方法がないか訊いている)
上から目線で偉そうに云われてもねぇ〜w じゃあBITMAP使えよ
なんでも思い通りにできるぞ あたりまえすぎて話にならない。
あなたもういいよ。 俺が第一感で思いついたのはWin32APIでDC取得して直接描き加える方法だけど
単純にmql4内で描き加えてもMT4が画面を更新すると当然消えちゃうから、サブ
クラス化してWM_PAINTを捕まえてMT4が画面を更新する度に描き加えるという
処理を繰り返す必要がある
ぶっちゃけタルいw
っで、ググっててみつけたのは、OBJ_LABELを極小のドットとして利用する方法
madpaintermql4でググればソースが得られるから線でも図形でも画像でも好き
に描けばいい
mql4の知識の範囲内だけで実現できるし思いつきさえすればなるほど簡単
そして、これfaiさん作らしい、ホントこの人はもう発想が天才すぎると思ったw faiさんが15年前に歩んだ道を今から通るのかよw 当時はRECTANGLELABELもBITMAPもなかったからなぁ >>223
ダルい以前にウィンドウ構成がbuildで変わったりもするからあまり現実的でもないのよな
DLLオンにしてるとそれだけでいやがるバカも多いし >>213
for文で小さな
OBJ_RECTANGLE_LABEL�
を並べて直線作りましたよ
あと
MathCos�
MathSin�
を使って時計も作りましたよ >>227
当面、ピクセル座標で任意の位置に水平線が引ければよかったので、厚み1の矩形を描くことで解決しています。
斜線や曲線が必要な場合、思い出して使わせて頂きます。有難うございました。 そう言えば、CCanvasだかなんだかに直線とか楕円をDDAで描く実装があったな
意外と無駄なとこはがんばってるのなw finexoてとこのMT4使ってるけど 接続状況は繋がってるがチャートは動かない
どういうこと? 先月から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を閉じるべきじゃないかね。
サーバー側や通信不具合が原因で本当に失敗することも無いとは言えない訳で。 ■ このスレッドは過去ログ倉庫に格納されています