5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【MT4/5】MetaTrader初心者専用42【ゆとり隔離スレ】

1 :Trader@Live!:2014/02/11(火) 17:48:05.50 ID:LfnS61uG
▼Q: ダウ先物が見たい
  A: Brocoが終了したので他を当ってください

▼質問するときは・・・
 ・使用しているサーバー名
 ・使用しているインジケーター名、EA名
 ・どこからダウンロードしたのか・・・などを出来るだけ記入してください。

▼めたとれなうpろだ
  ttp://u3.getuploader.com/mt
 インジケーター、EAの相談はこちらにUPしてから

▼MT4マニュアル日本語マニュアル
  ttp://jp.forex.com/jp/platform/how_to_use_metatrader_all.pdf

▼MQL言語リファレンス日本語翻訳マニュアル
  ttp://www.metasys-seeker.net/MQL4_Reference_ver1/MQL4_Reference_Contents.html

▼MetaTraderまとめWiki
  ttp://hikaku.fxtec.info/metatrader/
 少なくとも1日はあれこれイジクッテ下さい。基本的な操作方法は、数時間もいじくれば理解できます。
 ツールバーのファイルメニューからヘルプまで一通り試しましょう。
 本スレテンプレを読めば分かることは、スルーされます。

▼分からないことが出てきたら、まずググってください。
MetaTraderスレッドまとめ
 ttp://hikaku.fxtec.info/metatrader/wiki.cgi?page=MetaTrader%A5%B9%A5%EC%A5%C3%A5%C9%A4%DE%A4%C8%A4%E1
 上記各スレで分からない語句をググると、すんなり答えが見つかるかもしれません。

▼MetaTrader4の使い方解説サイトの紹介
 システムトレード研究所/MetaTrader4の使い方
 ttp://jidoubaibai.com/burogu4.html

▼他のインジケーターを試したいならここら辺りで。
 Q: 〜ってインジケーターはどこにあるの?
 A: ▼カスタムテクニカル指標配布サイト
  ttp://codebase.mql4.com/indicators
  ttp://www.forexmt4.com/_MT4_Indicators/
  ttp://www.abysse.co.jp/mt4/ 名前と画像から検索できる
  ttp://www.forex-tsd.com/ ここでググるもよし。
  ttp://www.forex-tsd.com/indicators-metatrader-4/2519-350-mt4-indicators-one-folder.html
  ttp://www.mql4.com/ でググるもよし
  ttp://www.forexmt4.com/_MT4_Experts/
  ※ C:\Program Files\MetaTrader 4\experts\indicators(←ここのフォルダに移して再起動)
一部業者が配布しているMT4と若干内部仕様の違いにより完全な互換性が取れていません。
また一部のテクニカル指標において別途includeファイルやlibraryファイルを必要とするものがあります。

▼慣れたらここでステップアップ
forex-tsd
  ttp://www.forex-tsd.com/metatrader-4/
  ttp://www.forex-tsd.com/3746-post20.html

▼メタトレーダー書籍
「FXメタトレーダー入門 最先端システムトレードソフト使いこなし術」豊嶋久道 2,940円 (税込) 2007年12月発売
 著者のサイト ttp://forex.toyolab.com/

40 :Trader@Live!:2014/02/16(日) 12:58:18.77 ID:G782arJ9
例えばMTFの移動平均で期間1にすれば?

41 :Trader@Live!:2014/02/16(日) 13:54:17.74 ID:8yop7Ojg
>>39
build600でそういうインジ作ってる人いたよ

42 :Trader@Live!:2014/02/17(月) 14:26:38.28 ID:SZWH9u3e
Build509の範囲で自前のインジやEAをやっと作れるようになった初心者です。
今後は豊嶋先生の実践プログラミングを更にしっかり読み込んで、
力を付けたいと思っていた矢先に今回の騒ぎに遭遇しました。

この先のことを考えると、実践プログラミングだけでは流れについて行けないと思い、
勉強方針に迷っています。
諸先輩、諸賢者の皆様のお考えをお聞かせいただければありがたいです。

43 :Trader@Live!:2014/02/17(月) 15:28:48.34 ID:X68c176m
>>42
流れについて行く必要性が本当にあるのかどうか?
が一番の問題じゃないかな。

44 :Trader@Live!:2014/02/17(月) 16:28:37.74 ID:HrjyEZTa
>>42
MQLは道具、手段の一つであって、目的ではないかと思います。
道具が (old) MQL4 から、 new MQL4 に変わってしまった、という状況なので、
まずは既存の作品を地道に new MQL4 で実装しなおしてはいかがでしょうか?

45 :Trader@Live!:2014/02/17(月) 18:11:29.06 ID:hZlCnEVL
実装しなおしとかアホか。
基本的に互換維持されてるのになんかわざと苦労させようとするやつが何人かいるようだなw

46 :Trader@Live!:2014/02/17(月) 18:48:16.71 ID:HrjyEZTa
実装しなおし、は少しおおげさに言い過ぎたでしょうか。
クラスばりばりのOOPで実装しなおす、という意味で言ったものではないです。

変数スコープの変化や、配列の仮引数、文字列と数値の連結などの
若干の仕様変更を理解できれば十分でしょうかね。

"init(), deinit() and start() predefined functions have remained for compatibility,"
とリファレンスにも書かれているので、旧来のイベントハンドラをあえて今後もそれを使い続けるのは少し疑問に感じます。
何個か、新イベントハンドラに書き換えて、挙動を理解するぐらいはしても損ではないのではないでしょうか。

47 :Trader@Live!:2014/02/17(月) 19:31:14.50 ID:hZlCnEVL
動いているプログラムに手を入れるのはバカのすること。

48 :Trader@Live!:2014/02/17(月) 20:51:45.29 ID:kDPQ4f/2
>>46
ビルド509でコンパイル、テストしてビルド600で運用。当分の間は互換性が保たれる。もし600で動かなくなったら、その時に修正すればいい

49 :Trader@Live!:2014/02/17(月) 20:55:10.69 ID:SZWH9u3e
42です。
43〜47の貴重なお考えありがとうございます。
大変参考になりました。
MQ社のフォーラムの記事を読み、MQ社の意図が理解出来たように思いました。
old MQL4に比べるとnew MQL4は敷居が高いようですが、これを機会に取り組んでみようと思います。
お寄せいただいたお考えやフォーラムの記事から、今後数ヶ月間の方針をとりあえず決めました。
既存のインジやEAはbuild509の環境下でデモやtesterを用いてロジックの改良を続ける。
(まだ始めて間もないので、実戦配備しているインジやEAはひとつもありません。)
一方,別のPCにnew MQL4を導入し、フォーラムの記事(http://forum.mql4.com/60555)を頼りに
new MQL4の勉強を始める。
数ヶ月もすれば、newも落ち着くと思われるので、メインPCにnewを導入しインジやEAの開発はnewを用いて行う。
この頃になれば、豊嶋先生のnewの解説本も出版されるのでは、と期待します。

今回の騒動を

50 :Trader@Live!:2014/02/17(月) 21:03:11.97 ID:SZWH9u3e
続きです。
今回の騒動を好機にするつもりです。

51 :Trader@Live!:2014/02/17(月) 21:09:26.07 ID:hZlCnEVL
>>46
> 変数スコープの変化や、配列の仮引数、文字列と数値の連結などの
仕様変更ってどういうこと?
http://forum.mql4.com/60555
には書いてないみたいだけど。strictにしなければスコープも同じだし。

52 :Trader@Live!:2014/02/17(月) 21:28:32.30 ID:erWNtrfB
すみませ〜ん どなたか天才さんいまへんか〜

SendMailでお知らせを現在行ってます。

IFで、合致したらメール送るようにしてるのですが、

IFで合致した時に、年月日時分秒 をメール文書いて送信するようにしたいのですが、

うまくいきません。なぜなのでしょうか??

↓自分でつくったやつ。

datetime time = Time[0];
このtimeをsendmailに入れるておくる。

「0」しか表示されません。 ><

53 :Trader@Live!:2014/02/17(月) 21:33:03.77 ID:X68c176m
>>52
datetime time = 999;
みたいに数値を入れたり、

int time = 888;
int 型にするとどうなる?

54 :Trader@Live!:2014/02/17(月) 21:36:50.96 ID:hZlCnEVL
>>52
とりあえず、time_tを直読みできる能力がないなら
SendMail(subject, TimeToStr(Time[0]));
くらいがええで。

55 :Trader@Live!:2014/02/17(月) 21:42:28.23 ID:erWNtrfB
53〜54 さんきゅ 試してみる!!
有難う御座います。またヨロシクおねがいします。

56 :Trader@Live!:2014/02/17(月) 22:09:57.21 ID:/S7vWPep
>>47
動いたらおしまいのプログラマは成長しないw

57 :Trader@Live!:2014/02/17(月) 22:23:46.17 ID:HrjyEZTa
>>51

> 変数スコープの変化
> 配列の仮引数
> 文字列と数値の連結などの

いずれも #property strict での変化ですので、
#property strict 前提で話をしてしまったのは不適切でした。

参考コードを貼っておきます(コメントに違いを書いてあります)
http://pastebin.com/quXRsWJ8
http://pastebin.com/UAVU8hud

過去のライブラリを build600 用に書き直していて、
上記の箇所はほぼもれなくコンパイルエラー/ワーニングになっていたので、
言及しました。

58 :Trader@Live!:2014/02/17(月) 22:31:04.12 ID:hZlCnEVL
配列は参照渡し必須ってのはMQL4でも仕様上はそうだったんじゃないか。
strictでの暗黙の型変換の警告は出て当然だろうし。
strictありなら表に書いてある通りもっと気を付けないといかんだろ。

59 :Trader@Live!:2014/02/17(月) 22:39:32.95 ID:hZlCnEVL
strictで面倒なのは、MQL4だと勝手に初期化してくれてた変数の
初期化がないことだな。まぁC++と同じなんだが、仕様上初期化
してくれるのにさらに書くのもどうかと思って書いてないところが
結構あるのがな。
あと、表でいくと問題なのはローカル定義の配列の挙動だな。
これはstrictでなくても挙動が変わってるのでこれに依存してる
ところは要注意だ。

60 :Trader@Live!:2014/02/17(月) 22:58:36.50 ID:HrjyEZTa
ご説明ありがとうございます。
変数初期化まわりのほうが気を付けないといけないですね。

#property strict つながりですが、たまたまフォーラムみてたら、
extern/input のパラメータ変数表示・設定画面で、
・#property strict かつ input → コメント表示
・#property strict ではない、または extern → 変数名表示
という現象になるいうポストがありました。

http://forum.mql4.com/60983/page6#911255

なんていうポストを見つけました。
ご参考までの共有です。(変わるのかも)

61 :Trader@Live!:2014/02/17(月) 23:21:58.29 ID:hZlCnEVL
inputとかいつのまに追加されてたんだ。
コメントが出てくるとかどうかと思うが、確かにこういうの欲しかったw

とりあえず、strictにしなければほとんど今までと同じコードでいけるん
じゃないのか?
objectの前後関係が名前でなくZORDERって新規プロパティになったのが
いやなのでいけるところまで509でいくつもりだが。

62 :Trader@Live!:2014/02/18(火) 17:10:20.23 ID:z5wBt1ZJ
>>4
今気付いたけど前スレ間違っとる

▼前スレ
【MT4/5】MetaTrader初心者専用41【ゆとり隔離スレ】
http://hayabusa3.2ch.net/test/read.cgi/livemarket2/1386557357/

63 :Trader@Live!:2014/02/18(火) 17:37:40.58 ID:+qyyqy2V
MQLで配列を引数で渡す事って、そんなにあるか?
グローバル配列にした方が楽だし効率が良いと思うんだがな。
もちろん、DLLとかに渡すのは仕方がないけど。

64 :Trader@Live!:2014/02/18(火) 19:56:38.69 ID:qbu6iwBu
別に&を付け忘れてるところに追加するだけだからあろうがなかろうが
それは問題じゃない。

65 :Trader@Live!:2014/02/18(火) 21:20:04.07 ID:PQTUtvwi
どこも弄った記憶がないんですが再起動すると、ツールバー・ステータスバー・チャートバーが消えてしまうようになりました。
再起動しても前回の設定が残るようにするにはどこで設定すればいいのですか?
教えてください。

66 :Trader@Live!:2014/02/18(火) 21:21:38.18 ID:qbu6iwBu
1度だけF11を押す。

67 :Trader@Live!:2014/02/18(火) 21:43:12.10 ID:PQTUtvwi
>>66
しょうもない質問に即答していただきありがとうございます。
オプション等探してもわからなかったので助かりました。

68 :Trader@Live!:2014/02/19(水) 00:27:19.13 ID:tCIJI68I
通貨のパラメーターを指定する箇所に NULLと Symbol() が使われてますが使い分けの意味があるのでしょうか。
よろしくお願いいたします。

69 :Trader@Live!:2014/02/19(水) 00:37:03.27 ID:rg5oCSNt
iMA()とはかNULLなら現在のチャートのシンボルが使われるのでどっちでもOK。
OrderSend()はNULLが使えないのでSymbol()なりが必要。

70 :Trader@Live!:2014/02/19(水) 00:54:23.73 ID:tCIJI68I
>>69さん
ありがとうございました。
Symbol()で統一して使うようにします。
先日テスターで円通貨はバックテストできてストレート通貨ができない症状がでたので直接通貨名を入力したらできました。
勉強不足を痛感します。

71 :Trader@Live!:2014/02/19(水) 16:11:32.98 ID:SfiSXxCf
Tickstoryの夏時間、冬時間について質問があります

Pepperstone 夏GMT3 冬GMT2
であればどのタイムシフトを選択すればよいのでしょうか?

アメリカサーバーということで EST+07 ですかね

72 :Trader@Live!:2014/02/19(水) 23:39:54.48 ID:a9IIDt+k
build600にしたらインジが反映されないんですが、なして?

73 :Trader@Live!:2014/02/20(木) 03:00:01.10 ID:d/7pjeCS
今回のアップデートは日本の業者のみならず、海外の業者も泡食ったって
話だよ。アセンダントの山中氏が言っていた。個人レベルでは、ファイルの
構成の変更はどうってことないが、New MQL4に慣れるまでは頭が痛い。

同じ山中さんの言うには、これでMetaQuote社はなかなか普及しないMT5は
諦めて、旧MT4との互換性を持たせながらも、New MT4を限りなくMT5に近づける
方針らしい。

74 :Trader@Live!:2014/02/20(木) 09:15:07.52 ID:rO6E4mXJ
そうすることによって、MT4→MT5を進めようとしているのかね。

75 :Trader@Live!:2014/02/20(木) 09:21:38.37 ID:62Eppzxw
なんでそこまでしてMT5に拘るんだろう?

76 :Trader@Live!:2014/02/20(木) 09:59:08.73 ID:oXdviXC/
MT4をMT5に近づけるより、MT5をMQL4対応にしたほうが
受け入れられると思うんだが。
仕様をMQL5に近づけたMQL4なんて発想が斜め上だろ。

77 :Trader@Live!:2014/02/20(木) 10:18:04.59 ID:d/7pjeCS
>>74,75,76
うろ覚えだが、この流れはWindows NTや2000がWindows XP→Windows8
となったのと似ているとのことだった。

78 :Trader@Live!:2014/02/20(木) 11:32:36.01 ID:ibmkpaym
>>77の言ってることは浅学のため理解できないのだが、
彼らが言ってることを読むと、柔軟性、拡張性、堅牢性などを求めているように見える。
あと、感じとしてはソフト屋としての美学(?)かなw

79 :Trader@Live!:2014/02/20(木) 15:23:01.51 ID:/SC+lngO
DLLとの配列のやり取りで、引数をあてることがありますが。
配列が壊れるようなことがありますでしょうか?

例えば以下のような場合。同じ配列aを別々の関数を使って、受け取って
再度渡すとします。
そのときに、別な配列cの値が期待する値10でなく、50で受け取るような事が
ありますでしょうか?


/////DLL////
functionA(int *in_a){
*in_a = 50;
}
functionB(int *out_a){
a = *out_a;
}
functionC(int *in_c){
*in_c = 10;
}

/////MQL////

start(){
int a[1];
int c[1];
functionA(a);
functionB(a);
functionC(c);

comment(c[0]);
}

80 :Trader@Live!:2014/02/20(木) 17:16:37.00 ID:CuSAnqiM
だからMT5は一時的にオワコンだって言ってるだろうがw
メタ社は打ち出の小槌であるマーケットを導入したかった
MT5が全く普及しないから遂にあきらめて
MT4に実装することにしただけ

81 :Trader@Live!:2014/02/20(木) 18:39:56.61 ID:Wj3bWZ1x
>>79
functionC を呼び出す前に c[0] を参照しなければ、そういうことは起こらないと思います。

82 :Trader@Live!:2014/02/20(木) 23:49:38.40 ID:cNFHHzp4
そのコードでおかしくなる理由は全くない。
問題が起きているなら最小の再現コードにしてどっかに置け。
>>81
参照したらおかしくなるとか、ありえない。

83 :Trader@Live!:2014/02/21(金) 00:32:56.96 ID:xqhWiP1E
>>80 >>81
ありがとうございます。私の勘違いでした。
申し訳ないですが、勉強になりました。

84 :Trader@Live!:2014/02/21(金) 00:47:56.13 ID:bNZbbPve
すでに >>83 で解決されてるようなので、余談です。

>>82

> 参照したらおかしくなるとか、ありえない。

build600 以前なら、 functionC 呼び出し前なら 0,
build600 以降なら
・#property strict なしなら build600 以前と同様に 0
・#property strict ありなら 初期化コードがないので不定
というようにはなりますよ。

あくまでも >>78 のコードの場合ですけどね。

85 :Trader@Live!:2014/02/21(金) 01:03:14.84 ID:xqhWiP1E
ありがとうございます。
嫌だわ。DLLへの関数が十数個ある、、。
全部チェックしないといけないのね。

修正するのは、MQL側ですよね。
もしよろしけらば、78を例にとって、修正案を教えていただけませんか。

86 :Trader@Live!:2014/02/21(金) 01:05:55.47 ID:lWzoyxes
参照って参照渡しのことを言ってたのか。
まぁそうだとして、お前、実際に試したのかよ。
DLLに渡るのは&がついてようがついてなかろうがa[0]を指すポインタだ。
だから&が無くてもDLL側で変更すれば変更されてしまうぞ。
まぁbuild6xxは使ってないからbuild600より前での話だけどな。

87 :84:2014/02/21(金) 01:11:40.01 ID:bNZbbPve
>>85
あら?自己解決されていたので、私の予想(呼び出し前の参照)は杞憂だと
思っていたのですが、そうではないですか?

DLLかどうかは関係ないですよ。
あと #property strict なのかどうかがやっぱり大事です。

#property strict では
・グローバル変数
・ローカルの string 型変数
以外暗黙初期化されなくなりました。

http://pastebin.com/TaXDVnZa

これを実行していただければわかるかと思います。

88 :Trader@Live!:2014/02/21(金) 01:15:27.48 ID:lWzoyxes
初期化の話は関係ない。
funcA()で設定してるだろ。
DLLじゃなけりゃ参照渡しにしないとそもそもコンパイル通らねーよ。

89 :84:2014/02/21(金) 01:20:15.09 ID:bNZbbPve
参照渡しのことを言ってるわけではないですよ。

> 例えば以下のような場合。同じ配列aを別々の関数を使って、受け取って
> 再度渡すとします。
> そのときに、別な配列cの値が期待する値10でなく、50で受け取るような事が
> ありますでしょうか?

という質問でした。

>> 79 のソースコードでは、
functionA で a に代入し、 fuctionB で a を参照し、 functionC で c に代入していますね。
このとき、MQL側で、 functionC を呼び出す前に c を参照したり、
functionC で c に代入する前に参照していれば、 0 や不定値になる、と言っているのです。

何か、勘違いをしていたら教えてください。

90 :Trader@Live!:2014/02/21(金) 01:21:19.85 ID:lWzoyxes
c[0]には10を入れてるだけに見えるが?

91 :Trader@Live!:2014/02/21(金) 01:23:27.96 ID:xqhWiP1E
>>87さん。

79の件は解決です。自分の勘違いでした。(600以前ですが)

600以降のバージョンについて、戦々恐々しているところだったので、、。

92 :84:2014/02/21(金) 01:25:36.71 ID:bNZbbPve
ですので、「functionC を呼び出す前に参照しない限り」と言いました。
DLL側で c[0] の値を参照している箇所がないので、
「別な配列cの値が期待する値10でなく、50で受け取る」の意味が、
MQL側で「受け取る」だと脳内補完して書きました

「functionC での代入前に参照されない限り」と書いたほうが正しかったです。
これはすみません。

93 :Trader@Live!:2014/02/21(金) 01:26:42.22 ID:lWzoyxes
お前の言っていることが理解できない。
どういうコードなら問題があると言うのかちょっと書いてみてくれ。

94 :84:2014/02/21(金) 02:34:01.39 ID:bNZbbPve
>>93
>>87 とあまり変わり映えしないですけど、
https://github.com/micclly/mt4-test-ref-before-init
に置いておきました。
わざわざ OutputDebugString は DebugView でログを一個にしたかっただけです。
zip は右下の「Download ZIP」からお願いします。

95 :Trader@Live!:2014/02/21(金) 02:54:31.74 ID:lWzoyxes
元の質問はfuncCの後に値が10でない可能性があるか?
だと思ってたんだが...
とりあえずお前の意図は理解したが、斜め上だったようだ。

96 :84:2014/02/21(金) 03:00:49.69 ID:bNZbbPve
> 元の質問はfuncCの後に値が10でない可能性があるか?
> だと思ってたんだが...

私もそのつもりでした。
ただ、 >>79 のコードはばっさりカットされた状態なので、
実装者が勘違いしてる(functionCを呼び出した後のつもりで、呼び出す前に参照してる)
可能性を一応指摘したのでした。

ですので、 >>82 の回答には異論ないです(再現コードが必要)

97 :84:2014/02/21(金) 03:04:07.33 ID:bNZbbPve
あ、だいぶ余談が過ぎましたが、
>>91 解決してよかったです。

98 :Trader@Live!:2014/02/21(金) 03:06:21.88 ID:lWzoyxes
普通、参照というとreadのことだが、readすると値が変わる、という通常
ありえないことのように読めたんだよ。まぁもうわかったとは思うが。
そんな、いくらでもあるような仮定の中から1つだけ持ち出すから話がおかしくなる。
そんなこと言い出したらfuncC呼んだあとに書き換えてたり、全然別の変数を
参照してたり、一体どうしろってんだと。

99 :Trader@Live!:2014/02/21(金) 12:08:09.80 ID:dLEAXd4v
ステップ・バイ・ステップってどういうときに使うのでしょうか?

100 :Trader@Live!:2014/02/21(金) 17:04:55.47 ID:3OLPhqNH
以前のインジを600にコピーしたら全然表示されないんですけど
コンパイルしたらopenできないってエラーがでました。

101 :Trader@Live!:2014/02/21(金) 23:21:42.05 ID:lWzoyxes
あぁ、そうですか。

102 :Trader@Live!:2014/02/22(土) 00:10:07.85 ID:jkFytsA8
初歩的な質問で申し訳ないんですけど、チケット番号ってどういう割り当て方をしてるんでしょうか?
int型で取得できますけど、世界中の全オーダーに1個ずつ割り振っているとしたらあっという間にオーバーフローするような気がするんですが。

103 :Trader@Live!:2014/02/22(土) 00:15:57.56 ID:6rGY5sqL
業者次第。

104 :Trader@Live!:2014/02/22(土) 00:36:55.17 ID:jkFytsA8
>>103
ありがとうございます。
ということはオーバーフロー対策も業者によって違うという事ですか。
んー実際、どうやって対策してるんでしょうね。

105 :Trader@Live!:2014/02/22(土) 00:45:51.73 ID:6rGY5sqL
オーバーフローなんてするとは思えないが。
ラップラウンドもそうそう起きないだろう。

106 :Trader@Live!:2014/02/22(土) 15:11:04.35 ID:ouWrvcTu
OrdersTotal()の返り値についての質問です。

1. OrdersTotal() = アカウント内の全てのポジション数

と、認識していたのですが、build600以降、

2. OrdersTotal() = 同一EAの全てのポジション数

に変わっていませんか?

土日で新規ポジが取れず、実験できないので、
既にこの変化について経験のある方、よろしくお願いします。

107 :Trader@Live!:2014/02/22(土) 19:50:01.04 ID:d57EtkTr
ストキャスのラインクロスでメール送信できるやつを
探してるんですが、誰か教えて下さい

108 :Trader@Live!:2014/02/22(土) 20:16:43.99 ID:L3HWc4Bi
教えてください!!!!!!!!!!!!!!!!
RSIのインジケーターで
レベルを最初から付加するのは
#property indicator_level1 ○○
ですが、
こちらに後で指定するのでなく、最初から『色』を指定するにはどーしたらいいのでしょうか?

109 :Trader@Live!:2014/02/22(土) 21:50:56.47 ID:AyK7GAwo
>>108
レベルの色は、インジケータのプロパティで「Levels」タブから変えられます。

110 :Trader@Live!:2014/02/22(土) 21:57:41.94 ID:AyK7GAwo
>>108
ごめんなさい、 >>109 は無視してください。
#property indicator_levelcolor で実現できます。

111 :Trader@Live!:2014/02/22(土) 22:32:44.75 ID:L3HWc4Bi
110 ほんとだ ありがと。けど以下のように複数してある場合で、1つづつ色を指定するにはどーしたらいいの?

#property indicator_level1 30
#property indicator_level2 40
#property indicator_level3 50

112 :Trader@Live!:2014/02/22(土) 22:35:08.45 ID:L3HWc4Bi
連投でスマソ 
ちなみに 以下はRSIの左上に表示されるラベル部分なんだけど
short_name="RSI("+RSIPeriod+")";
IndicatorShortName(short_name);
SetIndexLabel(0,short_name);

このコードで、どこの箇所で
左上に表示される RSI(X) XX.XXXX

『XX.XXXX』
を指定してるの?

113 :Trader@Live!:2014/02/22(土) 23:05:10.14 ID:6rGY5sqL
>>112
それはそのインジのindex bufferの[0]に値があれば表示される。
フォーマットは変更できないと思う。

114 :Trader@Live!:2014/02/22(土) 23:05:50.27 ID:6rGY5sqL
小数点以下の桁数はIndicatorDigits()で指定可能かな。

115 :Trader@Live!:2014/02/22(土) 23:11:07.17 ID:AyK7GAwo
>>111
#property indicator_levelcolor を使った場合でも、
SetLevelStyle を使った場合でも、レベルごとに色を変えることはできないですね。
どうしても色を変えたいなら、
OBJ_HLINE を使うしかないんじゃないでしょうか。

>>112
XX.XXXX はインジケータの現在値がバッファの順(0-7)で表示されます。
RSI なら1個ですが、 MACD なら MACD と Signal で2個ですね。

MT4が勝手に表示しているので、どこかで指定しているようなものではないです。
表示しないようにすることはできないと思います。

116 :Trader@Live!:2014/02/22(土) 23:42:28.56 ID:6rGY5sqL
レベルごとに色変えられるようになってるのかも。
http://docs.mql4.com/en/constants/indicatorconstants/customindicatorproperties
なんかドキュメントが更新されまくってるな...

117 :Trader@Live!:2014/02/22(土) 23:52:12.77 ID:AyK7GAwo
>>116
#property indicator_levelcolorN のようにした場合ですが、
・build 509 の場合: コンパイルエラー
・build 600 以降の場合: コンパイルエラーにならないが、Nが最大のものが使われるっぽい
という挙動をするので、レベルごとに色は変えられないと思われます。

118 :Trader@Live!:2014/02/23(日) 00:27:46.28 ID:6ovOz1Ni
すみません、 >>117 の訂正です。

#property indicator_levelcolorN のようにした場合ですが、
・build 509 の場合: 設定が反映されない
・build 600 以降の場合: Nが最大のものが使われるっぽい

でした。
(試しながら書いてたのですが、なぜか勘違いしてしまいました。。。)

119 :Trader@Live!:2014/02/23(日) 00:55:21.12 ID:TGF0LQzk
IndicatorSetInteger(INDICATOR_LEVELWIDTH)はlevelは関係なく、
最後に呼んだ太さになるな。
しかし、これGUIがまだ対応してないってことなんかな。

120 :Trader@Live!:2014/02/23(日) 01:11:50.67 ID:G0KOLWEH
MT5 + MQL5 なら
IndicatorSetInteger(INDICATOR_LEVELCOLOR, ...
IndicatorSetInteger(INDICATOR_LEVELSTYLE, ...
IndicatorSetInteger(INDICATOR_LEVELWIDTH, ...
いずれもそれぞれの線ごとに指定できるよ

newMQL4 に移植したらできなくなってて驚いた
まぁそのうち直ると思うけど

ちなみに
IndicatorSetDouble(INDICATOR_LEVELVALUE, ...
は動くみたい

121 :Trader@Live!:2014/02/23(日) 01:19:22.93 ID:6ovOz1Ni
>>117
再度、訂正です。

#property indicator_levelcolorN のようにした場合ですが、
・build 509 の場合: 設定が反映されない
・build 600 以降の場合: Nに関係なく一番最後に指定したものが反映される

です。

>>119,120
INDICATOR_LEVELCOLOR はそもそも IndicatorSetInteger で設定がきかない?(build610)ですし、
なんかバグってるぽいですね。。。
MQに試しに報告してみます。

122 :Trader@Live!:2014/02/23(日) 03:12:13.10 ID:JmEemB53
ver5以前の古い.mq4ファイルをver6.1?(最新の)metaeditor.exeで
コンパイルさせてVer6以上で使用することはできないのでしょうか?
(最新でコンパイルすると動かないものが多数あります、
すでに古いものでコンパイルした.exeを入れると作動しますが
旧式のmetaeditorが消えてしまい困っています)

123 :Trader@Live!:2014/02/23(日) 09:20:57.69 ID:qcGai436
MT4のログで

expertのlogがいつのまにか蓄積され、HDを圧迫してます。

出力しないようにすることはできるのでしょうか?

124 :Trader@Live!:2014/02/23(日) 10:06:55.62 ID:k2SCXBMX
>>123
毎日 自動で削除するようなプログラムを動かせばいい

125 :Trader@Live!:2014/02/23(日) 10:25:04.81 ID:qcGai436
あー わかれねぇ!!!

RSIで以下に合致したら矢印をスペアレート ウィンドウに表示したいのに

double r1 = iRSI(NULL,0,rsiperiod,PRICE_CLOSE,i);
double r2 = iRSI(NULL,0,rsiperiod,PRICE_CLOSE,i+1);
if (r1>30 && r2<30)
・・・

この続きをどー書いていいかわからん。
どなたか教えてください。

126 :Trader@Live!:2014/02/24(月) 05:31:51.03 ID:ZEdJl+6h
とてもじゃないが混乱が終わってからでないとbuild600以降は使えん・・・

127 :Trader@Live!:2014/02/24(月) 09:16:38.65 ID:/N72CTP6
混乱は、自分自身の頭の中で終息させなきゃ、ダメでしょ。

128 :Trader@Live!:2014/02/24(月) 09:35:06.25 ID:9lYEGNCZ
>>126
今のところBuild509で使うのが、正解らしいな。
山中康司氏もセミナーでそれを薦めていた。
おいらは同じFX会社の509と600を同一パソコンに同居させて使っている。

129 :Trader@Live!:2014/02/24(月) 20:04:06.33 ID:ud9r81IZ
>>122の方も同様なことを書かれていますが、
Build509からアップデートされたBuild600で
正常に動いているインジがあります。

新metaeditorで開いて、何もせずコンパイルするだけで、
動作しなくなります。
dllを呼び出すタイプのインジなんですが・・・
dllが読み込まれてないような感じです。

何もせずコンパイルしただけで動作しなくなるのは、なんででしょうか?
もちろんコンパイルエラーはゼロです。

130 :Trader@Live!:2014/02/24(月) 20:32:25.05 ID:fJ3kJlQT
>>129
DLL呼び出しのあるインジケータの場合、
・文字列を引数に渡してると out (Unicode文字列に変わったため)
・ArrayCopyRates を使ってると out (構造体の構造が変わったため)
です。

これらを build 600 以降の MetaEditor でコンパイルしたものを動かすには、
ソースコードを修正するほかないです。

build 509 以前でコンパイルされたものが動作するのは、
旧 ex4 ファイルが動作するようにそれなりの互換性があるためです。

131 :Trader@Live!:2014/02/24(月) 21:45:08.54 ID:ud9r81IZ
>>130
ArrayCopyRatesは使ってないですけど、
dllに文字列は渡してますね。
そのへんなのかな?

コンパイルエラーが出ないから、
何がダメなんだか、さっぱりわかりませんw

132 :Trader@Live!:2014/02/24(月) 22:06:57.38 ID:fJ3kJlQT
>>131
そのへんですね。

引数に渡すなら、 StringToCharArray を使うと解決できます。
http://pastebin.com/fwzPGWXH
を参考にしてみてくださいませ。

もし困ってるDLL呼び出しが Win32API なら、 W 系に変えるだけでいけるはずです。

133 :Trader@Live!:2014/02/24(月) 23:05:09.59 ID:fJ3kJlQT
>>106
すでにもう実験済みだと思いますけど、
すくなくとも build 610 ではEA、通貨関係なく全ポジション数が返ってきました。

134 :Trader@Live!:2014/02/24(月) 23:50:15.05 ID:ud9r81IZ
>>132
ShellExecuteWで解決かと思ったら、
この関数からexeに、文字列を渡すので解決せずw

exeに渡す文字列は、仕様でシフトJISである必要があり、
ShellExecuteAのまま、教えていただいた
http://pastebin.com/fwzPGWXH
で、
StringToCharArrayで引数を変換しました。
しかし、まだ正常に動作せず^^;

ただ、不具合の意味がわかったので、なんとかなると思います。
いろいろありがとうございました。

135 :Trader@Live!:2014/02/25(火) 00:01:21.14 ID:fJ3kJlQT
>>134
一応念のためのお知らせですが、 build 610 より前 (buid 600, 604など)には、
StringToCharArray にバグがあり、 build 610 で修正されています。
すでに build 610 でしたら、的外れです。すみません。

136 :Trader@Live!:2014/02/25(火) 00:07:41.86 ID:ud9r81IZ
>>135
build 604です。
アップデートしてみます。

137 :Trader@Live!:2014/02/25(火) 00:56:48.51 ID:kh8hWgjb
>>135
build 610で正常に動作しました。全面解決!w
いろいろありがとうございました。

138 :Trader@Live!:2014/02/25(火) 01:57:48.91 ID:dvRI61E9
過去n本の中で抜けてる足があるかのチェックのとき
Time[n]+n*Period()=Time[0] なら抜けなしですけど、
間に土日を跨ぐと駄目なので、どうすれば良いですか。

139 :Trader@Live!:2014/02/25(火) 08:29:52.81 ID:pFgCI6KN
>>138
日足未満のタイムフレームという前提ですが、
TimeDayOfWeek(Time[0]) == 1 && (TimeDayOfWeek(Time[n]) != TimeDayOfWeek(Time[0]))
が成立するときはスキップ、とするとどうでしょうか。
(週をまたいで、テクニカルの計算をしない、ということになりますが)

140 :Trader@Live!:2014/02/25(火) 12:35:35.31 ID:2icTjsqQ
build 610 で動くMACD2はないでしょうか・・・
0エラー0ウオーニングなのに動きません・・・

299 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)