【MT4/5】MetaTrader質問スレ ★1

このエントリーをはてなブックマークに追加
938イベリコ:2014/04/05(土) 17:56:54.45 ID:VBdXooJq
       __         / 〉 
     __ \ `Y´  ̄ く_/   
  ~γ´    〉.   .  .ヽ    
   !     {   ( l l ) |   
   `、     ヽ      ノ    コンパイルたくさんしたら、お金と髪の毛が増えるて、本当ですか?
    `し ⌒ し" 一‐し´  
939Trader@Live!:2014/04/05(土) 20:52:49.23 ID:mC8O0uXL
928ですが初心者スレで聞いてみます
スレ汚し失礼しました
940Trader@Live!:2014/04/06(日) 11:22:36.93 ID:25aeIfEv
938ですが初心者スレで聞いてみます
スレ汚し失礼しました
941Trader@Live!:2014/04/06(日) 20:54:00.42 ID:LLctC2iT
すみません。一昨日MT4デビューした初心者です。
インジケーターに不具合が出て困ってるのですが
某インジケーター集のサイトで「kairi」と
「Period_Converter_Opt.mq4」を無事にインジケーターズのファイルに
ダウンロードしたのですが、ローソク足が更新されても乖離のインジだけ
更新されず、おいてけぼりになります。他のインジはちゃんと進むのに。
あと3分足や2時間足を表示したいのでPeriod_Converter_Opt.mq4入れたの
ですが、マニュアル通り一分足のチャートにカスタムの
Period_Converter_Opt.mq4をドラッグ⇒ドロップが出来ません。
カーソルはドロップ状態で一分足チャートまで持っていけるのですが
ボタン離しても音沙汰なしです。
上記の二つの不具合はどうしたら解決できますか?
どなたか詳しい方おられましたら御教授のほど、お願い致します。
942Trader@Live!:2014/04/06(日) 21:06:23.54 ID:XwONTsMi
>>941
MT4 はBuild 600前後で 
ヒストリカルデータのフォーマットが変わりました。
結果、オフラインチャートを使うインジは機能しません。

諦めるか、改造方法を調べて改造するかないかと。
943Trader@Live!:2014/04/06(日) 21:36:56.39 ID:hR6fUZ2K
ku-chartのオフラインチャートは表示できますけど、どうなんでしょうか?
944Trader@Live!:2014/04/07(月) 01:50:34.27 ID:8zc9FmEV
droidMT4で取引してるんですけどMT4みたいにレポート出せないんですか?
これがないと確定申告するときの年間取引報告書が作れないのですがどうしたらいいのでしょうか
945Trader@Live!:2014/04/07(月) 01:53:56.30 ID:3ISIU/Ap
>>941

Kairi: >>617
OptMOD でよければ: http://hayabusa3.2ch.net/test/read.cgi/livemarket2/1392108485/295

>>942
新フォーマットはヘッダバージョンもあがってる(401)ので、
混在できますよ(ファイル単位で、という意味です)。
オフラインチャートが動かないのは、 FileOpen と FileOpenHistory の仕様変更によって、
FILE_SHARED_READ を指定しないと、別のインジケータやMT4自体が、書き込み中のヒストリカルデータを
読み取ることができなくなってしまったためです(ずいぶんな仕様変更だなぁと思います)。
946Trader@Live!:2014/04/07(月) 10:18:38.92 ID:y+U64xyT
バージョンアップでWin版ですら阿鼻叫喚なのか
メインのWin機ではバージョンアップしても問題なかったけど
macで使ってる方が完全に起動不可で終わってしまったわ
困ったもんだねー
947941:2014/04/07(月) 12:18:51.04 ID:gYk+lWTG
>>942>>945さん、御丁寧にありがとうございます。
当方英語が分からない者で、改変後のアドレスを紹介してくださったのは
理解できるのですが、具体的にそのあとどうすれば良いのかが判りません。
プログラム的な知識はゼロなので何をどのようにすればよいのか
チンプンカンプンです。出来れば改善された「kairi」の
インジケーターをダウンロード出来るところはないでしょうか?
3分足、2時間足の件は難し過ぎてお手上げです。諦めます。
重ね重ね申し訳ありませんが、せめて乖離率をちゃんと表示できるよう
御教授のほど宜しくお願い致します。
948Trader@Live!:2014/04/08(火) 09:21:52.33 ID:Qb9H2CcK
例えば、EUR/USD上で動かしているEA上で、変数AにEUR/JPYのBIDを入れたいときどのようにすればいいのでしょうか?
949Trader@Live!:2014/04/08(火) 12:09:44.27 ID:21BPQ4Zq
iClose() 関数を使う
950Trader@Live!:2014/04/08(火) 12:49:25.05 ID:Qb9H2CcK
あああ、そうですね
ありがとうございました
951Trader@Live!:2014/04/10(木) 12:14:56.54 ID:1X01wZfr
ちょいと質問

MT4っていろんな会社がツールとしてつかってるけど
仕組みは同じなわけでどこの会社のチャートみるのもできるわけ?

たとえばペッパーのデモ口座使ってて
FOREXやFXCMからインストールしたMT4でもペッパーのデモ口座でチャートみるってこと可能ってこと?

てことはなんこかMT4いれてて一個がペッパーの600系バージョンで
ほかのが508だとしたら
ほかのでペッパーのデモ口座でみればいいってこと?

MT4 インジいれてチャートしかみてないんだけど

おしえてください
952Trader@Live!:2014/04/10(木) 14:12:33.83 ID:dqNGTErU
他社のサーバ定義ファイルをコピペしてくるか、IP直指定とかすれば、よそのサーバにもログインできるよ。
953Trader@Live!:2014/04/10(木) 18:43:17.45 ID:qE5SnxAE
MT4は100年先もチャートソフトのスタンダードになり得るのか
954Trader@Live!:2014/04/10(木) 19:32:57.48 ID:3/n9N6ag
逆指し値を、売り、買いに2ついれたんだけど、ターミナルの(逆指し値の)価格の色が緑色になっています。片方だけ緑なんだけど何でやねん?値段が動くと白になったり。。ヘルプとか説明載ってますかね?
955Trader@Live!:2014/04/10(木) 20:10:08.74 ID:pHxRYEQi
生きてる間は使わせてくれ、じゃないと食っていけない
956Trader@Live!:2014/04/11(金) 15:12:41.81 ID:vjtsY3vG
1つのインジを最初のチャートだけにセットして、
全チャートに適用するようなことってできませんよね?
957Trader@Live!:2014/04/11(金) 18:25:57.09 ID:jg6OoBkU
>>956
default.tpl に保存すれば、
次から開いたチャートにはすべてそれが適用されるよ?
958Trader@Live!:2014/04/11(金) 19:21:39.29 ID:A972w/j4
>>956
一つにセットしたら同時に他のチャートにも表示できるようなスクリプトがあるかって事でしょ?
それ出来ないよ。
>>956のやり方しかできない
959Trader@Live!:2014/04/11(金) 19:46:53.58 ID:KRmddVMW
質問させてください。
int start()
{
USDCAD1=iClose("USDCAD",0,1);
USDCAD3=iClose("USDCAD",0,3);
double USDCADP=0;
USDCADP=USDCAD1/USDCAD;
こんな感じで複数の通貨ペアの変動率を比較させたいのですがFTでは動くの
ですけれどもBTがゼロデバイドと指摘されてできません。
コメント関数では実数であることを確認できたのになんでゼロデバイドなんでしょうか?
960959:2014/04/11(金) 19:49:14.31 ID:KRmddVMW
USDCADP=USDCAD1/USDCAD;→ USDCADP=USDCAD1/USDCAD3;でした。
961Trader@Live!:2014/04/11(金) 19:56:55.59 ID:xy9EmAQT
>>959
(1) Comment 関数で出している変数が、実は USDCAD3 じゃない
(2) USDCAD1/USDCAD3 の箇所ではないところで0除算が発生している

のどちらかですかね。
962956:2014/04/11(金) 20:22:34.02 ID:vjtsY3vG
>>957
なるほど。ありがとうございます。
963959:2014/04/12(土) 09:59:20.39 ID:aZdIC+eF
どうやら他通貨のヒストリカルデータを全部入れてなかったようです。
ヒストリカルデータが欠落して関数が0を返しているものという結論に至りました。
ご回答いただいた方、ありがとうございました。
964Trader@Live!:2014/04/12(土) 11:05:14.96 ID:Y2Jplgik
>>957
詳しく教えてください

何をどこに保存すればいいの?



>1つのインジを最初のチャートだけにセットして、
全チャートに適用するようなことってできませんよね?
965Trader@Live!:2014/04/12(土) 11:06:51.41 ID:o6prmQ3s
ひとつ聞きたいのですが、close[1]はopen[0]と同じ値ですか?
966Trader@Live!:2014/04/12(土) 11:42:24.44 ID:ABO+AVne
違います
967Trader@Live!:2014/04/12(土) 15:55:12.89 ID:yW5CHIZz
close[1]とopen[0]が同じだったらチャートに窓が存在しないことになるな
月曜の窓明けも当然無い。

つまりそういう事だ
968Trader@Live!:2014/04/12(土) 23:00:26.17 ID:Yq5bEKGC
600になってから、プログラムがおかしいです。

「iCustomで変幻自在のメタトレーダー」という本で、自作をしています。
600になってから、1分足でデモすると、何回も取引するようになってしまいました。
誰か、ご伝授ください。

ただの、Ask Bid はだめなようなので

Ask_1 = MarketInfo(Symbol(),MODE_ASK);
Bid_1 = MarketInfo(Symbol(),MODE_BID);

を入れました。
下のプログラムは、はしょってますが

//買いポジションの利益確定 TPは利益です

if( OrderOpenPrice() + TP * _Point <= Bid_1
&amp;&amp; ( Ticket_L != 0 &amp;&amp; Ticket_L != -1 ) )
{
Exit_L = OrderClose(Ticket_L,Lots,Bid_1,Slip,Red);
if( Exit_L ==1 ) {Ticket_L = 0;}
}

//買いエントリー
if( RSI_1 > RCI_20
&& RSI_2 < RCI_20

&& ( Ticket_L == 0 || Ticket_L == -1 )
&& ( Ticket_S == 0 || Ticket_S == -1 ))
{
Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask_1,Slip,0,0,Comments,MAGIC,0,Red);
if (Ticket_L >= 0)
{

よろしくおねがいします
969Trader@Live!:2014/04/15(火) 03:58:51.53 ID:VHPggLQO
質問したまま消える人
970Trader@Live!:2014/04/15(火) 12:56:54.61 ID:OBgF5ybb
MT4 build 625 上で新規チャートに下記EA(PeriodChanger.mq4)のみセットし
キー(j=下、k=上)を連打してチャートの周期(M1〜MN)を切り替え続けていると
たまにMT4がハングアップします。

どこかプログラムに誤りありますでしょうか?

=== PeriodChanger.mq4 ===
int OnInit() { return(INIT_SUCCEEDED); }
void OnDeinit(const int reason) { return; }
void OnTick() { return; }

void
OnChartEvent(
const int id, // Event ID
const long&amp; lparam, // Parameter of type long event
const double&amp; dparam, // Parameter of type double event
const string&amp; sparam // Parameter of type string events
)
{
switch (id) {

case CHARTEVENT_KEYDOWN:
if (lparam == 'J' || lparam == 'j') {
ENUM_TIMEFRAMES new_timeframe = PERIOD_CURRENT;
switch (Period()) {
case PERIOD_M1: new_timeframe = PERIOD_M1; break;
case PERIOD_M5: new_timeframe = PERIOD_M1; break;
case PERIOD_M15: new_timeframe = PERIOD_M5; break;
case PERIOD_M30: new_timeframe = PERIOD_M15; break;
case PERIOD_H1: new_timeframe = PERIOD_M30; break;
case PERIOD_H4: new_timeframe = PERIOD_H1; break;
case PERIOD_D1: new_timeframe = PERIOD_H4; break;
case PERIOD_W1: new_timeframe = PERIOD_D1; break;
case PERIOD_MN1: new_timeframe = PERIOD_W1; break;
}
ChartSetSymbolPeriod(0, NULL, new_timeframe);
} else if (lparam == 'K' || lparam == 'k') {
new_timeframe = PERIOD_CURRENT;
switch (Period()) {
case PERIOD_M1: new_timeframe = PERIOD_M5; break;
case PERIOD_M5: new_timeframe = PERIOD_M15; break;
case PERIOD_M15: new_timeframe = PERIOD_M30; break;
case PERIOD_M30: new_timeframe = PERIOD_H1; break;
case PERIOD_H1: new_timeframe = PERIOD_H4; break;
case PERIOD_H4: new_timeframe = PERIOD_D1; break;
case PERIOD_D1: new_timeframe = PERIOD_W1; break;
case PERIOD_W1: new_timeframe = PERIOD_MN1; break;
case PERIOD_MN1: new_timeframe = PERIOD_MN1; break;
}
ChartSetSymbolPeriod(0, NULL, new_timeframe);
}
break;

}
}
971Trader@Live!:2014/04/16(水) 07:06:36.77 ID:jeX6jfKu
>>970
試してみたけど再現しない。
けど、どうもOnChartEventの呼び出されるタイミングが胡散臭い?

bool locked = true;
int OnInit() { EventSetMillisecondTimer(100); return INIT_SUCCEEDED; }
void OnTimer() { locked = false; }
void OnChartEvent(...) { if (locked) return; }

場当たり的だけど、↑とかしてOnInit()終了後、一定時間経つまでOnChartEvent
をスキップしてみたらどうか?
あと、ChartSetSymbolPeriodは現在と同じタイムフレームを設定してもチャートを
再描画(インジなども全てリロード)してしまう。
だから、↓時はChartSetSymbolPeriodを呼ばないようにした方がいい。
case PERIOD_M1: new_timeframe = PERIOD_M1; break;
case PERIOD_MN1: new_timeframe = PERIOD_MN1; break;
972Trader@Live!:2014/04/16(水) 15:17:20.37 ID:wR95nKhM
>>971

なるほど!!
チャート切替毎に100ms空ける作戦ですね。

void OnDeinit(const int reason) { locked = true; return; }
>>971さんのコードに追加したら周期の切替に100msかかりハングアップ
しにくくなりうまく行ったかと思ったのですが、最終的にはハングアップ
してしまいました…

なかなか難しそうです。

PERIOD_M1とPERIODMN1でチャートを切り替えないアイデアは
なるほどと思い早速導入させていただきました。

ありがとうございました。
973Trader@Live!:2014/04/16(水) 18:37:24.22 ID:aSiDd9ST
http://tomokin.web.fc2.com/mql/bandswidthlabel.mq4
これはボリバン幅を表示するインジなのですが、
これでエントリーできるボラがあるかの判定をしたいので、
この数値を足更新毎にメールで送るようにできないでしょうか?
(当方の知識不足で、SendMailで何かを入れたら、全く動かなくなってしまいます)
974Trader@Live!:2014/04/17(木) 12:59:16.32 ID:dBEepQ78
最近スプレッド縮小のせいで、以前はユロドル4桁サーバーだったのが
ほとんど5桁サーバーばっかりになって、5桁だとローソクの長さが
見ずらくて、目が痛くなる。

4桁サーバー使っている方、どこのサーバーか教えて下さい。
975Trader@Live!:2014/04/17(木) 14:35:59.81 ID:ulQtj+mJ
>>974
中東の新興業者では昔のティックバリューのままってとこあるよ。
新興でないならForex Best、Millennium Penata Futures

Forex Bestは業者サイトが飛んじゃってるけどサーバーは生きてる。
Millennium Penata Futuresはインドネシアではわりとメジャーな業者

デモサーバーを選択するとこで検索してみると出てきますので検索してみて下さい。
976Trader@Live!:2014/04/17(木) 20:21:37.86 ID:dBEepQ78
>>975
早速の返答ありがとうございます。
977973:2014/04/17(木) 20:56:32.85 ID:cWDXMRtI
閾値を超えた場合と切った場合に、
その足でメールでもいいのですが。。。
978973:2014/04/18(金) 13:32:57.14 ID:87ngdN/D
何とか自己解決
static int LastTime = 0;
int NowTime = Minute();
if(email==true && NowTime!=LastTime)SendMail("BBWidth",Band_Width);
LastTime = NowTime;
で送れるようになりました。
979973:2014/04/18(金) 13:41:03.46 ID:87ngdN/D
↑は、実際には、足確定直後ではないですが、
この誤差は実用上問題ないので、これで使います。
980Trader@Live!:2014/04/18(金) 20:36:15.27 ID:87ngdN/D
今日は相場が動かないんで考えてるんだが出来ないんで質問を。
>>978は、1分足で1分単位で送られるんだが、
これを20秒とか、30秒単位とかで送る方法ってあるのかな?
981Trader@Live!:2014/04/18(金) 22:31:44.63 ID:5D2LUO6p
sleep()
982Trader@Live!:2014/04/19(土) 14:41:02.87 ID:/XFOtezk
昨日、MT4のbuildを、500番台から625に上げたのですが、
WindowFirstVisibleBar()が0しか返って来なくなってしまいました。
他の方はどうなんでしょうか? MT4のバグ?
983Trader@Live!:2014/04/19(土) 22:27:03.58 ID:dhndwd6t
>>981
そうだね
984Trader@Live!:2014/04/19(土) 22:42:09.85 ID:+J8ACm7r
>>980
Seconds()/20 を使えばいいです。
985Trader@Live!:2014/04/20(日) 08:12:44.79 ID:SQNXEzow
>>984 おぉ。。。これでいいのかな
extern int okurujikann = 20;

static int LastTime = 0;
int NowTime = Seconds()/okurujikann;
if(email==true && NowTime!=LastTime)SendMail("BBWidth",Band_Width);
LastTime = NowTime;
986sage;:2014/04/20(日) 15:44:00.84 ID:yN7vcRF4
質問です。
Build 628になってから、
Period_Converter_Opt.mq4が使えなくなってしまいました。
メタエディターで見たところ

{
deinit();
init();
LastStartTime = Time[Bars-1];
LastEndTime = Time[0];
LastBarCount = Bars;
}

 
の部分にnot all control paths return a value
と警告がでてました。

Period_Converter_Opt.mq4をまだ使いたいんですが。
どなたか対処方法わかる方、よろしくお願いします。
987sage
すでに解決済みの話題でしたね。
解決しました。