MT4のEAのプログラム変更方法

プログラミングの知識がないものです
市販でEAを購入しました。
スキャル系のEAで、注文してから決済まで60秒に設定されているのですが
これを20秒で決済で試したいのですが、変更はどのようにしてするのでしょうか?

回答1

購入したものであれば作者に聞いてください。
こんなところで質問しても誰も回答できません。

回答2

そのプログラムを貼りつけてくれないと、答えようがないですよ。


MT4 EA作成の勉強をしています。 質問なんですが、「ボリンジャーバンドの±2αに…

MT4 EA作成の勉強をしています。
質問なんですが、「ボリンジャーバンドの±2αに現在のレート(ひげも可)が
触れたらエントリーする。」のコードがわからず、困っています。

ボリンジャーバンド+2αに触れたら売りエントリー、−2αに触れたら買いエントリー。
エントリーのコードは書き方は解っているのですが、
例えば
if(+2αに触れたら)
sig= -1
if(−2αに触れたら)
sig= 1
みたいなコードで回答していただけると
大変助かります。
文章、日本語が変かもしれませんが
なにとぞ、よろしくお願いします。

回答1

インジケーターの数値は標準装備のものは「iichimoku()=一目均衡表の各パーツの数字を取る関数。」っていうかんじで関数が用意されてます。
ボリンジャーバンドはこれです。
http://www.metasys-seeker.net/MQL4_Reference_ver1/18-08_iBands.html

これで+ーの2σの数字をとって「現在価格」と合うかどうかってかんじです。
MODE_PLUSDIで+2σ
MODE_MINUSDIで−2σ
と、2回関数くり返すかんじですね。それぞれすうじとったら照合するってかんじでしょうか。。
またはそれぞれをshiguma[1]、shiguma[2]にいれといてあとでforとかwhileでループするというかんじです。
ぼくだったら配列にしといてループでとり出すほうがあとで1σ使うパターン思いついた時とかにも付け足しやすい気がするので好みです。

回答2

多分、コードの書き方より数倍重要だと思うので。
ボリンジャー・バンドは逆張り指標と考える方が多く、質問者もそのように考えておられることが質問内容から分かります。しかし、実際のチャートをよく見て下さい。
レートはボリンジャー・バンドの±2σ接触で反転してますか?
反転している場合もあるでしょうが、その後大きくトレンドのまま値を伸ばしている場合も多いことが分かると思います。
プログラム作成スキルがある方ほどアタマの中で好きなようにチャートを描いてしまいますが、現実のチャートに忠実に思考を進めるのが肝要です。
(ここらへんのボリンジャー・バンドの特性を既に理解されたうえであれば、この回答は意味ないですが。。。)


MT4の自動売買ソフトをまだ使った事がないのですが、VPSサーバーを使わずサインが…

でたら手動注文で国内FX証券会社で売買したいのですが、FX自動売買ソフトは一般的にサインは表示されるのでしょうか?

..[補足]..
アラートは出るでしょうか?

回答1

EAでは事後報告だけなので、インジケーターで、シグナルアラートが出るものを探す事になります。
オススメなどは知りません。

MT4のバックテストについて質問です。 ?皆さんはEAのバックテストでどのくらいの…

MT4のバックテストについて質問です。
?皆さんはEAのバックテストでどのくらいの期間をテストしていますか?
?またはどのような期間設定でテストをしていますか?
お力をお貸しください。よ

ろしくお願いいたします。

回答1

もちろん信用性を確かめるなら長期間に越した事はないですし、
あとは想定するそのEAが苦手な相場や得意な相場に期間を絞って挙動を確かめれば良いのじゃないでしょうか。

回答2

2007年〜2009年(暴落相場)、2009年〜2011年(レンジ相場)、2011年〜2013年(上げ相場)の3種類やっておけば固いように思います。
最大ドローダウンをみて決めてます(^-^)


MT4の自作EAでaccountprofit関数を使って、指定したlot数 × pips で決済したいので…

すがやり方がわかりません。。

mt4のEAを自作しているのですが、複数ポジションを持っていてそのポジションをaccountprofit関数を使って決済したいのですが、accountprofitは円で損益を返してきます。
私は複数建てたポジションの合計損益(accountprofit)が、(指定したlot数 × NNpips) と等しくなったら決済・・・みたいな感じにしたいのですがその場合はどのようなコードを書けばいいのかわからず困っていますm(__)m

どなたか教えていただけないでしょうか?

..[補足]..
すみません。。具体的なコードの書き方をご教授板だると嬉しいですm(__)m

回答1

一番簡単なのは、(指定したlot数 × NNpips)を別に計算してAccountProfitがそれ以上になったら全ポジションを決済するようにプログラムすることです。
目的がハッキリしているなら、形にこだわる必要はありません。

今年の抱負といたしまして、MT4のEA制作に挑戦してみようと思います。

まずは死ぬほど単純なEAを制作し、バックテストでプラスになるようなら、低ロットで稼働させてみます。

そこで、EA制作をはじめる私に、どうか、おすすめの書籍、またはサイトを教えてください。

よろしくお願いします

回答1

参考になるかは分かりませんが、私が勉強した順番です。
?メタトレーダーで儲けるスーパー投資術
(EAについては詳しくないけど、インジプレゼントとか興味あれば…基本的な使い方の説明があれば別に他の本でも良いし、インジもネット上で似たのがフリーである。行った本屋にMT4関連の本が他に置いてなかったので購入。導入本としては良いと思います)
?icustomで変幻自在のメタトレーダー
(icustom関数を教えてくれる。この本の内容だけでインジのパラをいじってエントリーor決済くらいのEAならいくらでも作れる。それで儲かるかは全く別の話)
?FXメタトレーダー4MQLプログラミング
(応用編になります。この本を参考にして少し凝った条件で動くEAを作成してました)
? MQL言語リファレンス日本語翻訳マニュアル
(書籍ではありません。サイトです。検索したら出てきますが、初心者でこれを見て理解出来るんだろうか…私には?まで勉強してやっと 理解出来ました。実はこれを読め(れ)ば書籍は不要)

高校、大学と文系でしたが、とりあえず簡単なEAの作成は出来るようになりました。
ただ、単純にインジを組み合わせても継続した利益をだすのは難しいですよ。
バックテストを行い、ある期間(A:例 2011/1〜12)で数値を最適化させて好成績なEAを作っても、別の期間(B:例 2012/1〜12)では機能しないということが良くあります。ですので、EAの作成の際に使う期間とその検証に使う期間は別にして有効性を確認するようにしてください。
また、有効なEAは多少のパラ変更で大きくパフォーマンスが落ちることはありません。数値を少しずらすとパフォーマンスがガタ落ちなんていうEAだと、ただカーブフィッティングさせているだけで、実際の相場では全く役に立たないと考えていいと思います。

イメージとは少し異なるとは思いますが、自動売買を活用している方もたくさんいらっしゃるので、行き詰ったらここか、2chとかで質問してみたらいいですよ。 ※私 は未熟なため具体的なプログラムについては回答いたしませんが…。

他にも過去回答の中に良書が紹介してあるので検索してみてください。

MT4 メタエディターについての質問です。 【決済】をEAが行ったか手動で行った…

MT4 メタエディターについての質問です。

【決済】をEAが行ったか手動で行ったか判断する関数あるいは方法はありますでしょうか?

正確に言えば

OrderSend();で指定された「takeprofit(利食い値)」で決済されたか、takeprofitに達する前に「手動」で決済したか、この2択を判別したいと考えております。
(同じチケット番号の注文でもどちらのパターンで決済されたかを判別したいです。)

良い関数または方法はありますでしょうか?

回答1

必ずTPが設定されるのであれば、オーダー履歴のOrderClosePrice()がOrderTakeProfit()と同じか有利な価格ならTPに
到達したと判定したらどうでしょうか?

ただ、TP直前で決済ボタンを押したタイミングで値が飛んで、TP以上で決済された場合にこれを手動と判定したいと言われるとそれはできません。orz

FX 自動売買について質問です。 VPSにてMT4を使いEAを稼働させているのですが、一…

FX 自動売買について質問です。
VPSにてMT4を使いEAを稼働させているのですが、一つのEAを2つの口座で全く同じパラメータ設定で稼働しているのに決済タイミングが多少ずれるのは良くあることな

のでしょうか?

回答1

>多少ずれるのは良くあることなのでしょうか?

原因はいろいろ考えられますが
あるでしょう

VPSが遅い
1Gの安いものであれば処理スピードは遅い
業者によっても違いますが

オーダー数量とオーダーの時間帯

そもそもtickでどうなっているか見てみないとわからないのですが
その仕組みがわかっていればあり得ると理解できるでしょう

あとは口座がどこの国のサーバーなのか
などなど

MT4、スピード注文や発注君などのEAについて知恵をおかし下さい。

説明通りにMQL4ファルダのExpertsやLibrariesにファイルをセットし、自動売買を許可するにもチェックを入れたのですが、いざ注文しようとすると、「MT4エラーコード=4112」が出て注文が通りません。原因はどこにあるのでしょうか?知恵をおかし下さい。

回答1

取引サーバーがEAやスクリプトによる自動売買を禁止しているようです。

↓より
http://www.xbridge.co.jp/?tag=mt4%E3%80%81build710%E3%80%81%E3%83%A…

MT4メタトレーダー4のEAプログラムで例えば、1時間足において移動平均線20SMAを…

現在値が上抜けたら買いエントリーというふうにティック単位のプログラムはできますか?

要するに1つ前のティックはSMAの下で現在のティックがSMAの上で買いエントリーの記述が分かる方いらしたら教えてください。

よろしくお願いいたします。

回答1

一つ前のTickを得る関数というのは残念ながらありません。
ですので、staticな変数を使います。
普通の変数だとあたらしいTickが入るたびに変数の値が定義しなおされ、リセットされてしまいますが、staticにすると前回の値を覚えてくれています。

static double before_tick; と変数を定義しておきます。

SMAという変数も定義しておき、移動平均線20SMAの現在値を入れておきます
if ( before_tick < SMA && SMA < Close[0] )
これで、一個前のTickで入ったbefore_tickがSMAより小さくて、SMAより現在値が大きければ真という条件式ができます。

あとは文末に before_tick=Close[0]; を入れます。
条件式よりも前に入れると、現在値がbefore_tickに入ってしまって、絶対に成り立たない条件になるのでその点だけ注意してください。

Static、ぜひ習得してください。
(これだけだと予期しない動作をするはずですが、ここから先は自分で考えてください)

回答2

標準で最初からついてるEAがまさにその動きです。
但し、tick単位ではなく、現在足と直前足です。


最近、MT4にてEAのバックテストを行っています。 Slippage Max Spread の項…

最近、MT4にてEAのバックテストを行っています。

Slippage
Max Spread

の項目がありますが、これらの数値はデフォルトのままに
してバックテストをしております。

(だいたい、両方とも「3」のことが多いようです。)

この数値を、両方とも少ない数値
例えば、「1」に変えても
バックテストの結果は変わらないものでしょうか。

データは、FXDDのを使っています。

データだけでは、その時その時の
スリッページやスプレッドを判別することなんて
できないような気がするのですがいかかでしょうか。

回答1

◆Slippageについて

バックテストではスリッページは発生しないので、結果は変わらないでしょう。

このパラメーターが意味を持つのは、トレードの時ですね。

◆Max Spreadについて

恐らくスプレッドが一定値を超えたらトレード制限をするためのパラメーターでしょう。

バックテストでスプレッドを指定できますが、その数値をMax Spreadより高く指定すればトレードがゼロ回になります。Max Spread以下に指定すれば、普通にトレードをします。

ただそれだけです。

MT4の、自動売買のEAを、自分の好きなものを作りたいのですが、作成ソフトなしで、…

簡単に作れる、無料のソフト等無いでしょうか? よろしくお願いします

回答1

>作成ソフトなしで作れるソフト等無いでしょうか?

「傘をささずに傘をさす方法を教えて」というのと同じで、質問自体が論理矛盾をきたしているので、まともな回答はつかないと思います。

再度、きちんとした質問を立てることをおすすめします。

回答2

こんなのが最近出てきた

ちょいトレFX
www.fxprime.com/service/system/

大いに簡単に参加してください。

ま、でも99%負けるよ〜〜〜
自分で意味が分かって作成できず、長年の裁量トレードのノウハウも無く
システム評価が出来るわけないwと気づく頃にはすってんてん


MT4で自動売買する場合、業者によって損益結果が全く違うのはなぜでしょうか 販売…

MT4で自動売買する場合、業者によって損益結果が全く違うのはなぜでしょうか
販売してるEAを試しに購入しました、現在デモ取引しています。

マニュアルにはFX業者が2社指定されていますが、A社は大きくプラスで
B社は大きくマイナスです。
レートは、ほぼ同じなのに不思議です。

回答1

そのeaはどんな取引をしているのでしょうか

スキャルなら僅かなレートのズレからそんな結果になると想像できますが

数時間に一回しかオーダー出さないのなら eaの内部動作を会社ごとに変えてやればありえなくもないですがかんがえにくいですね

ドル・ユーロ・円の為替レートを指定した数値に来たときに教えてくれるツールとか…

ないでしょうかね?チャートだとず〜と見てないといけないので見てなくても指定した数値になったら教えてくれるツールが欲しいんだけ

ど。

回答1

MT4をお使いなら、標準でアラーム機能が付いています。http://zai.diamond.jp/articles/-/126309

有料ツール出したら、こんなのがオススメです。
MagicalTouch
http://fx-mt4ea.com/ea/item/74/

つい最近、VPSでEAを動かし始めました。 自宅のPCにもMT4と入れています。

つい最近、VPSでEAを動かし始めました。

自宅のPCにもMT4と入れています。

上記と同じ業者の口座でして
(口座番号も全く同じです)
チャート等が見れるのですが
ターミナル画面にて、上記EAの損益や売買履歴を
確認したりするのは問題ないことなのでしょうか。

VPSで売買している口座の状況を
自宅のPCで、自宅に敷設したネット回線で
別のMT4にてのぞいているということになります。

これはVPSの方のMT4には影響ないでしょうか。

何か悪影響などあったら嫌だなと思いまして・・

ご教示おねがいいたします。

回答1

質問者さんのようなことは,私はいつも普通にやってますが全然問題ないです.
PCのみならず,スマホでMT4アプリで,出先から稼働状況を確認したり,さらにもっとアラワザ的には,VPSで売買しているMT4のポジションをスマホからクローズしたりしてます.(自作EAなので,外部から強制的にクローズした場合,EAがどういう状況になるかわかってますので.)
自作EAでなくても,他端末から,口座の損益や売買履歴を確認したりするのは問題ないでしょう.

FXでMT4をEAで使用予定でいますがレンジ相場を出来る限り見極めるのに 参考になる…

FXでMT4をEAで使用予定でいますがレンジ相場を出来る限り見極めるのに
参考になるインジケーターがあれば教えてください。

トレーダーさん達がインジケーターからどのように
レンジ・トレンド相場かを見極めるのかを知りたいのでお願いします。

回答1

私の経験では、

レンジ→トレンドを感知することは比較的容易ですが、

トレンド→レンジを感知することはかなりむずいですね。

レンジ→トレンドを感知するのに私がよく使うのは、標準偏差、ATR、出来高といったところです。

有名どころでは、ADXもありますが、あれは、「感知」したときにはトレンドが「完治」していて、クソの役にも立ちません。(笑)

回答2

デイトレであればレンジ相場になりやすい時間帯が決まっています。
レンジ相場限定でやりたいのであれば、デイトレのほうがいいですよ。


MT4 MQLファイルの行方??

先日、MT4にてインジケーターを自作しコンパイルを通しました。
インジケーターの動きに問題がなかったのでMQLファイルをバックアップ
しようとし、プログラムファイル中の

MetaTrader4>MQL4>Indicators

とフォルダを開いたのですが
自作したインジケーターのMQLファイルが表示されておらずバックアップできません。
(以前のMT4ではIndicatorsフォルダで見つけることができました)
要するにバックアップがしたいだけなのですがどうすればいいでしょうか?

使用MT4のバージョン:4.00 Build670
DL元 :Alpari Japan

です。よろしくお願いしましす。

回答1

MT4は、先日大幅なヴァージョンアップをして、Bild600になり、
それまでのBild509とはデーターの収納場所が違います。
現在のヴァージョンはBild670だと思います。
Bild600以降は、まず、MT4を立ち上げて左上のファイルから
データフォルダを開くをクリックするとフォルダが開きますので
その状態でMT4を終了します。
新しいフォルダはMQL4という新規のフォルダが追加されています。
その中にExpertsフォルダがあり、ここにEAを収納します。
また、MQL4フォルダの中にはIndicatorsフォルダがあり
ここにインディゲーターを収納します。また、
MQL4フォルダの中にはScriptsフォルダもありそこにスプリクトを収納します。

データフォルダ自体の場所は、
C:\Users\user\AppData\Roaming\MetaQuotes\Terminal
の中に英数羅列のフォルダが作成されていて その中です。

MQL言語(MT4の)によってこのような ことが可能かどうか教えてください。…

MQL言語(MT4の)によってこのような
ことが可能かどうか教えてください。ある特定の足の形
が完成したら、チャートに目印・サインを表示させると
同時にアラーム音を1回だけ鳴らすというものです。

例えば、添付図のように「包み足の包み足」
が完成したらチャート内にサインを表示させ、
アラーム音を1回だけ鳴らすというツールが
作成可能かどうかを知りたいです。
また、その難易度はいかほどのものかも
ご教授願えればありがたいです。
当方、VisualBasc(Ver2010)は
多少の知識を持っておりますが、MQLは
全く未知の言語です。MQLはC言語を踏襲して
るとのことですが、C言語は若い頃に挫折した経緯
がありまして、また、あれを勉強しなきゃイカン
のかと思うと心配です・・。

C言語,VisualBasc,Ver2010,MQL,チャート,MQL4,アラーム音

回答1

簡単に作成可能だと思いますが,C言語はどの部分で挫折しましたか?
最低でif文とfor文,配列などを理解していれば,大丈夫ではないですか?
もし,if文やfor文で挫折していたとしたら,ちょっと無理です。

チャート内にサインを表示させ、アラーム音を1回だけ鳴らす処理は別にして,
「包み足の包み足」が完成したかどうかの判定は下記のとおりでできるのでは?

//Up_Down_Up:上昇→下降→上昇時の「包み」完成のとき1,そうでないとき0に設定される
Up_Down_Up =0;
if( Close[3] < Open[2] && Open[3] > Close[2] && Open[2] < Close[1] && Close[2] > Open[1] ) Up_Down_Up =1;
//Down_Up_Down:下降→上昇→下降時の「包み」完成のとき1,そうでないとき0に設定される
Down_Up_Down =0;
if( Open[3] < Close[2] && Close[3] > Open[2] && Close[2] < Open[1] && Open[2] > Close[1] ) Down_Up_Down =1;

// チャート内にサインを表示させ、アラーム音を1回だけ鳴らす処理
if( Up_Down_Up == 1 || Down_Up_Down == 1)
{ // チャート内にサインを表示させ、アラーム音を1回だけ鳴らす}

ただし,上記の処理は,新しい足の始まるごとに1回だけ処理するようにしないと
アラーム音が鳴ったらその足の間中鳴りっぱなしになります。なぜなら,MQL4のStart関数は,tick変動ごとに実行されるevent駆動型だからです。
新しい足の始まるごとに1回だけ処理する方法は,http://konnafx.exblog.jp/13380081/
などを見てください。

しかし,”包み足の包み足が完成したらチャート内にサインを表示させ、アラーム音を1回だけ鳴らして,それを見て周りの状況からエントリーするかどうかを裁量で判定する,というのなら,その周りの状況もきちんと定式化して,それも条件に含めて OrderSendを出すようにEA化すれば,裁量部分を避けられますがね。
MQL4はまぁ相当複雑な条件でも実現可能です。質問者様の条件などは,とても簡単なほうだと思いますよ。

MT4のEA作りに挑戦しています。 いろいろ試してしますがうまくいきません。 「…

MT4のEA作りに挑戦しています。
いろいろ試してしますがうまくいきません。

「前回のトレード結果が負けトレードなら・・・」

という条件を入れることは出来るのでしょうか?
出来る場合、どんな記述になりますか?

回答1

前回のトレード結果の損益を返す関数です。

int LastOrderProfit()
{
string symbol=Symbol();
for(int i=OrdersHistoryTotal()-1;i>=0;i–){
OrderSelect(i,SELECT_BY_POS,MODE_HISTORY);
if( OrderSymbol() == symbol && OrderMagicNumber() == MAGIC && OrderType() <= 1 ){
break;
}
}
return(OrderProfit());
}

MT4で相関自動売買トレードをしたいのですが、

例えば、「?既存EAがUSDJPYを0.1???Buyした場合」、「?同時期にEURJPYが0.1???Sellして決済は?のUSDJPYが決済したら同時期に決済する」といった、コピーEAと少しにているのですが同一通貨ではない事が特徴です、この様な?のEAをご存知でしょうか?

回答1

作るしかないでしょう。
楽なのは常に現在のポジションをチェックしてUSDJPYの買いポジションがあったらEURJPYを建てて、ポジションが無くなったらEURJPYの方も閉じる。
多少タイムラグが出るけど慣れた人なら作るのに5分とかからないでしょう。

回答2

東岳証券のさや取りEAみたいなもの?
http://www.easthillfx.co.jp/


回答3

ヒント、この手の質問はコイン500枚じゃないと誰も答えないッッッ


回答4

LOGをWATCHしていて、決済専用のEAを作った方が良いでしょう


MT4のチャートを使ってEAを稼働したいのですが、1枚のチャートに2つの同じEAをイ…

ンストールすることは出来ますでしょうか。
1つ目と2つ目のエントリー条件のパラメータだけをかえるだけ

です。
よろしくお願いいたします。

回答1

1つのチャートに2つのEAは無理です。
やるなら、
1つのMT4にチャートを2つ立ち上げマジックNo.を変更!
もしくは
同一口座でMT4を2個立ち上げ各々にEAを入れる!
って感じになると思います。

MT4 EA なのですがシャットダウン前の売買ポジションの情報を取り入れるには

MT4 EA なのですが
一回 MT4をシャットダウンさせると それまでの買いや売りポジションを決済しないまま 新規に次の買いや売りをしてしまいます
シャットダウン前の売買ポジションの情報を再立ち上げ時にプログラムに取り入れ
既存ポジションの決済を出来るようにするにはどの様なプログラムにしたら良いでしょうか
よろしくお願いします

回答1

・ポジションを持とうとするときに、改めて現在のポジションを確認する

・init()の中で現在のポジションを確認して、変数に記憶させる

などが一般的ではないかと思います。
変更箇所が少ないのは後者かと思いますが、損切りや利確が発生した場合は、対応しない可能性があります。

MT4(メタトレーダー4)について教えて下さい。これがソフトウェアであることは何…

とか理解できましたが、どうやら特殊なソフトのようですね。

楽天証券だけでなく、いろいろなところでMT4が配布されていますが、このソフトはどこでダウンロードしても同じ物でしょうか?

MT4の前に「楽天MT4」などとしていますので、MT4といっても楽天特有のMT4なのでしょうか?

また、MT4の設定とか、外部からMT4用の何かを配布されて、それをMT4に反映させている、という話も聞きますが、これはどういうことなのか教えて下さい。

なお、そんなもんググれとか説教だけ上から目線でしてくる方の回答は結構です。質問して概要がわかればあとはググります。細かいところは。ググっても概要が理解できないので、そこんところを教えていただけると助かります。

回答1

>質問して概要がわかればあとはググります

MT4を使うメリットはたくさんのフリーインジケータが存在する
使えるかどうか別として
またEA、自動売買を買ったり作ったりして
やりたい人はこれを使うか(あるいはMT5)
他にこのようなものはない

FX業者は独自のチャートに独自の注文スタイルにするか
MT4を取得して業者の注文ができるようにする

日本のFX業者でMT4が使えるところは少ない
MT4は必ずしもいいとは言えない、まあ古いソフトです
ある程度のメリットがある、あるいは特別な理由が無ければ
自社で扱えるツールをお客に提供する

日本で使えるMT4は海外勢が多い
楽天も海外の日本支社を買収した流れで使っているような気がします
https://f x-ai-trading.com/fx/tm4-broker.html

回答2

自分はエックスイーマーケッツのMT4と
国内業者のMT4を使ったことあるけど、
スプレッドとか、スワップとかも違うわけだし、
そういう細かい設定とか、業者がそれぞれやってんじゃないかな?


回答3

MT4はメタクオーツ社の商品です。
FX業者はメタクオーツ社とライセンス契約を結び我々エンドユーザーに配布されます。
無料で使えるのでフリーソフトのような言い方をする人がいますがFX業者とメタクオーツ社の間でちゃんと金銭のやり取りがあります。
(以前はサイトにライセンスの種類など出ていました)

MT4の中身は同じです。
ただ取り扱い銘柄はFX業者に依存しますのでそれぞれ業者によって違います。
接続先のサーバーが違いますので表示時間も違います。

既存のテクニカル指標だけじゃなく自分で作ったインジケーターやEA(自動売買システム)などもインストールして使うことができます。

https://zai.diamond.jp/mt4

ここに一通りのことが書いてあるので見てみるといいでしょう。


MT4の使い方について初歩的な質問です。 最近、MT4にて自動売買EAを初めて稼働し…

MT4の使い方について初歩的な質問です。
最近、MT4にて自動売買EAを初めて稼働しました。
取引トリガが厳しいもので、まだ取引してくれてはいませんが、
自動売買中に普通のトレード(手動の

トレード)をした時にEAは止まることは無いでしょうか。

初歩的な質問かと思いますが、ご回答頂けたらと思います。

回答1

> 自動売買中に普通のトレード(手動のトレード)をした時に
> EAは止まることは無いでしょうか。

EA稼働中に手動のトレードをしても,普通はEAが止まることはありません.
ただ,発注量や発注額やレバレッジが業者側で設定している値を超えてしまった場合や証拠金維持率が設定値を下回った場合などは新規の発注は実行されませんね.
ターミナルウインドウの「エキスパートタブ」をクリックするとEA側からのメッセージが見えますので,参考になるかもしれません.

自動売買EAが自作かあるいはソフトが公開されているものなら,適当なところにプリント文を入れておけば,そのメッセージはターミナルウインドウの「エキスパートタブ」のところに出力されますので,EAがどのような状況になっているのかわかります.

mt4のEAで、複数ある変数の順番を拾い出したい。

例えば、冒頭で定義している5つの変数、A,B,C,D,Eがあったとして、
これらの大小の順位を拾い出したいのです。
例えば、実際、B>C>D>E>A なら、
A=5、B=1、C=2、D=3、E=4 のように代入してくれる、様な感じです。

最大値、最小値程度なら、if文でも長々と書けば事足りるのですが、
さすがに順位となると、if文では長すぎて、大変です。
ArrayMaximum()は変数に対応していないようで、
コンパイルエラーでした。

どなたか、うまい短縮した書き方で、良い方法は無いでしょうか?
よろしくお願いします。

回答1

nozone49jp さん、はじめまして、マオといいます。

以下のように考えたら、順位付けは可能かと思います。

配列A(0〜4番)に次のような数値が入っているとします。
配列A (0.36, 0.96, 0.25, 0.21, 0.83)

これらの数値を配列Bへコピーします。
配列B (0.36, 0.96, 0.25, 0.21, 0.83)

この配列Bを降順で並び替えます。
配列B (0.96, 0.83, 0.36, 0.25, 0.21)

while を使ってサーチ
配列Aの 0番に入っている 0.36 を配列Bで探す→2番(先頭は0番)
配列Aの 1番に入っている 0.96 を配列Bで探す→0番
以下同様

具体的なプログラミングは nozone49jp さんにお任せします。

//————————————————–
よく読んだら、『変数』の 膂棉佞韻覆鵑任垢諭

変数 A,B,C,D,E を用意するのではなく、配列 A(0), A(1), A(2), A(3), A(4)
を用意したらできそうな気がするのですが。。。

MT4で自動で逆指値を移動してくれるEAはありますか? たとえば買った時に一緒に逆…

MT4で自動で逆指値を移動してくれるEAはありますか?
たとえば買った時に一緒に逆指値を指定し、値段が上がると一緒に逆指値も上昇するが、下がったときは動かない、というような感じです。

回答1

「トレーリングストップ機能」といいます。

ググればたくさんあると思います。

回答2

トレーリングストップ機能の基本的なものは、MT4に標準で付いている。
ストップオーダーは必要ですけど。

トレーリングストップ、桁に気をつけて。


メタトレーダー4(MT4)のEAの決済プログラムサインで教えてください。

エントリーしたバーの終値で決済するようなプログラムはどのように書けばよろしいのでしょうか?

あと、この検証しているデータなのですが、
MT4のデータではなくエクセルなどで作成した4本値を
MT4にインポートしたデータなのでTickデータがありません。

宜しくお願いします。

..[補足]..
fhat6014さん、ありがとうございます。私の説明不足なので補足させていただきます。
検証中のデータは為替のデータではなく他の市場の日足なので、窓が頻繁に空いています。
次のバーの始値だと、窓の影響を受けてしまうので、
エントリーバーの終値で決済できるプログラムを教えていただけると幸いです。

回答1

ほかの部分との兼ね合いもあるのであくまで一例ですが、

for(int i=OrdersTotal()-1;i>=0;i–){
if( OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false ){
break;
}
if( OrderSymbol() != Symbol() || OrderMagicNumber() != magic ){
continue;
}
if( OrderType() <= 1 && iBarShift(NULL,0,OrderOpenTime(),false) >= 1 ){
OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),slippage);
}
}

厳密に言うと次の足の始値になりますが、たぶんこんな感じでいいと思います。

補足について

終値での決済は、もう少し細かいデータがなければ不可能だと思います。

MT4のEAは、ティックの変動があったときに処理を開始します。
極端な話、一日中ティックの変動がなければEAは何の処理もしません。
バックテストでも終値付近でのティックの変動 を示すデータがない限り、決済処理は不可能だと思います。

MT4の電源は、常にオンにしておくものですか? 例えば注文から決済までを出した後…

MT4の電源は、常にオンにしておくものですか?
例えば注文から決済までを出した後、電源オフにしてしまうと、注文は通らないのですか?
PC立ち上げた時、常に最新の取引になっていないのでしょうか?

ちなみに????????????のMT4です。
365日24時間PCの電源は入れとかないとダメなんでしょうか?
スリープ状態もダメなんでしょうか?
FXをしている方皆さん、PCはずっと立ち上げたまま旅行など行くのでしょうか?
VPSを使っているのでしょうか?

回答1

MT4の自動売買は自動で注文の送信を行うだけなので、注文の受付完了後のことは、通常のFXと同じです。
例えばEAが新規や決済で指値や逆指値注文を送信してその注文が受け付けられた場合、MT4を終了させてもその注文は有効です。

再度立ち上げたときには、ポジションの有無やチャートの情報など最新の状態に更新されます。

24時間稼動させていないとダメということはないのですが、24時間常に稼動するのが自動売買のポイントの一つなので、そうしている方が多いと思います。

スリープ時は機能しません。

VPSなどを使っている方も多いとは思いますが、もし外に預ける状態が不安だというのであれば、MT4用に故障に強いタイプの小型モバイルPCを用意するという方法もあるかと思います。

MT4のEAで、ポジションに対してOCO注文を自動で出すことは出来ますか?

たとえばドル円を新規で成り行きロングして、100.50で約定したとします。
このとき約定したポジションに対して、あらかじめ設定しておいた幅でOCO注文を自動で出したいと思っています。

たとえばリミットが10pips、ストップが20pipsに設定したい場合、前述の100.50の買いポジに対して「リミット100.60、ストップ100.30のOCO注文」を、約定した直後にすぐ自動発注したいのです。

どういったコードを書けば良いでしょうか?

回答1

成り行きにロングをEAで???

EAに成り行き??

注文発注と同時にリミット設定ができるはずです。基本ですよ。

どう書くかは忘れたw

回答2

スクリプトで書くならこんな感じかな

http://www.abysse.co.jp/mt4/indicators/OCO.mq4


mt4にインストールするEAのex4ファイルをフォルダに入った状態で、メールで受け取…

ったのですが開くことが出来ません。圧縮ファイルではありません。どうすれば開けるでしょうか。よろしくお願いいたします。

回答1

MT4インストールフォルダ直下の「experts」フォルダに
配置(インストール)すれば使用できます。

回答2

>mt4にインストールするEAのex4ファイルをフォルダに入った状態で、メールで受け取った

ファイルの拡張子を「ex4」→「exe」にするのではないでしょうか?

メールを送ってくれた人に問い合わせるのが一番確実です。