【MT4/5】MetaTrader初心者専用24【ゆとり隔離スレ】
3 初心者Q&A
Q.土日は動かないのですか?
A.ほとんどの業者は休みです。
サーバーに接続だけ出来る業者もありますが、更新はされません。
Q.TSDって何を見ればいいの?
A.まずはここから登録して下さい。
http://www.forex-tsd.com/register.php 後はあちこち見れば勉強になります。
Q.10分足とか他の時間足を表示したい。
A.「MT4 10分足」でググって下さい。URLは控えときます。
Q.付属しているMACDをライン表示にしたい。
A.MetaEditorでMACD.mq4を開いて、「DRAW_HISTOGRAM」で検索、
DRAW_HISTOGRAMを「DRAW_LINE」に変更、念のため別名保存してコンパイルする。
Q.RCIのインディケーターはどこにあるの?
A.「SpearmanRankCorr mq4」で検索するよろし。
Q.指定した値になったら、アラート鳴らしたいんだけど?
A.メニューの表示-ターミナルでアラーム設定のタブがありますので、
そこで設定できます。
Q.同じインディケーターを同じウインドウに表示したい。
A.共存させたいインディケーターを同じウインドウにドラッグ&ドロップ、
設定を変えて表示させる。
Q.ほかの業者なんかで取引をしているのですが、チャートだけMT4使うことできる?
A.ほとんどがそんな使い方でしたが、最近乗り換える人が増えているようです。
Q.MetaEditorでコンパイルするやり方がわかりません
A.MetaEditorのツールバーのcompileで出来る
面倒だったらファイルを保存して、MT4を再起動
4 Q ティックチャートを表示する方法を教えてください。 A.気配値表示の所にティックチャートタブをクリック Q.ボリンジャーバンドの三本線を五本線にしたい。 A.標準偏差の設定値を変えたボリンジャーバンドをもうひとつ描画 A.標準偏差の設定値を1にして、Levels に ±2,±3,を設定してもよし。 Q.過去のチャートを見ようとしたら、すぐに現在の位置に戻ってしまうのですが A.ツールバーのAuto Scrollボタンをoffにする。 Q.使わないインジケーターを削除するにはどうすればいいの A.使わないインジケーターにカーソルを合わせ右クリック→削除 Q.インジケーターのラインの色、太さを変えたいんだけど A.MetaEditorで該当するインジケーターを開きます。 #propertyで検索(初めの方に記述してありますのですぐ見つかります。) 色を変更したい場合(例) #property indicator_color1 Red のRedを変えたい色に書き換える(Blue,Green,Yellowなど) #property indicator_color1 Yellow(←変更後) 色の指定の頭文字は大文字で記述します。Blue→○、blue→× 太さ、幅を変更したい(例) #property indicator_width1 1 の線の太さ1を変えたい太さに変更する。(1〜5までの整数) #property indicator_width1 3(←変更後) 変更後、保存してコンパイルまたは再起動する。 #property indicator_colorや #property indicator_widthが無い場合、 SetIndexStyleで個別に指定されていると思います。 SetIndexStyleで検索します。 (例)SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1, Red); 上記の「1」が太さ、Redが色です。 太さを3、色を青に変更する場合は (例)SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 3, Blue);となります。 Q.「チャートを右クリ>定型チャート>定型として保存」としても、保存できないけど。 A.@上の方法で保存できない場合。名前をつけて「定型として保存」するときに、 保存先をMT4があるフォルダより上の階層(デスクトップ以外)を選択して保存する。 A保存したファイルをMT4直下のtemplatesフォルダにコピペすればOK Bこれで、チャートを右クリ>定型チャートで好みのチャートを一発で呼び出せる。
5 Q.〜ってインジケーターはどこにあるの?
A.
ttp://www.abysse.co.jp/mt4/ 名前と画像から検索できる
http://www.forex-tsd.com/ ここでググるもよし。
http://www.mql4.com/ でググるもよし
人気どころは「外為男」内でググったほうが早いかも。(URLは控える)
Q.このスレでよく出てくるインジケーター
A.・Fibopiv ・FerruFx_Multi ・nonlagdot ・#MTF_StochasticBar
・ZigZag Pointer ・Traders Dynamic Index
・Period_Converter_Opt ・Clock ・Grid Builder.mq4
以上に「mq4」を加え検索。
Q.日本時間を表示させたい
A.JPN_Time_Sub mq4 または CIDP_JPY_Time.mq4 または JPN_Time_SubZero :-)
Q.ゆとりスレなのに・・・
A.「MetaTraderのための」ゆとりスレです。
「パソコン初心者」「2ちゃんねる初心者」のスレではありません。
Q.Vista、Windows7で動かないのですが?
A.以下を試してみてください。(本スレテンプレより)
1 [コンピュータ]を右クリック。[プロパティ]を選択
2 [システムの詳細設定]を選択
3 [詳細設定]タブをクリック
4 [パフォーマンス]の[設定]をクリック
5 [データ実行防止]タブをクリック
6 「重要なWindowsプログラムおよびサービスについてのみ有効にする」をオンにする
7 okをクリック
8 OSを再起動
※ Vista の場合、 C:\Program Files 以外の場所にインストールするのが便利です。
Q.「YM」や「NK」ってなに?
A.「先物 シンボル 一覧」でググる。
シンボル一覧の代わり
http://web.archive.org/web/20080125182852/ http://www.globalprice-inc.com/ja/d001-9.html Q.チャートを重ね合わせて反転表示にしたいんだけど。
A.オーバーレイチャートスクリプト Ver.1.10 で検索
Q.日足のMAが何か変なんだけど・・・
A.サーバーにより週に日足が5本のところと6本のところがあります。
日足が週に5本のところを表示させるのが、手っ取り早いです。
週5本のとこMeta Quote、FXDD、Alpari、WHC
週6本のとこ、ODL
Q.再インストールする場合、どのフォルダをバックアップしておけば良いの?
A.experts(中のindicatorsフォルダも)、history(人によっては結構容量あるかも)、
config、templates、symbolsets、profilesのフォルダをバックアップ。
これで大体もとの環境を作ることが出来る。
7 ▼各デモサーバのIP
すでに変更されているものもあります。補完をお願いします。
MetaQuotes-Demo demo.metaquotes.net:443
ActivTrades 87.119.205.71:443
Alpari-Demo 217.74.44.32
212.65.93.12
Alpari-UK 84.45.118.35:443
AVA FX 16.93.169.220:443 (要AVAからMT4 DL)
Broco(Water House Capital) 216.93.180.133:443
EuroOrient 208.96.16.237
FIBO Group 84.19.184.154:443
Fortune-capital
FXBEST 213.152.151.220:2000
FXDirectDealer mts06.fxdd.com:443
FX-Invest 98.173.4.28:443
GrandCapital LLC 208.101.37.188:443
Gimex-NEXTT 212.12.60.156:443
GCI 213.232.103.144
InterbankFX-Demo 66.114.120.22:443
LiteForex 209.160.72.90:443
MIG-Demo 66.235.184.206:443
MoneyRain-Server 80.94.84.43
MWHeadway.com 209.61.194.19:443
Northfinance demo.fxteam.ru:443
NWBroker 193.125.192.190:443
ODL-MT4 Demo - ODL Securities 62.189.82.162:443
One World Capital 216.93.181.201:443
Orion-DEMO 66.36.240.247:443
STS Finance 87.120.42.14:443
Tradeco 209.61.194.31:443
Ukrsotsban 212.109.44.23:443
Varchev Finance Ltd 213.16.33.131:443
Velosity4x.com 207.228.252.28:443
207.228.252.27:443
Wega Trade 62.149.27.61:443
WSD Financial (NZ) Limited 210.55.141.74:443
Windsor Brokers-Demo 217.27.32.243:443
XTrade 217.8.185.218:443
X-Traders demo.xtb.pl
ここがよくまとまっています (でも、古いです...)
ttp://d.hatena.ne.jp/fai_fx/20090723/1248448353
8 ▼サーバータイム別のIP 補完ヨロ。※サマータイムを採用している業者もあるので、要注意です。 [GMT+0] Admiral Markets Ltd. 69.64.43.37:443 FastBrokersFX 66.151.194.152 Interbank FX 66.114.120.22:443 North Finance demo.fxteam.ru:443 208.96.16.237 Velocity4x ODL 62.189.82.162:443 (繋がらないので注意) 213.38.148.25:443 (繋がらないので注意) [GMT+1] MetaQuotes demo.metaquotes.net:443 Alpari 217.74.44.32 Alpari-UK 212.187.233.32 Alpari-US 208.122.38.251:443 Broco(Water House Capital) 216.93.180.133:443 (繋がらないので注意) FIBO Group 217.16.27.150:443 MIG 80.83.53.150:443 Century Intervest 202.157.169.103:443 SpotTrader 75.127.250.108:443 X-Trade Brokers 217.8.185.218:443 [GMT+2] FXDirectDealer mts06.fxdd.com:443 Forex Gen 70.84.233.90:443 EuroForex Development SNC Investments
9 ▼サーバの設定の仕方 MetaTrader 4のメニューバーで ツール → オプション → サーバ サーバ(S)のところに上記のIPアドレスを入れる。 ファイル → デモ口座の申請 「貴社からのニュースレター受取りに同意します」にチェック、 Scanボタンを押してアクセス状態を確認する。 アクセスでき、Ping返答時間の短いものを選ぶ。 もう一度ログインし直す。 他にも業者がありますので探してみましょう。 ▼サーバのIPを調べる方法 MT4のフォルダーをクリックして、configという名のフォルダーを開く。 C:\Program Files\MetaTrader 4\config 使用しているデモサーバーの名前がついたファイルを 右クリックして、「プログラムから開く」でメモ帳を選択。 多くの文字が文字化けしているが、3行目に数字の羅列がある。 この数字がデモサーバのIPとなる。 テンプレートに記載されていないIPアドレス、 またテンプレートには記載されているがテンプレートのIPアドレスが古いと思われる場合、 スレに報告してくれるとテンプレートが充実します。
テンプレ以上。
おつっしたー
バックテストを5分足や1分足でやっても1時間足と ほぼ変わらない取引回数だったので、取引期間を みたら指定は2010.01-2010.12までなのに 2010年の1月しか行ってませんでした。日足で バックテストしても1月から4月までしか行いません 何が原因でしょうか?ご教授お願いします
設定した資産が溶けたんだろ
>>14 なるほど!
ところで資産の設定ってなにもしなければいくらなんですか?
どなたか教えて下さい。 MT4を以前何度かインストールしたことがあります。 一度全部消去して再インストールしようとして、MT4のアイコンをクリックすると 「terminal.exeを探しています」という表示が出て、その先進めません。 解決方法わかる方いますか?
>>15 Expert PropertiesボタンのTestingタブに設定されてる金額
前日の値を計算に使うカスタムインジケータ(たとえば平均足)をEAでiCustomからコールして使おうとすると、
返ってくる値がカスタムインジケータをチャートに表示した時とは違う値になる。
たぶん、EAだと各バーに対してカスタムインジケータをコールしてるから、
IndicatorCountedが返す値がBar-1になって、計算に必要なデータ量が足りないのが問題だと思うんだけど、
これを解説してくれている日本語のページってありますか。
IndicatorCountedを使わず毎回すべてのバーを再計算すれば問題ないんだけど、時間がかかりすぎますよね。
英語だとここが詳しかったんだけど、この問題ってかなり基本的っぽいから日本語のリソースもあれば知りたいです。
http://articles.mql4.com/202
トレンドライン自分で引いて、そこに触れたらあら^とで知らせてくれる mq4ってありますでしょうか? トレンドラインを勝手に引いて教えてくれるソフトはありますが
>>16 MT4のアイコンを右クリックしてのプロパティを開いて
リンク先を再インストールした先にすればOK
MT5って仕様が変わるとか言われていますが、 今までのインジとかEAとかは利用できるのでしょうか。
>>19 特に意識したことがない。
EAの売買タイミングとインジのサインが食い違う!って話は大概リペイントが原因
だったりするんだが、そういう話じゃなくて?
スリッページ0で注文したときは すべったら約定しないのか? いくらすべっても約定するのか? どちらでしょうか
バックテストでポン円で行ったとき以下のエラーが出ます 4017のエラーの意味はDLLの呼び出しが許可されないだそうですが 意味がわかりません。どうすれば解決するのでしょうか?ドル円では 正常にバックテストできました 2011.02.11 21:18:35 2010.12.30 23:49 Breakout@ GBPJPY,M5: OrderSend error 4107
>>25 4107 は Invalid price. では?
>>23 レスありがとう。
リペイントってのが何かわからないんだけど、(再描画タイミングとか?)
こちらの状況は、デフォルトで入っているHeiken Ashiを以下の感じでEAの中で呼ぶと同時にチャートも表示させると、始値がチャートと出力結果で違う。
double line1 = iCustom(Symbol(), PERIOD_D1, "Heiken Ashi",2,1);
double line2 = iCustom(Symbol(), PERIOD_D1, "Heiken Ashi",3,1);
Alert("line1 is ", line1, "line2 is ", line2);
平均足だと始値の定義が前日の平均足の始値と終値の平均なので、
当日の値を計算するためには前日の平均足の始値が必要になって、
前日の始値にはさらにその前の・・・というようなインジケータの時に起こる現象だと思う。
憶測とこのページの内容からすると、
http://articles.mql4.com/202 チャートとして出すときは最古のBarから計算できるので問題ないんだけど、
EAでiCustom経由で呼び出すときは、各Barに対してStartメソッドが実行されるので、
たとえば100本目のBarを計算するときにはIndicatorCountedが99を返すことによって
最後2本のBarだけしか計算に使われずに違う値が出てしまうのかなと思ってる。
リペイント系ってのは、一度シグナルが出てるにも関わらず、 そのシグナルを無かった事にして再度新しくシグナルが出る事をいう つまり後出しジャンケン的なインジケータという意味なんじゃないかな?
>>29 やっぱり無理ですか。どうもです。
となると後10年くらいMT4のままいてもらいたいのですが、
どこもMT5になってしまうんでしょうか。
トレンドライン自分で引いて、そこに触れたらあら^とで知らせてくれる mq4ってありますでしょうか? トレンドラインを勝手に引いて教えてくれるソフトはありますが
>>27 初歩的な質問ですけど
Heiken Ashi ってどこから手に入れられるんですか?
>>31 チンブレイクアウトって名前のインジがあったような
>>27 そんなバカな!?と思って慌てて試してみたんだけど、インジとEA内のiCustomで
ちゃんと同じ値が返ってくるぞ?どこか別の場所にバグがある可能性はない?
>>28 そそ、そういう意味で使った。
おお、色々反応ありがとう。
>>32 FXDD版のMeta trader使ってるけど、初めから入ってたよ。
>>34 追試ありがとう。確認してみます。
>>34 Heiken Ashiで確認しました。EAとチャート、ちゃんと同一の値出てきました。
混乱させてしまってごめんなさい。
もともと二つの期間の平均足の陰線陽線を数えて表示するカスタムインジケータを作ってたんですが、
このインジケータをEAで動かすと陰陽ともに0になってしまうという状態でした。
平均足はより簡単に状態を説明するために例として出したんですが、確認不十分でした。
結果として、前日の値を使うことが問題ではなく、各Barでの陰陽を保存する配列がEAでは初期化されてしまう、みたいな理由だと思ってます。
配列をstartメソッド外のクラス変数にする、staticにするなどしてみたのですが同じ状態でした。
今はEAでiCustomからHeiken Ashiを呼ぶだけにし、陰陽のカウントはEA内で行うことで目的が達成できました。
この板のおかげです。ありがとうございました。
>>26 どうゆう意味なんでしょうか?
無効の価格と翻訳されますが・・・
>>21 レスありがとうございました。
プロパティを開くとリンク先が
"C:\Program Files (x86)\ODL MetaTrader 4\terminal.exe"
ってありました。これじゃダメなんですかね・・?
>>37 価格がおかしいというエラーだな
プログラムの凡ミスの場合が多い
41 :
Trader@Live! :2011/02/12(土) 10:48:25 ID:4vCYMk8M
>>40 注文発注のプログラムで
損切と利益確定の数字を変数でおいたらエラーが出るように
なることがわかりました。
でも、変数に置き換えたらだめなんですかね?最適化がしたいのですが・・・
桁数がわるい場合は、ノーマライズすればOK
43 :
Trader@Live! :2011/02/12(土) 11:22:14 ID:zEOvcbVx
チャートウィンドウの右端に数字を表示するにはどうプログラミングすれば良いの? 例えば 1÷2という計算をさせてチャートウィンドウに50%という数字を表示する
チャートに価格表示してるインジケータを探すといい
45 :
43 :2011/02/12(土) 12:57:36 ID:FY0MiJIR
自分でプログラミングした物を使いたいので 簡単なオブジェクトの作り方教えて下さい
47 :
Trader@Live! :2011/02/12(土) 13:27:06 ID:FY0MiJIR
>>46 そのサイト分かりにくいので分かりやすく教えて下さい
>>47 チャートに価格表示してるインジケータ に分かりやすい実例があるよ。
49 :
Trader@Live! :2011/02/12(土) 14:12:22 ID:zEOvcbVx
#property indicator_chart_window int init(){ return(0); } int deinit(){ ObjectDelete("obj"); return(0); } int start(){ //オブジェクトを作成 ObjectCreate("obj", OBJ_LABEL, 0, 0, 0); //テキストとフォント設定 ObjectSetText("obj", "テスト", 12, "MS 明朝", White); } // 表示座標を設定 ObjectSet("obj", OBJPROP_XDISTANCE, 1000); // 左から1000ピクセル ObjectSet("obj", OBJPROP_YDISTANCE, 40); // 上から40ピクセル ちょっと作ってみたんですけど ObjectSet("obj", OBJPROP_XDISTANCE, 1); // 左から1000ピクセル ObjectSet("obj", OBJPROP_YDISTANCE, 1); // 上から40ピクセル 表示座標を設定する時に一々↑見たいに設定せずに上右端に表示したり下左端に表示する方法ってないんですか?
50 :
Trader@Live! :2011/02/12(土) 14:25:04 ID:zEOvcbVx
自己解決しました
ボケら〜っと考えてて気付いたんだけど、プログラムからテキストラベル貼る時、Y座標の 表示領域(表示されてる範囲)取れなくて不便じゃね? WindowHandle()でチャートウィンドウのハンドルを得て、Win32APIのGetClientRect()で 表示領域自体は取れるんだけど、サブウィンドウの占有領域を取る方法がない。 GetWindow()で取れるかしら?と思ったがダメで、ChildWindowFromPoint()で座標指定 したらどうだ?と思ったがWindowHandle()と同じ値しか返ってこんorz 誰だこの仕様考えた奴!('A`)
53 :
Trader@Live! :2011/02/12(土) 14:45:32 ID:zEOvcbVx
>>51 ありがとうございます。出来ました
それで
>>43 の例を書いてみたんですけど表示がPriceになってしまいます…どうしたら良いんですか?
あと%で表示する方法もわかりません
#property indicator_chart_window
int WhatCorner=1;
double x = 2;
double y = 1;
double n = 0;
int init(){
return(0);
}
int deinit()
{
ObjectDelete("obj");
return(0);
}
//指標処理関数
int start(){
n = (y/x);
string Price = b;
//オブジェクトを作成
ObjectCreate("obj", OBJ_LABEL, 0, 0, 0);
//テキストとフォント設定
ObjectSetText("obj", "Price", 12, "MS 明朝", White);
// 表示座標を設定
ObjectSet("obj", OBJPROP_CORNER,WhatCorner);
ObjectSet("obj", OBJPROP_XDISTANCE, 1);
ObjectSet("obj", OBJPROP_YDISTANCE, 1);
return(0);
}
54 :
Trader@Live! :2011/02/12(土) 14:49:01 ID:zEOvcbVx
間違えた。直しても変わらなかったけど n = (y/x); string Price = n;
こんな風に治す。 string Price = DoubleToStr(n,3)+"%"; ObjectSetText("obj", Price, 12, "MS 明朝", White);
""が要らない。 "Price"<文字列 Price <文字列変数
57 :
Trader@Live! :2011/02/12(土) 15:01:17 ID:zEOvcbVx
出来ました ありがとうございました
>>42 ノーマライズはどう行えばいいでしょうか?
立て続けに質問で申し訳ないのですが バックテストのセッティング画面の通過ペアと Expert properties→Initial depositの通貨と どうちがうんでしょうか?
自作インジを初めて作ろうと思って試し単純なもので試したのですが、 EAからiCustomで参照しても0が返ってきてしまいます。 #property indicator_buffers 1 int a; int init() { IndicatorShortName("a"); SetIndexBuffer(0,a); return(0); } int start() { a=1; return(0); } 根本的に間違ってるんでしょうか? 自作インジ専用のわかりやすいサイトありませんか? ちなみにEAのほうは Print(iCustom(NULL,0,"a",0,1)); で確認しています。
SetIndexBufferの返り値を調べてみる。 多分、失敗してる。
>>58 NormalizeDouble(値,Digits)
#property indicator_buffers 1 int a[];//配列に int init() { IndicatorShortName("a"); SetIndexBuffer(0,a); return(0); } int start() { a[0]=1;//配列に return(0); }
みなさんレスありがとうございます
>>61 SetIndexBufferの返り値の調べ方がわかりません。教えてください。
外部EAで参照すると0が返ってくるのでとまどっています
>>63 そのとおりにやってみたのですが、やはり0が返ってきます・・・
>>64 a[0]=1;//配列に
↓
a[1]=1;//配列に
これはどう?
>>65 やっぱりだめです・・・
ちなみにPrint()の結果は
2010.01.04 03:00 a EURUSD,H1: 0
2010.01.04 03:00 a EURUSD,H1: removed
2010.01.04 03:00 a EURUSD,H1: loaded successfully
こんな感じの繰り返しです。
2番目のremovedってのが怪しいですかね?
>>66 先頭に1行追加
#property indicator_chart_window
>>66 ヘルプくらい読みましょう。
これが原因かどうかは判りませんが、SetIndexBuffer()の2番目の引数は
double型の配列です。
>>63 >>67 >>68 合わせ技で解決しました。
どれ一つ欠如してもうまくいかないことがわかりました。
ありがとうございました。勉強になりました。
ヘルプ見る習慣をつけようにしようと思います。
バックテストのvisual modeでは買いと売りの矢印が チャートに描写されるのですが実運用ではそういったのを見たことないのですが 実運用でもチャートに矢印が表示されるものなんでしょうか?
>>70 OrderSend 関数の引数を調べるといい。
色を指定するとチャート上に残る。
>>71 dクスです
ほかにもEAでつかってるボリバンや
ATRなどの指標もvisual mode同様表示できますかね?
>>60 > Print(iCustom(NULL,0,"a",0,1));
Print(iCustom(NULL,0,"a",0,0));
っと、0にしてみる。
それ以前に変数aは配列でないとダメじゃね?
76 :
Trader@Live! :2011/02/13(日) 23:21:11 ID:+/+lVftB
初心者なのですが、 200ma平均線より高値の位置で、陰線が連続で出て陽線が出たときにL注文し、 決済を陰線が出た時にする。 このバックテストを行いたいのですがやはり無理ですか? とりあえず色々グ具ってみたのですが、プログラムしなきゃ無理そうですよね。
alpariの2010年のデータ(EURUSDとUSDJPY)がほしいんですが、 入手する方法はご存知ですか? 2001〜2009年データはゲット出来たんですが。 皆さん、過去数年分のバックテストではどうしてますか?
>>77 ありがとうございます。
しかし、頭悪すぎて日本語にしても理解できません。
さっきから小一時間見てました」がもはやなにをどうしていいか」わかりませんww
日本語なら全部日本語にしてくれwwwwwwwww
バックテストってcontrol pointsでやっちゃ駄目なんですか? 精度が高い奴だと60時間とかかかる・。
if(CurrentPosition==-1){ if( OrdersTotal()< 1 && H< Close[1] && Pcnt< 1 && EntryL> Ask && Tstart<= Hour() && Hour()<= Tend) {Pcnt= 1; Ticket= OrderSend( Symbol(), OP_BUY, 1, Ask, 3, Ask-(1000*Point), Ask+(600*Point), "L", 0, 0, Blue); OrderSelect( Ticket, SELECT_BY_TICKET); } if( OrdersTotal()< 1 && L> Close[1] && Pcnt<1 && EntryS< Bid && Tstart<= Hour() && Hour() <= Tend) {Pcnt= 1; Ticket= OrderSend(Symbol(), OP_SELL, 1, Bid, 3, Bid+(1000*Point), Bid-(600*Point), "S",0 ,0 ,Red); OrderSelect( Ticket, SELECT_BY_TICKET); } } こんな感じでオーダーを出しています BTで大方オーダーが通るのですが、ごくたまに以下の無効なストップ値のエラーがでてしまいます 2008.06.11 00:00 EAname EURUSD,M15: OrderSend error 130 2008.06.11 00:00 EAname EURUSD,M15: close #757 sell 1.00 EURUSD at 1.54790 sl: 1.55790 tp: 1.54190 at price 1.54693 なんかストップがエントリーレートと同じになっちゃっていてなぜこうなるのか全く分かりません どうしたらよいのでしょうか? ちなみにあまり関係ないかもしれませんが、 H=ボックス高値、L=ボックス安値、Pcnt=1日のエントリー総数、EntryL=Lエントリーレート上限、EntryS=Sエントリーレート下限 Tstart=エントリー待ち開始時刻 Tend=エントリー待ち終了時刻 です 長くなっちゃいましてすみません、よろしくお願いします。
>>83 ごめんなさい勘違いでした
クローズのエラーなのにオープンのところずっと見てました・・・
>>83 引用した部分ではないところに問題があるんでは?
>>85 すみません、勘違いでした;
この後にクローズ直後にドテンするようにしてあるんですが、どうもそこらへんでエラーがでるみたいです。
意図しないところで、利ぐったり損切りしたりするんで、ちょっと戸惑ってます
すこしゆっくり考えてみたいと思います。ありがとうございます
MT4でDMIを表示してるんですが 証券会社のDMIと比べて全然数値が違います。 数種類インジゲータを試したのですが、どれも駄目です。 多少の違いならわかるのですが、全然違うので困りってます。 なぜ、数値が違うのでしょうか?
>>88 計算式が違うから。
日足なら、1日の区切りが違うから。
M15でevery tickでBTしたら、こんなようなエラーが大量に出たんだけど(log数百MB) TestGenerator: unmatched data error (volume limit 354 at 2011.02.04 22:45 exceeded) History Centerで見ると、同時刻のM15の出来高は354 M1の出来高の合計が354を超えてて、データがアンマッチってこと? どうでもいい出来高のチェックを省く方法か、無駄な大量のlogを出さない方法とか無い?
>>91 1分足のデータから作り直し
詳しくはぐぐれ
period_converterか!
>>87 自己解決しましたので、一応簡単に報告させていただきます。
ボックスの終了時刻(Extern string CloseTime)を
Time1=StrToTime(TimeToStr(date, TIME_DATE)+" "+CloseTime);
↓
bar2=iBarShift(NULL,PERIOD_M15,Time2);
↓ bar1などは略
L=Low[iLowest(NULL,PERIOD_M15,MODE_LOW,bar1-bar2+1,bar2)];
こういう流れで、ボックスの高値、安値を得ていたのですが、
クローズの条件にこの高値と安値を使用していたために、
00:00を過ぎると未来の時間がTime1に返ってきてしまい、その瞬間決済されたりエラーが出るという現象でした。
解決法としては、ボックス関係の式をif(A==0){・・・A=1;}の中に入れて
適当な位置に、if(TimeCurrent()%86400==ボックス終了時刻にあった秒){・・・A=0;}
を書いて1日に1度だけボックスが更新されるようにしました。
考えてくださった方ありがとうございました。
95 :
Trader@Live! :2011/02/16(水) 00:03:53 ID:14ZBxps5
BrocoのMT4の配布ページは無くなってしまったのですか?
ZigZag Pointer.mq4のシグナルが出現したときに1回音を鳴らしたいんですが どうすればいいのか教えていただけないでしょうか、お願いいたします。
>>96 シグナルをセットしてるとこへ
PlaySound("alert.wav"); とか加える
現在のレバレッジってどういう、計算で出せば良いんでしょうか? 複数通貨のEAを複数を使っていると、現在のレバレッジが把握できなくて……
>>97 ありがとう。
drawing settingsとindicator buffers mappingのところにそれぞれ記述してみたけど
起動時に鳴っただけでダメだった。
式の中に加えなきゃいけないのか・・・難しいorz
100 :
Trader@Live! :2011/02/16(水) 13:38:13 ID:+QKRCkgG
broco 日経平均の昼休みのローソク足がぬけている
>>99 ほれ、ちゃんと解析するのメンドイから、やっつけだけど
int start()
{
static datetime mtime;←足す
static int oneshot;←足す
・
・
・
ExtMapBuffer[shift]=val;←これを見つけて以下を足す
if (oneshot != 1)
{
PlaySound("alert");
oneshot=1;
}
・
・
・
ExtMapBuffer2[shift]=val;←これを見つけて以下を足す
if (oneshot != 1)
{
PlaySound("alert");
oneshot=1;
}
>>101 スマソ、抜けてた
int start()
{
static datetime mtime;←足す
static int oneshot;←足す
・
・
・
double curlow,curhigh,lasthigh,lastlow;←これの後に以下を足す
if (Time[1]==mtime)
{
oneshot=0;
}
・
・
・
ExtMapBuffer[shift]=val;←これを見つけて以下を足す
if (oneshot != 1)
{
PlaySound("alert");
oneshot=1;
}
・
・
・
ExtMapBuffer2[shift]=val;←これを見つけて以下を足す
if (oneshot != 1)
{
PlaySound("alert");
oneshot=1;
}
103 :
Trader@Live! :2011/02/16(水) 16:20:32 ID:AvR79e9C
double ma = iMA(NULL.0.MAPeriod.0.MODE_SMA.PRICE_CLOSE.i); Compile error になるのでどこがいけないのか教えてください
ピリオド . をカンマ , にする
106 :
Trader@Live! :2011/02/16(水) 18:23:39 ID:AvR79e9C
どこのカンマをピリオドにかえたらいいのでしょうか 初心者なのでわからない事が多いので申し訳ないのですが よろしくお願いします
>>101-102 うう、わざわざありがとう。本当に申し訳ない。起動時に音はなるんだがやっぱり矢印のときは鳴らない
static int oneshot;を int oneshot;に変えると今度はポンポンなにかに合わせてるかのように頻繁に鳴る
(ロウソクの足かと思ったけどそうじゃないときにも鳴ったりする、あと起動時に7連チャンぐらい鳴る)
>>107 ふはは、スマソ
適当にぱぱっと書いたから(汗
ティック毎にポンポン鳴ってるのを止めるために
バー完成後、一発だけ鳴るようにしたつもりだった
どうも本体のロジックと合ってないみたいね
zigzagってなにげにスゲーと思ったら、超後出しだったw
乗りかかった船で、ほい これでいけるはず int start() { static datetime mtime;←足す static int oneshot;←足す ・ ・ ・ double curlow,curhigh,lasthigh,lastlow;←これの後に以下を足す if (Time[1] != mtime) { oneshot=0; } mtime=Time[1]; ・ ・ ・ 最後の } の手前に以下を足す if (oneshot == 0 && ExtMapBuffer[0] > 0) { PlaySound("alrt"); oneshot=1; } if (oneshot == 0 && ExtMapBuffer2[0] > 0) { PlaySound("alrt"); oneshot=1; }
zigzagはリアルタイムで天底がどんどん更新されるから釣られる… まあ動きをとりあえず検知するのならいいかもしれない、 super signalのalram付きのやつでも代用できるのでは
>>109 鳴りました!!!
ありがとうございます、凄い感謝してます。
本当にありがとうございました。
サイトを見ながらプログラム書いてみたのですがBKしてもトレード数が0になります ブレイクしたらストップ25利確50となると思うのですが 何が足りないのかも分からなくて困ってます(´・ω・`) お暇な方、何がダメなのか教えていただけないでしょうか・・ //Variables extern double Lots=1.0; extern int BreakPeriod = 10; extern int ExitTime = 10; extern int Slippage=3; extern int StopLoss=25; datetime timeprev=0; int init() { return(0); } int deinit() { return(0); } int start() { double max = High[iHighest(NULL,0,MODE_HIGH,BreakPeriod, 1)]; if(max <= High[0] && OrdersTotal() < 1){ OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask-StopLoss*Point, 50, NULL, 0, 0, Blue); } double min = Low[iLowest(NULL,PERIOD_H1,MODE_LOW,BreakPeriod,1)]; if(Low[0] <= min && OrdersTotal() < 1){ OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, Bid+StopLoss*Point, 50, NULL, 0, 0, Red); } return(0); }
>>113 コード自体は動いてるよ、たぶんなんかエラー出てるはず
ログを見るべし
返信ありがとうございます 2011.02.17 13:51:38 TestGenerator: unmatched data error (high value 1.3046 at 2010.05.10 10:30 and price 1.3047 mismatched) 2011.02.17 13:51:38 TestGenerator: unmatched data error (volume limit 1142 at 2010.05.10 18:00 exceeded) 2011.02.17 13:51:38 TestGenerator: unmatched data error (low value 1.2822 at 2010.05.10 18:00 is not reached from the least timeframe, low price 1.2823 mismatches) 2011.02.17 13:51:38 Braekout02 inputs: Lots=1; BreakPeriod=10; ExitTime=10; Slippage=3; StopLoss=25; 2011.02.17 13:51:43 2010.01.19 15:17 Braekout02 EURUSD,H1: OrderSend error 130 ・・以降、↑と同じくずっとerror130 操作履歴のところを下のほうからさかのぼってみたのですが こういう感じでした 意味不明な事を書いてたらすみません・・
>>115 error130の原因
利確のとこ 50 じゃなくて Ask+50.0*Point にしなきゃだめよ
unmatched data error のほうは、ヒストリカルデータの不整合
直し方はぐぐってちょ
まるで取引がないのはerror130のほう
>>116 ありがとうございました
原因分かってよかったです
ありがとうございました。
ああ、それと金額部分は Ask とか直指定するんじゃなくて NormalizeDouble( Ask,Digits) ってしとかないと、時々エラーで通らない事があるよん
聖杯みっけたのになんてこった! 俺プログラム全く分からんからバックテストしようがない。 チャートのSS画像イラストレーターに貼って、ちまちま青四角と赤四角作ってバックテストするわw
>>119 聖杯で稼いだ金でプログラマを雇って、EAを作ってもらえ。
>>119 絶対バックテストなんかするな。楽しい夢が台無しだぞ。
チェリーピッキングでいいんだ、夢は大事にしろよ。
>>118 NormalizeしてるEAあるけど、そういうエラーあるの?
処理負担になるから全部消したんだけど
昔そういう事例があったのは事実。 でもそれは特殊だから気にする必要は無い。
安心した 5桁ブローカー登場で、double型の精度上げたということかな 現Verでも小数点5桁以下くらいから、値の正確性が怪しくなるが double型の比較をNormalizeDouble使ってない、 double型 x int型の演算とか平気でやってるEA多いのに、ビックリする 作者の意図なのか、直していいのか判断つかん
大半は知識が無いだけだよw
>>123 う〜ん、ブローカーによってMT4のバージョンが違うのかもしらんが
うちが使ってるとこだと、エラーログを見たときに
桁数が長くなって蹴られてるとこがポツポツ有ったから
ノーマライズしたらピタっと収まったよ
>>127 ちなみに、ノーマライズせずにAskを直接ぶち込んでたら
エラーログにこういうのがポツポツ残ってた、桁数に注目
invalid price 1.36575000 for OrderSend function
MT4のバージョンは229
まあ必要があるから存在してるわけで保険だと思って使っといたほうがいいかと
>>125 >double型 x int型の演算とか平気でやってるEA多いのに、ビックリする
やるだろ普通に
Ask+50*Pointとかやっちゃってるんだけど… まずいの?
特に問題は無い 自動でキャストしてくれていると思っている
自動キャストしてくれない場合があるので、意識してないとハマルことがあるね
どんな場合だよ。キャストしないでどうやって計算してると思ってるの
double a= 1 / 2 がゼロになるとかかな キャストはされてるわけだけど、ハマッタ
>>137 C言語系だと普通なんだろうね
おれ、C使いじゃないから狐につままれたようだったよ
VBだとしっかり0.5になるから
MT4海外のやつだと日本のものとチャートの形が微妙に違うんですけど 日本のそこら辺の業者とと同じMT4のロウソク足をする方法はございませんか? 教えてください
>>141 メニューバーにあるロウソク足のボタンをぽちっとな
>>142 ありがとうございます
そうじゃなくて4時間足や、1時間足の形が日本の業者と髭の形など微妙に違うじゃないですか
足が一本多いとか少ないとかなんかききますが、そのことです
自分で好きに足を作ればいい。
未だにドテンする事に恐怖を感じる。 ドテンしてたら・・・。 PIVOTに弾かれてるのを見ながらもエントリー出来ず。 今週調子良いのに、俺の糞野郎
2つのテクニカルチャート(RSIと移動平均)の値が両方とも設定値にきたら アラートでお知らせしてくれるインジケーターは存在しないんでしょうか?
ローソク足が更新される時間を変える事はできますか? 例えば30分足を一分早く表示したりとかです。 よろしくお願いします
>>147 29分足なら、オフラインチャートの1分足にperiod_converterあてればできると思うけど、
30分おきに1分づつずれてきちゃうね。
>>148 レスありがとうございます。そうですね
やはりサーバーが更新する時間をずらすのは難しいのでしょうかね
brocoのデモ口座を使っています 過去のチャートを見ていると、抜けている箇所があるのですが、これはデモだからですか? それとも、何か操作をすれば抜けているデータを取得できますか?
MT4海外のやつだと日本のものとチャートの形が微妙に違うんですけど 日本のそこら辺の業者とと同じMT4のロウソク足をする方法はございませんか? 教えてください
>>151 日本はGMT+9だからな。GMT+9の業者じゃないとH4以上はちょっと違う形になるのは
あたりまえ。MT4はGMT設定できないから足を再構成するしかなく簡単な方法はないな。
それより日本の業者のを見たくないのはなんで?
オフラインチャートを使えば、4時間足の4時間の区切りをずらす事もできるけれど、力技だね。。
>>152 ありがとうございます、
日本の業者だと入金したり月に一度売買しなくてはならないですよね?
簡単に使える業者ってあるんでしょうか?
>>154 デモ口座は、14日間有効です
と書いてありますが、MT4はずっと使えるんでしょうか?
>>157 ありがとうございます
今使ってるmt4はアンインストールした方がいいのでしょうか?
それとも2つ使うことが可能なのでしょうか?
>>158 今後も使い続けるのならアンインストールの必要性はありません、
デモ口座を再度申請すればいいですよ。
ファイル→デモ口座の申請で申請して下さい。
複数のMT4を同時に使う事は出来ますよ。
>>159 ありがとうございます
2つ使いたかったのでありがたいです!
14日ごとに申請し直すわけですね、
やってみます!
MODE_STOPLEVELって、その時点での価格とsl, tpの距離 例えばBUYなら OrderSend(symbol, OP_BUY, lot, Ask, slip, Ask- stop*Point, Ask+stop*Point); がsl, tpの最小値ってこと? MODE_STOPLEVEL = 0の業者の場合、どうなるの?
>>162 その場合はslとtpはbidから計算しないとな
>>162 あなたの例で言うと、Bid-stop*PointのstopがMODE_STOPLEVEL以上じゃないと約定されない。
MODE_STOPLEVEL=0の業者は経験がないんで分かりません。やってみて
thx BUYの場合は sl = Bid-stop*Point tp = Bid+stop*Point が最小値ってことか MODE_STOPLEVEL = 0のとこでやってみたら、 カウントダウンなのでOrderModifyでsl=Bid, tp=Bidで通って、その瞬間にclose 口座履歴ではsl tpの両方が同じ値で光ってて、コメント欄は[sl]で残った
FXDDのオフラインチャート1分足からperiod_converer使って15分足を作り BTをおこなったら、はじめのほうだけ TestGenerator: unmatched data error (volume limit 910 at 2011.02.08 21:45 exceeded) こんなエラーがでまくります BT自体は正常にできているのですが、なんか気持ちが悪いので原因を教えていただけますでしょうか?
167 :
Trader@Live! :2011/02/21(月) 18:27:17.76 ID:FNKOp63v
>>166 データに不整合がある。つまりちゃんとデータが作れてない。
正しく作成されたデータなら、そのエラーは出ない。
↑のほうにやり方が書いてあった気がするよ。
>>167 上のほうに同じような質問がありました、ありがとうございました
月足のオシレーターを判断基準にして、短期でのポジションの取り方に偏りを入れようと思うんだけど、 これってカーブフィッティングになるのかなぁ? フィルタリングがカーブフィッティングになるのかどうかの判断てどうしてます?
フォワードで判断。
Lしたバーの安値を割ったらロスカット&ドテンSってどうやったらいいですか?
亀レス >>前スレ517 > 「Period_Converter_Opt.mq4」 > というインジを見つけました。 > それでMT4に加えたのですが、8時間足で画面が固定してしまいます。 これのバージョンアップ版なら追従して動いたよ。 ただ、何かの条件が加わると動かなくなる様。
>>171 int Ticket;
if(エントリー条件){
Ticket = OrderSend( 略 );}
if(Bid > Low[iBarShift(NULL, 0, OrderOpenTime())] && OrderType() == OP_BUY){
OrderSelect(Ticket, SELECT_BY_POS);
OrderClose(OrderTicket(), OrderLots(),Bid,3,Green);
Ordersend(売り注文内容);
}
※Ticketは任意
これいいんじゃね?
おれ素人なんでどこか間違ってたらフォローお願いします。
あ、Bid < Low[ 〜 だった。不等号が逆だ
>>173 >>174 >if(Bid < Low[iBarShift(NULL, 0, OrderOpenTime())] && OrderType() == OP_BUY){
ありがとです。
できれば、このあたりの解説をもう少しお願いします。
>>175 日本語訳:
条件1:Bidが今のポジションが約定した足の安値未満になった
条件2:今のポジションが買いポジである
これが同時に満たされたときに次の行動をとれ
>>176 >条件1:Bidが今のポジションが約定した足の安値未満になった
ここの部分がわからんかったです。
今のポジションが約定した足の探し方がこうなってるのね。
勉強になります。
ありがとう。
metatraderからuser32.dllのSendInput()を使おうとする時ってどう書いたらいいの?
「口座履歴」のコメント欄に、 tp, slに加えてcompleteとかtp/aという表示があるのですが、 これは一体どんな意味でしょうか?
EA動作中なのに平日昼でも突然、デモ口座無効になるんだけど 検知してメールするEA作れない? とりあえず分かっているのは scriptなら口座無効後でも動作可能 IsConnected() = false IsDemo() = false を返す 口座無効後はEAが動かない(startは勿論、initも呼ばれない) scriptでwhileとSleep()で回して、 IsConnected() = false IsDemo() = false を検知したらメールていう方法は可能と思うけど EAで実現したい (profile起動すれば勝手に動くから)
>>129 > やるだろ普通に
プログラミング的にはバグの温床だよ、それ。
,一-、 / ̄ l | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ■■-っ < んなーこたーない ´∀`/ \__________ __/|Y/\. Ё|__ | / | | У.. |
最近のヤツらはコンパイラ信用しすぎ
double d = 1 / 2 * 1.0; double d = 1.0 * (1 / 2); 結果 d = 0
>>185 これってうっかりやらかしてしまうよね
どうキャストされるか詳しく解説してるサイトしってたら教えてー
> double d = 1 / 2 * 1.0; これが0になるか0.5になるかは言語の仕様による。ってのはプログラマの 常識でしょ。それをバグの温床だとかコンパイラ信用しすぎとか、初心者 じゃあるまいし。あれ?ここ初心者スレだっけ。
>>187 まあ、演算毎にキャストされるということみたいだ
c#とかだと次の演算を見越してキャストされてるけどね
暗黙の型変換に頼ってると、ハマルね
リファレンスに書いてあるしサイト探すほどの内容じゃないだろ
>>189 MQL使いがプロのプログラマである確立は、低かろうよ
>>190 >リファレンスに書いてあるしサイト探すほどの内容じゃないだろ
「c#とか」をこっそり勉強してる奴が何ほざいてる。
うん?、おれ趣味プログラマだからw
またCで荒れてんのかよw
metatraderからsendinputを使うときの書き方を教えてー(^^ゞ
>>195 sendinput(イベントの数、イベント構造体へのポインタ、構造体のサイズ)
MQLからは普通には無理じゃね?
>>195 #import "user32.dll"
int SendInput(int nInputs, int &pInputs[], int cbSize);
#import
#define INPUT_MOUSE 0
#define MOUSEEVENTF_MOVED 1
#define MOUSEEVENTF_ABSOLUTE 0x8000
int pInputs[] = { INPUT_MOUSE, 0xFFFF, 0xFFFF, 0, 0x8001, 0, 0};
SendInput(1, pInputs, 28);
超初歩的な質問で申し訳御座いません。 MT4でチャートのみ、使用したい場合、FXPRO等の業者と口座開設を しなくてはならないのですか?
デモ口座で十分なのでは?
★教えて君五大要素★ 1 読まない (文盲) 2 調べない (能なし) 3 試さない (発想力欠如のアホ) 4 理解力が足りない (馬鹿) 5 人を利用することしか頭にない (死ね) YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね / \ 【探した?】 NO → なら、ねぇよ \ NO → 死ね
>>199 レスありがとうございます。
度々すいません。
デモ口座なら、業者に口座を開かずにダウンロードするだけでチャートだけ使用できるのでしょうか?
ローソク足なんかの値動きも、リアルタイムで動きますか?
デモ口座を業者に開けばチャートでも、仮想売買でも、EAを動かすこともできます。
ゴミ書かせてもらう スマソ
>>183 Algol系言語、特にAlgol-WからAdaへの系譜が、ストロングタイプ(強い型)型言語になった理由を知らないのかな?
その影響を受けて、K&R CからANSI Cで言語仕様がどう変わったか知らんのかな?
判りやすく言おう。ANSI Cのキャストを知らんの?
そう、ANSI Cではキャストによる明示的な型変換に、仕様が変わったんだよ。
何故そうなったか、考えてみなw
ちなみに言語処理系(コンパイラ)側の都合では無いよ。
>>203 その影響を受けて、MQL4からMQL5で言語仕様がどう変わったか知らんのかな?
判りやすく言おう。MQL5のキャストを知らんの?
>>203 高説はありがたく受け取るとして
double a と int b の掛け算はMQL4でどう書くの?
double temp=b;
double result=a*temp;
こう?
double result=a*(b*1.0);
こうかな?
double result=a*(double)b;
じゃないよね
>>207 double result = a * b;
>>196 >>197 ありがとー(*_*)
家かえったら試してみるよ。
INPUT の配列をどうすればいいのかとんと見当つかなかった。
確かにゴミだったなw
>>210 あぁ、ゴミさ。MQL4にキャストは無く、暗黙の型変換だけだからな。
朝9:00にL、 利食い設定+50pips 損切り設定−30pips とかってバックテストやりたいんだけどできる?
>>213 やり方、おせ〜てください(´・ω・`)
>>214 if(TimeCurrent()%86400==32400){
OrderSend( あとはぐぐれ );}
あと、使ってるサーバーによって時間が違うからな
>>214 215のはBTでは動くだろうけど、
本番では使い物にならないから気をつけてね
その条件だと、7:00:00ぴったりにtickがないと動かないから
Time[0]と最初のtickでトリガかければええよん
>>208 ありがと。
普通はそう書きますよね。でもそう書くと
「暗黙の型変換なんかするんじゃねぇ!バグの温床だろが!ヾ(*`Д´*)ノ」
って怖いお兄さんに叱られるんですよ。
double result=a*(double)b; これがエラーにならないほうが嵌りそう。
>>211 >あぁ、ゴミさ。MQL4にキャストは無く、
>あぁ、ゴミさ。MQL4にキャストは無く、
>あぁ、ゴミさ。MQL4にキャストは無く、
よく見れば、お前は粗大ゴミだなw
#property copyright "googolyenfx"
#property link "
http://googolyenfx.blog18.fc2.com/ "
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_width1 3
#property indicator_color1 Blue
extern int OfDays = 7;
extern int Wingdings = 244;
extern color Clr = Blue;
double NR[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
SetIndexBuffer(0, NR);
SetIndexLabel(0,"NarrowRange");
SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID, indicator_width1, Clr);
SetIndexArrow(0, Wingdings);
return (0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return (0);
}
//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i; int limit = Bars - IndicatorCounted() - 1; for (i = 1; i < limit; i++) { NR[i] = EMPTY_VALUE; if (isNarrowRange(OfDays, i) == true) { NR[i] = High[i] + 5*Point; } } return (0); } bool isNarrowRange(int ofdays, int shift) { double range; double narrow = EMPTY_VALUE; int end = shift + ofdays; int index = -1; for (int i = shift; i < end; i++) { if (Bars < i) { break; } range = High[i] - Low[i]; if (Period() == PERIOD_D1 && TimeDayOfWeek(Time[i]) == 0) { continue; } if (range <= narrow) { index = i; narrow = range; } } if (shift == index) { return (true); } else { return (false); } } //+------------------------------------------------------------------+ 連投すいません。 このインジケーターをわかりやすく解説してくれませんか? int start()以降ほとんどわかりません。
何が知りたいのかな?プログラムの行をすべて解説じゃないよね。 どういう目的のインジかはNR7とかNarrow rangeでぐぐればいいと思うけど。 何のために何が知りたいのか具体的に書かないと、適切なレスは貰えない と思う。
つーかブログ主に聞けよw
226 :
Trader@Live! :2011/02/25(金) 00:01:42.33 ID:QZjAFerp
午前7時から午前9時までの始値、終値、高値、安値を取得するには どうプログラミングすれば良いんでしょうか?教えてください
>>224 言葉足らず申し訳ない。
インジケーターの目的や意味はわかるよ。
初心者なんで勉強してます。
変数が多すぎて頭が混乱してきた こんなの当たり前なのか?
NR[i] = EMPTY_VALUEあたりから大まかな日本語訳にしてほしいです。
EMPTY_VALUEって調べたけど、
カラ値を設定する。カラ値は描かれず、またデータウィンドウに値が表示されない。
とのことだけど、それをする意味がわからんです。
bool isNarrowRange(int ofdays, int shift)ってのは作者が作った関数?
それがtrueを返したらNR[i] = High[i] + 5*Pointを実行するあたりまでは5割ぐらいまでわかる。
それより+ 5*Pointってどっから出てきた。
(´・ω・`) つーか今の俺にはハードルが高すぎたか・・・
>>226 7時から9時の2時間?
7、8,9時の足3時間分?
どっちにしても、最初の足の始値、最後の足の終値
全部の足の高値のうち一番高いものを選ぶ
全部の足の安値のうち一番低いものを選ぶ
がんがれ
ロジック自体を質問して聞いたところで他に応用できん、というかロジックこそは自分で理解し構築するもの。 ただ、NR[i]のところはロジックじゃないので、まぁ調べりゃわかるんだけどね。 上の方で SetIndexBuffer(0,NR) 〜とかしてる部分があるが、これはもう決まり文句、呪文と言ってよい。 詳しくは自分で調べてくれ。 早い話が、矢印を表示したいのだが、その表示する位置で、横方向は i で示され、縦方向はNR[i]に格納されるところに矢印を表示する。 よって、演算自体には表示的意味しかない。ローソク足等の高値よりどれくらい上に矢印表示したいかってだけだ。
230 :
Trader@Live! :2011/02/25(金) 00:44:56.71 ID:t6iIHQXM
231 :
Trader@Live! :2011/02/25(金) 00:53:18.43 ID:e5WOxDKn
新PCでBROCOのサーバー設定しても、反応ないんだけど 旧PCでは使えてるんですが、サーバーとかかわりました?? 216.93.180.133:443 であってる?
>>229 NR[i]は配列でしょ。
SetIndexBuffer(0,NR)はバッファを割り当てたってことだよね。
> 早い話が、矢印を表示したいのだが、その表示する位置で、横方向は i で示され、縦方向はNR[i]に格納されるところに矢印を表示する。
> よって、演算自体には表示的意味しかない。ローソク足等の高値よりどれくらい上に矢印表示したいかってだけだ。
わかったようなわからないようなw
もう少し考えてみる。
>232 配列だが?バッファ割り当ててるが? それがどういう意味をもつかは調べてくれと。 で、これは決まりごとだから呪文のようなもんだと言っている。 チャート上に矢印や線(これをオブジェクトという)を描く方法のひとつの方法として、このような手続きがある。
234 :
Trader@Live! :2011/02/25(金) 01:17:09.13 ID:t6iIHQXM
>>228 extern string Begin = "07:00";
extern string End = "09:00";
int NumberOfDays = 5; //キャンドルの数
//処理関数
for(int i=0; i<NumberOfDays; i++){
double dt = TimeCurrent() - 86400*i;
//datetimeタイプに変換
datetime BeginTime = StrToTime(TimeToStr(dt, TIME_DATE)+" "+Begin);
datetime EndTime = StrToTime(TimeToStr(dt, TIME_DATE)+" "+End);
//チャートの位置
int BeginShift = iBarShift(NULL, 0, BeginTime);
int EndShift = iBarShift(NULL, 0, EndTime);
//初値、終値
double Open = Open[BeginShift];
double Close = Close[EndShift];
//高値、安値
double High = High[iHighest(NULL, 0, MODE_HIGH, BeginShift-EndShift, EndShift)];
double Low = Low[iLowest(NULL, 0, MODE_LOW, BeginShift-EndShift, EndShift)];
色々と省略してるけど処理関数はこんな感じので良いんですか?
Alpari-UKのデモサーバのIP教えて。
>>7 のは不通だった。
あと、MT5のIPを詳しく書いてるサイトがあったら教えて。
すみませんご教授おねがいいたします。 for(N = limit; 0 <= N; N--) { if(High[N]>H_Highest && H_Highest!=0) H_Bar=Bars; if(High[N]>=High[N+1]) { H_Highest=High[N]; H_Lowest=Low[N+1]; } if(Low[N] < H_Lowest && H_Highest!=0) { H_pos=(Bars-H_Bar); H_Highest=0; ExtMapBuffer1[N+H_pos]=High[N+H_pos];}} 高値更新後に1つ前の安値を下回ったら高値に矢印を出したいです。 高値更新したバーの数から、安値を下回ったバーの数を引き算して矢印の位置を決めようと思っているのですが 更新していなくてもバーの数(H_Bar)が更新されていってしまいます。 なにかよい方法はありませんでしょうか? よろしくお願いいたします。
OrderClose(OrderTicket(), OrderLots(), Low[1]-1, 3, Green); 1本前の足の安値を割ったら手仕舞いって、単純にこれでおk?
238 :
Trader@Live! :2011/02/25(金) 11:49:42.44 ID:OEtGQfCj
ある商材手法の糞っぷりを確認するためにEA化してBTしたいのですが、 日本時間7時(夏時間は6時)の始値で成行買いしてTP10、SL30で放置。 誰かコーディングしてくれませんか?
>>238 なるほど。今度、売り出す商材はそれなんですねw
300円。それぐらいの価値だな
241 :
180 :2011/02/25(金) 16:27:36.07 ID:1Vv1c1JT
本日FIGとVantageでデモ口座死亡 こんなscriptとEAを両方動かしてたけど、メールもPrintもアラートも一切なし 口座死亡した瞬間にEAは停止しそうだなとは思っていたけど、scriptも止まるのか スレッドが停止するんかな インジならMT4本体のスレッドだけど、Sleepが使えないし なんか方法ないだろうか? bool notice = false; int start() { while (true) { if (!notice && !IsConnected() && !IsDemo()) { notice = true; SendMail(); Print(); Alert(); MessageBox(); break; } Sleep(10000); } }
>>242 >>180 >>scriptなら口座無効後でも動作可能
>>IsConnected() = false
>>IsDemo() = false
>>を返す
245 :
Trader@Live! :2011/02/26(土) 10:23:29.74 ID:640UfD1a
MT4を違うパソコンで表示させたくて、フォルダの中身丸々コピーして移したのですが 新しいパソコンでは初期画面が表示されてしまいます。 コピーするファイルは「MetaTrader 4」だけではだめなのでしょうか? よろしくお願いします。
バージョンアップでいきなりbuild388とか来たんだが何が変わったんだろう バージョン番号上がりすぎ
こんにちは。 MT4のバックテストについて教えて頂きたいことがあります。 Strategy testの方法はググって調べましたが、皆様の力を借りないと 分からないところがあります。 Expert Advisorを選択する箇所でデフォルトで選択できるのが、 MACD Sample とMoving Averageの二つでしたが、そこに自分で ダウンロードしてきたインジを選択出来るようにしてバックテストをしてみましたが 結果がなにも表示されません。 インジをModify expertしないと取引しないのでしょうか? 色々とダウンロードしてきたインジをテストしたいので方法を教えてください。 (上記の問題を解決する為に、分かりやすいサイトでも結構です) 長文ですいません。宜しくおねがいします。
インジじゃ売買できんよ そのインジを使ってオーダーを送るプログラムを作成しなきゃ
>>248 教えてくださってありがとう。
インジそのままではテストできないんですね。
オーダーを送るプログラムを作成するには何から
はじめればいいでしょうか?
どこか参考になるサイトがありましたら教えて下さい。
宜しくお願いします。
>>249 ブログラミングの知識はどの程度?
>>250 既存のサンプルプログラムをコピペしたり、数値を変えたりするだけで
いいのかと、簡単に考えておりました。
プログラミングの知識は今のところゼロです。
宜しくお願いします。
単純にインジの値で売買するなら iCustom、Ordersend、OrderClose、if この4つの関数だけでできるから、ググってやってみろ
>>197 できましたわー。
なるほどと感心したと同時にプログラムで飯食おうなんて思わなくてよかったと再認識しました。
めんどくさいわw
>>253 後は、セブンインベスターズだと知識がなくてもEA作れる。
他にeaジェネレーターでググる。
ベクターにもシェアであるよ。
ブローカーによっては使えんらしいけど。
EAつくる君なんて名前のがあるね。 あとFXDDに口座開設したら使えるよってのと 海外ならシェアでMQL5対応のもある。
257 :
Trader@Live! :2011/02/27(日) 01:58:09.86 ID:rGCBbfCP
セパレートウインドウにオブジェクトを作るプログラミングを教えて下さい
>>257 ObjectCreateのwindow引数で指定
259 :
Trader@Live! :2011/02/27(日) 02:15:42.51 ID:rGCBbfCP
260 :
Trader@Live! :2011/02/27(日) 09:26:22.11 ID:/a9XfVgU
ブロコはサーバーIP以前と変わってるんですかね? 216.93.180.133:443 だと繋がらないんですが・・・
262 :
Trader@Live! :2011/02/27(日) 15:20:22.46 ID:/a9XfVgU
263 :
Trader@Live! :2011/02/28(月) 12:16:47.70 ID:eL/9bXYw
ある資料をもとにEAを作成してみて、 バックテストを行なったのですが結果やグラフが 表示されないのですがなぜかわかりません よければ考えられる節があれば教えてくれませんか?
バックテストデータが無いとか
265 :
Trader@Live! :2011/02/28(月) 12:43:15.59 ID:eL/9bXYw
もともとのサンプルではでてくるので、 データはあると思います
こまめにPrintしてデバッグしなさい。
取引がないんじゃないの
268 :
Trader@Live! :2011/02/28(月) 13:15:01.19 ID:eL/9bXYw
もう一度最初から作り直して試したのですが 結果は同じでした・・・ ほかに考えられる事はないでしょうか?
>>266 氏の言う通りこまめにデバッグすればOK
シグナルが出ているか?とか
ordersendする前にPrint分を入れておくとか
操作履歴にエラーとかないのか?
現在のポジションのロットを返す関数ってありますか? Forでカウントしていくしかないんでしょうか?
質問させて下さい。 Forex.com UKの口座を開設してEAのBTをしようと思いhistory centerから過去のデータをダウンロードしようとしたのですが、過去データがありません。これって過去のデータが提供されていないという事でしょうか?その場合、このブローカーでのBTは無理なのでしょうか? 色々検索しましたが、出てきませんでした。よろしくお願いいたします。
まずBTのやり方かからググれ。 ブローカーにもよるけど2,3ヶ月のデーターしか取得できないと思う。 過去データーを提供してる業者はFXDDが有名だけどライブデーターではないしw
>>263 大方プラスの結果が一つも出てないのに
オプティマイズにチェック入れてるんだろうぜ
オプティマイズ(最適化)は
プラスの結果の中から最適なパフォーマンスが出る
パラの組み合わせを探る仕組みだ
まずそのEAがホントにプラスの結果が出るのか
オプティマイズ外して固定パラでやってみ
>>272 Forでカウントしていくしか無いね
もしくはグローバル変数にポジション毎のLotを保存するとか手はなくはないがな
>>274 FXDD提供の過去データがライブデータでないというソースはどっかにあるんですか?
基本的にチケットは自前で管理して極力OrderSelectを避ける。 OrderCloseは引数にlots/price/colorを要求するから、OrderSend時に lotsとオーダータイプ(売りなのか買いなのか)とチケットをキャッシュし とけば、OrderSelect自体を省ける。 OrderSelectを避けられないのは待機注文がある時だけ。
>>277 え?
SL, TPにかかって自動Closeされたときに、無いチケットを扱ってエラーになるが
手動で決済しちゃったり、異常終了したりすると、整合性が取れなくなるから 基本OrderSelectで取得したほうがいいと思うよ
確か、ライブと比較したサイト有ったよ。 ヒゲの出方が違っていたな。 ライブデーターは公開しないでしょ、業者側が不利になることはしない。 DEMOデーターでせっせとBTしていざライブで稼働→ アレ??
バークローズ直前にしたらいいのに
一ヶ月ぐらいMT4を機動させなかったらなぜか更新できなくなってしまいました ログインさしてもうんともすんともいいません なぜでしょうか?
バージョンが古すぎると俺も更新できなかった 新しいのDLしてきて解決したけど いい方法あるのかな?
Broco通信切れて復帰したと思ったら通貨ペアがなぜか全表示になりやがった いちいちいらんの消すのうぜぇw
Broco復活しました?おちたままなんですが
復活して通貨ペア初期化というよく分からんの食らって、また落ちたまま戻らん
たったいま復活した!
俺だけでなく安心したw
290 :
Trader@Live! :2011/03/01(火) 09:17:47.16 ID:WfSbrlhM
ブロコ^^
落ちた
292 :
Trader@Live! :2011/03/01(火) 09:44:31.71 ID:zDtiLzym
ちょうしわる
293 :
Trader@Live! :2011/03/01(火) 09:54:16.78 ID:6bbcyQ+N
ブロコ安定しないね
週末にもっているポジを、含み損なら手仕舞い、含み益なら持ち越しってどうやりますか?
ブロコ難民だけど ダウ先とWTIがあるお勧めの鯖を教えて
broco止まりすぎ
>>294 OrderProfit()とDayOfWeekとHour()で条件づけすればいいんじゃないですか?
>>297 その業者のサーバー名(IP)をググっても見つからないので
良かったら教えてください
>>299 WEBで登録する必要性があるんだけど・・・。
ならここを試してください。
Tradeview Forex
64.15.237.203:443
brocoに文句言っている奴らって当然リアル口座での話だよな?
>>304 んなわけない
ただのデモ乞食
どのブローカーでもクレームが多くてサーバの負担になってるやつら
といってもbrocoに口座ひらくのはちょっと・・・
バックテストするとメモリが徐々に無くなって 終いには使用率100%になります。 この現象が起こるときとおこらないときがあります。 回避する方法ありますか?
>>298 if(DayOfWeek() == 5 && Hour() == 23)
{
for(int i=0; i<OrdersTotal(); i++)
{
if(OrderSelect(i, SELECT_BY_POS) == false) break;
if(OrderSymbol() != Symbol() || OrderMagicNumber() != MAGIC) continue;
if(OrderType()==OP_BUY && OrderProfit()>0)
OrderClose(OrderTicket(), OrderLots(), Bid, 3, Violet);
if(OrderType()==OP_SELL && OrderProfit()>0)
OrderClose(OrderTicket(), OrderLots(), Ask, 3, Violet);
}
}
うう、よくわからないな。
金曜23時を週末としたら、こんな感じ?
表示されているチャートをそのまんま上下に移動する方法はありますか? 価格をドラッグして縮小させる方法ではなく、 イメージ的にはチャート真ん中をドラッグして上下させたいんですが。
>>309 windows vistaです。
C2DのE6800とCPUはちょっと古目です。
メモリは4Gです。
BTしてるとEAによっては段々にメモリ使用量が増えてきて、最後は100%まで行ってmt4が落ちます。
メモリの使用量が増えている間はBTは進んでいません。
同じ症状の方って居ないですよね。 JFOREX版で全部つくり直すしか無いな。 さよならmt4 つか、たいして役に立たなかった。
>>311 メモリーリークしてるんだよ。
Buildは?
314 :
Trader@Live! :2011/03/01(火) 23:01:40.57 ID:30lFXaKz
カスタムインジケータについて質問です。 プログラム中で演算された値が5つの変数に格納されています。(仮にx1〜x5) これらの大小関係を計算させて順位づけをしたいです。 普通に書いたら5×4×3×2回大小関係を比較させる必要があると思いますが、 指定した変数の大小を比較できる関数は用意されていますか?
ifで比較するのが手っ取り早いかと
316 :
Trader@Live! :2011/03/01(火) 23:09:25.84 ID:30lFXaKz
すいません。 最適手順は、変数がN個として、 Log(N!)/Log(2) みたいですね。 これを関数として実装していないですか?という質問に変えさせてください。
MathMin,MathMax
ArraySort
319 :
Trader@Live! :2011/03/01(火) 23:24:08.55 ID:30lFXaKz
>>318 ソートがあったんですね。ありがとうございました。
321 :
Trader@Live! :2011/03/01(火) 23:58:32.72 ID:ACSpkw7p
Mt4とMt5はどう違うの? 5の方が進化してるの? インジケータは4の方が圧倒的に多いみたいだけど
>>321 MT5の概要
分散コンピューティングに対応しました。
マルチコアに対応しました。
ポインタの概念が採用されました。
クラスの概念が採用されました。
タイムフレームが増えました。
MT5はまだメジャーリリースされてません。
まだMT4がメインなのでインディケータ等が少ないのは仕方がありません。
>>311 tester/logs
tester/files
tester/history
tester/caches
それぞれのフォルダーにでかいファイルがあったらそれを削除してみる事をお勧めする
とくにeverytickでBTするとhistoryにはとんでもなくバカでかいファイルが作成されているからね
レベルを上げて物理で殴る
100個のランダムな数字の中から、重複するものを抽出する場合には どう表現すればいいでしょうか?
>>325 100個を配列に入れて
やり方1:配列1番目の要素と2〜100番目の要素を比べて同じなら抽出、2番目の要素と3〜100番目の要素を比べて同じなら抽出、3番目の・・・
やり方2:配列をソートして次の要素が同じなら抽出
独学なんでもっと良い計算方法あるかもしれないけど
というかそういう質問なら、プログラム板の質問スレに聞いた方が良い回答もらえる気がする
そうね、ソートしてなめるか値域が整数で一定範囲なら配列を使って 直接カウントするくらいかな。
そもそも、なんで100個のランダムな数字から重複するものを取り除く必要があるのか? 考え直した方が良いかも知れない。
基本的なとこだからできるようになっておいた方がいい
>>310 チャートを右クリ>プロパティー>
全般タブ>スケールの固定にチェックを入れる
たぶんこれで、やりたいことが出来ると思う。
同じの抽出ならソートよりバイナリツリーのほうが早いかな
サーバーを変える以外に日足の確定時刻を変更する事は可能でしょうか?
リアルタイムチャートでは無理でしょう。
自分でやればいいだけじゃん。 文字列部分だけきゃっぷって1秒2秒ごとに取得すれば、 自分で簡易のチャートを描くことはできる。 MTみたいなのは無理だけどさ。
最近MT4をはじめてEA作成しているのですが 現在のRateを取得して変数に入れるのは double i; i=Bars; でよろしいのでしょうか?
341 :
339 :2011/03/02(水) 16:25:58.43 ID:T6PWKC0a
>>340 もしかして普通にBidでいいでしょうか?
>>339 i = MarketInfo(Symbol(),MODE_BID);
343 :
339 :2011/03/02(水) 16:28:28.31 ID:T6PWKC0a
>>342 親切に教えていただいてありがとうございます
m(__)m
Bid/Askで普通は十分。 MarketInfo(OrderSymbol(), MODE_BID + OrderType() & 1); で、未決済チケットに対するOrderClosePrice()互換の挙動になる。 OrderClose時にこれを使う意味はまったくないけど、OrderSend時に MarketInfo(Symbol(), MODE_ASK - cmd & 1); などとすると、ちょっと便利な場面もある。 あと全然関係ないけど int stoploss = 20, takeprofit = 20; int point = Point * MathPow(10, Digits & 1); int sign = 1 - cmd & 1 << 1; double sl = price - sign * stoploss * point; double tp = price + sign * takeprofit * point; とかも、ちょっと便利な場面がある。
そうか オーダー種別の定数は 買いが偶数売りが奇数で統一されてるんだw
よく分かんないんだけど、BidとMarketInfo(Symbol(),MODE_BID) は別の値を返すの??
347 :
339 :2011/03/02(水) 22:44:00.45 ID:TNb/EQBF
Bidの取得は教えていただいた方法で 出来たんですが、問題が一つ発生したんですが教えてください Forex.comのデモで現在テストしてるんですが チャート上はユロドルが小数点5桁表示なのに取得したRateは4桁になっちゃうのは仕様ですか? 対処法は有るんでしょうか?
>>346 Bid は start() が呼ばれた時点の価格で、MarketInfo(Symbol(),MODE_BID) は、関数を呼んだ時の価格だから
必ずしも同じ価格であるとは限らない
Close[0]で良いんじゃないかな?
>>348 ほえ〜。勉強になったわ、ありがとう。
俺はBidで十分だな。
351 :
339 :2011/03/02(水) 23:20:59.60 ID:TNb/EQBF
Close[0]でも試してみましたが駄目でした 本番アカウントならちゃんと取得出来るのかな?
どうなんでしょ?
>>351 業者に問い合わせてみたらいかがですか?
どこでもデモは基本ノンサポートだけど、レートを取得したら桁数が違うというくらいならOKだと思うんで
353 :
339 :2011/03/02(水) 23:34:08.40 ID:TNb/EQBF
>>352 ありがとうございます
明日にでも問い合わせしてみます
>>353 DoubleToStr(Bid, 5) は使ってみた?
>>353 Pointの値は?
4桁だという確認は、どうやった?
バッファに入れてインジケータで表示とかしてたら、
桁数指定しないと、デフォルト4桁表示になった気がするけど。
あれ、かぶった。言いたいことは
>>354 と同じだが。
357 :
339 :2011/03/03(木) 00:14:50.06 ID:7rZYSKt1
>>354 、355
桁の確認はPrintで確認しました
今DoubleToStr(Bid,5)をためしてるんですが駄目でした
config フォルダの中にある metaeditor.ini を削除して起動するのじゃ・・。
361 :
339 :2011/03/03(木) 10:12:12.72 ID:7dX4NGWU
助けて下さい FOREXに確認したら口座開設時の口座タイプによる問題と言われ 口座タイプを変更したのですが4桁のままで、再度問い合わせしたら MarketInfo(Symbol(),MODE_BID)のSymbolを"ERUUSDpro."にすれば 直るといわれたのでやってみたら結局だめでした。 どうしたらいいんだ・・・
再度問い合わせろw
MarketInfo(Symbol(),MODE_DIGITS)は5桁なんですが、NormalizeDouble( Ask,Digits)としてcommentで見ると4桁の四捨五入したような価格表示です。 ストップのポイントは最低単位下何桁で書けばいいんでしょうか?
>>361 フォレックスのデモとリアルのデフォはユロドル下4桁、リアル口座で申請すれば
下5桁が使えたはず。
下4桁と5桁の鯖をいったりきたりすると4桁のはずが5桁表示になったりする
MT4の問題があった気がするけどそれじゃない?
MT4再起動すれば直ったと思ったけど。
>>363 下Digits桁。
365 :
339 :2011/03/03(木) 10:51:53.35 ID:7dX4NGWU
>>362 FOREXはEAの問題なのでわかりませんと
断れました
それでちょっと自分でいろいろ確認してたら
USD/JPYとかは小数点以下3位まで正常に表示されていました
EUR/USDのような小数点以下5位の表示する通貨だけ
Printで表示する際には勝手に四捨五入してる様になってます
それでPrint以外に視覚的にデバッグできる方法でRateを確認する方法
ってありますますか?
366 :
339 :2011/03/03(木) 10:54:09.05 ID:7dX4NGWU
>>364 お、やっぱりリアル口座ならいけるんですかね?
すでに申請はしてあるので、口座開設できたら
試してみます。
ありがとうございます。
>>365 既に答えは出ているような…
Print(DoubleToStr(Bid,Digits));
とか。
368 :
339 :2011/03/03(木) 11:05:43.36 ID:7dX4NGWU
>>365 あ、できました。
すいませんDigitsのは試してなかったです。
皆さん、ながながすいませんでした
ありがとうございます
やっとわかった。 double x; Print(x); した場合、下4桁までしか表示されないのを誤解してたんだな。 質問はもちっと具体的に書いてくれればすぐ解決すると思うんだけどね。
371 :
339 :2011/03/03(木) 12:10:37.38 ID:7dX4NGWU
>>370 あ〜まさにこれでした
今度はもう少しわかりやすく書くように
こころがけます
すいませんです。
373 :
Trader@Live! :2011/03/03(木) 16:03:59.63 ID:Gou60DWw
全く同じEAを1分足と5分足でバックテストしたらトレード数が 2倍も違います。 1分->1362回 5分->2720回 期間は2ヶ月程度です。 EAは単純に値段だけ見て指値、逆指値のエントリー 決済は全て指値 損ギリなし で指標とか何も使っていません。この原因は何でしょうか?
ビジュアルモードで見てみるのが一番てっとり早いと思う
375 :
Trader@Live! :2011/03/03(木) 17:00:42.28 ID:Gou60DWw
>>374 あまりにも細かく表示されていて違いはみつけられないです。
それにしても毎回同じテストをしても微妙にトレード数が違うのはなんなんだ?
しかもeverytick使ってるけど2日間で66トレードごときで終わるまで3,4分もかかりやがる。
ロジック内部に乱数が使われていたらトレード回数もかわるでしょう
377 :
Trader@Live! :2011/03/03(木) 17:27:13.05 ID:Gou60DWw
>>376 乱数は使ってないけれどティックでは膨大な時間がかかることが
分かりました。
>>375 スプレッドでしょう
倍もトレード数が違うなら、結果をみてトレードしてる
タイミングを考えたら理由がわかるのでは?
まず、ログやレポートを見れ
380 :
Trader@Live! :2011/03/03(木) 19:14:41.33 ID:Gou60DWw
>378 ただ単純に指値、逆指値を等間隔において決済されたら再度その決済された注文を 出すだけのシステムです。タイミングとかは関係ないと思われます。 ところで損ギリをまったくしないシステムなのですがバックテストすると 最後に現在抱えている含み損ポジが全て決済されてレポートされます。 回避方法ありますか?
381 :
310 :2011/03/03(木) 20:44:47.60 ID:T6xzBj3M
>>332 遅れてすいません。ありがとう。できないと諦めてました。
助かります。 爆益あれ。thx
382 :
Trader@Live! :2011/03/03(木) 21:06:16.99 ID:Gou60DWw
>>373 です。
結果レポートをEXCELに貼り付けたら原因が分かりました。
テスト期間を今年の1/1〜3/2に設定しているのですが
5分足の方は1/3から始まっているのに1分足の方は1/28からで
約1ヶ月もずれています。。。
どうやったら同じ期間設定できますか?
まさかこんな所がおかしいなんて思ってもいませんでした(><
>>380 それ回避できたら商材業者歓喜だろうなw
wwww
商材業者歓喜の回避方法はあるけど教えられんなw
>>382 だから最初から、結果をみてトレードしてるタイミングを、と言ってるのにw
387 :
Trader@Live! :2011/03/04(金) 03:32:26.77 ID:slC6Szy+ BE:1411817573-2BP(1111)
>>387 普通に動いちまったから、なにかを間違えてるとしかいえんなあ
もいっぺん、やり直してみたら?
>>387 そりゃEAでないですから
カスタムインディケータて書いてありますけど、読みましたよね?
こっちでコンパイルしました
同じ物ですけど、解凍後MT4の入ってるフォルダー→Expert→Indicatorへ入れてください。
http://para-site.net/up/data/019.zip それで現在MT4を起動されているのでしたら再起動か、MetaEditorも起動されているのでしたら
Historical_Volatility.mq4をダブルクリック→MetaEditorでコンパイルしてください。
あ、わかった、それインジケータだからEAのとこに入れちゃだめよ インジケーターのとこに入れたら動くよ
う、かぶったw
FXDDのチャート、bidを日本の業者と同じに合わせられないかな? ドル円とか3pipsくらい差があるんだけど
ブローカそれぞれで配信しているレートが違いますからね 残念ながら合わせる事は出来ない
>>392 あわせるって、配信データそのものを合わせられないかってこと?
395 :
Trader@Live! :2011/03/04(金) 12:23:31.05 ID:slC6Szy+ BE:2689176285-2BP(1111)
最近EA作ってバックテストして遊んでるだけの素人なんですが MT4でバックテストするときはストラテジーテスターからテストできるのですが EAをデモ口座で実稼働させるにはどうしたらいいのでしょうか? MT4の「Expert Advisor」のボタンをクリックしても何も起きないし、EAをチャートにドラッグ&ドロップできないしで詰まってしまいました。
>>396 ツール→オプションのExpert Advisorsタブあたりで、ごにょごにょ
>398 そのあたりでごにょごにょでは、 二つのDisableのチェックボックスをはずして 次の Ask confirm のチェックボックスをはずしてる以外はチェックいれてます。 EA全体の挙動の設定だと思うのですが EA複数ある場合、このEAと指定して通貨ペアや期間を設定するとかどうするのかと思いまして。
D&D 期間は↑のほう
403 :
Trader@Live! :2011/03/04(金) 20:30:38.00 ID:dIAkFZaS
ターミナル画面の取引タブですが、現在抱えているポジションの中で 「T/P:決済指値」の箇所が緑色になっているものがあります。(途中で色が消えたりもします。) これは何を意味するのでしょうか?
>>403 10pips以内に近づいた時に緑になる
405 :
Trader@Live! :2011/03/05(土) 00:30:03.30 ID:ANtmEh9K
>>404 決済が近いとそうなるのですね。
どうもありがとうございました。場苦役あれー。
週足でトレンドラインを引いて確認すると、 1(5分足と30分足)は同じ位置で、 2(15分足と1時間足)は同じ位置で 1と2で価格がずれて表示されているんですが、なぜでしょうか? 仮に1は今日の12時に85円丁度でクロスしてるのに2だと84円85とかでクロスしているという意味です。ご理解いただけたかどうか不安ですが;; AlpariUK-Demo - Alpari (UK) Ltd.
407 :
399 :2011/03/05(土) 08:30:32.80 ID:Fk9/5SFL
結局、リアル口座もって、しかもEA使用の申請をしないとだめなようです。 デモ口座だとBT以外でEA動かすってできないのかなぁ。。。
>>399 ちなみにどこの糞業者?業者がわかれば実践出来てる人もいるかも知れないし。
サブウインドウに引いたラインの位置座標ををMT4終了時にファイルに記憶して MT4の再起動時に表示させたいのですが、ObjectFindでは座標がとれないみたいでした^^; 座標を取得する何かいい方法はありませんでしょうか?
>>409 なんでラインが消えるのかを追求したほうがいいんじゃない?
411 :
Trader@Live! :2011/03/05(土) 13:53:02.06 ID:tnKHI9aP
あるネット上からサンプルプログラムをインストールして、メタエディターで 開くと中身が英語表記ではなく欧文?かなにかで表示されてるのですが どのようにすれば英語表記にできるのでしょうか? ちなみにオプション→フロント→スクリプト→日本語にしています
>>411 英語なら問題なく表示される筈ですが・・・。
Unicodeならおかしくなる事も考えられるけど、MetaEditorでUnicode文字でって事ならキリル文字かな?
413 :
Trader@Live! :2011/03/05(土) 14:12:24.07 ID:tnKHI9aP
インストール→インディケーターに保存→エディターで開くと PK (・6・ X} t,,Vu濫キΣ2lR:6Z4チ靉ネィ⊃・≧架Fヤルケ瘟ネカ・dciQツ・Hラ・ニサナ>崟・・[ <qN6ァ婉マヤ フy・-Rp雕・=z・ヌカ、窈ンJ.vゥフ,v_;O・使c7」サニL '。・$町ソxb・d(ス磁l・螽$縹ロ釉(Yq・[H・・・ュソ{)拈∇ケ彎「;$ヨO吶・ヌヨ?ヲュモ#V・ォサzjヘエ&ンヌヲラ;・Xs\誤nノム クb2kユユuリETケラ{Sゥ緘カ・・-ョュ1oホsュ1w・・・圓殻噸 ナシ1Pe^゙M」hレ と何度やり直しても出てしまいます・・・
ZIP解凍しろよw
>>407 EA使うのに申請?
ブローカー変えたら?
>>407 EA使用するのに申請が必要?
ブローカー変えたら?
ミスった(´・ω・`)
>>409 ObjectGetで取れるはず。
トレンドラインならOBJPROP_TIME1/OBJPROP_PRICE1/OBJPROP_TIME2
/OBJPROP_PRICE2の4つ。
あとdeinit()は2.5秒で強制終了されるから、もたついてると退避に失敗する。
Every tickについてお聞きしたいのですが、私のMT4では例えばドル円の 場合、ヒストリー・データは1分足は2011年1月18日20時30分から、5分足は 2010年11月9日1時10分からとなっています。 もし期間をDailyにし、2010年12月1日からバックテストする場合、先ずは 5分足が使われ、2011年1月18日20時30分まで来た時点で今度は1分足が 使われると理解しているのですが、この理解で合っているでしょうか?
>>410 、418
お返事ありがとうございます!
ObjectGetでそこまで取れるんですね! 早速やってみます^^
短い足だと一晩でかなりチャートが流れそうなので対策しないとですねw
ありがとうございました!
421 :
Trader@Live! :2011/03/06(日) 10:08:10.19 ID:kjk9mj4G
土日はヒストリーセンターから過去データ取り込めないのね。 土日はシステムが止まっているからなのか。
業者による
Ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,0,Bid+(600*Point),"LONG",0,0,Blue); この注文を、含み損が一定以上になったら OrderModify(OrderTicket(),OrderOpenPrice(),0,OrderOpenPrice(), 0, Blue); で、指値を変更しようと思ったのですが OrderModify error 1 がでます どうしたらよいのでしょう? それと、OrderModifyやOrderCloseで、 チケット番号の指定でOrderTicket()だとうまくいくのですが、 任意の変数で(↑だとTicket)指定するとinvalid Ticket functionっていう エラーになるのはなぜでしょう?
日足が午前7時に確定するデモサーバーを教えてください。
425 :
Trader@Live! :2011/03/06(日) 16:37:43.39 ID:gPP+eBxA
フラクタルの二つの高値を比べるプログラミングが分かりません 正確には一つ前のフラクタルの高値を一時的に保存して置く方法が分からないので比べる事が出来ません やり方教えて下さいお願いします
XAU/USDを表示させるにはどうしたらいいですか?
>>427 ありがとうございます。無事に表示できました。
>>423 error 1 なら、変更しようとしたが、どの値も変更が無かったってこと
>>423 Ticketを取得したときと、使おうとした時と両方でPrintして中身を確認してみれ
>>429 >>430 レスありがとうございます。
>>423 のとおりTPをOrderOpenPrice()に変更してるつもりなのですが、
何が悪いのでしょうか?
それとPrint(Ticket,OrderTicket());をいろんなところにおいてみましたが、
Ticketのほうは取得直後以外0になってました。
じつはぼくもifを出ると0になるんじゃないかと思って、Ticketをstatic intで定義してやったことがあるんですが、
OrderSelectがうまく行われなくなるので、staticは使わないようにしてるのですが・・・
格納されている値が不定になるとか、ブロックがどうのとかよくわかってません
ここらへんのことをやさしく説明しているサイトがあれば教えてください。
>>431 コードを簡略化してここに貼ると、優しい人がバグを見つけてくれるかもよ
なんとなくだけど、start()の中でticket=0で宣言してるとか、
OrderSelectの位置が間違ってるとか、そんな感じだね
>>431 なんどもOrderModifyをよんでるのでは?
レスありがとうございます
>>432 ticket=0にはしてないんですが・・・
OrderTicket()を使うとうまくいくんで、たぶんOrderSelectの位置もわるくないとおもうんですよね?
もうちょっと考えてみます。ほかになんか思いつく節があれば教えてください
>>433 あ、たぶんそれですね!あとで確認してみます。
それと変数の有効範囲?について(できればC言語でなくMQLで)
書かれてるサイトを知ってる方、教えてもらえませんか?
>>434 変数の有効範囲は付属のマニュアルに載ってるよ
日本語訳は
>>1 のメタシスシーカーへ銅像
static 使うとOrderSendが通らないなんてのはありえません
完璧にプログラムのバグだから、安心せいw
437 :
425 :2011/03/07(月) 03:56:33.36 ID:UcmMjr1V
流された俺の質問もお願いします
439 :
Trader@Live! :2011/03/07(月) 06:43:26.80 ID:UcmMjr1V
441 :
Trader@Live! :2011/03/07(月) 10:10:45.30 ID:UcmMjr1V
比較させた物を作りましたが上手く行きません。どこが間違ってますか? //---- buffers double buf[]; double z=0; static int n=0; //static宣言で約数を作る int init(){ SetIndexBuffer(0, buf); SetIndexStyle(0,DRAW_LINE); return(0); } int start(){ int limit = Bars-IndicatorCounted(); for(int i=limit-1; i>=0; i--){ if(n==0)//最初は0だからフラクタルの高値を入れておく n=iFractals(NULL, 0, MODE_UPPER,i); z= iFractals(NULL, 0, MODE_UPPER,i); //最新のフラクタルの高値を入れる if(z>n)//比較させて最新のフラクタルの高値が前の高値以上なら1を表示 buf[i]=1; else//それ以外なら0 buf[i]=0; n= iFractals(NULL, 0, MODE_UPPER,i);//最後に最新のフラクタルの高値を入れて置く } return(0); }
ヒント:フラクタルの変化した間の数値は0
>>441 それだと、例えば1000本前の足のフラクタルの値がメチャクチャ高かったら、それを超える足が出るまでbufが0になるね
過去何本の足のフラクタルの高値ってやらないと駄目じゃない?
445 :
Trader@Live! :2011/03/07(月) 13:02:50.81 ID:UcmMjr1V
分からないから答え教えて下さい
>>441 保存したいっていうからstaticって書いたけど
ひとつ前と比較したいだけなの?
ならこう
if (iFractals(NULL, 0, MODE_UPPER,i+1) > iFractals(NULL, 0, MODE_UPPER,i))
最小2乗法のインジの解説をしてほしいのですが プログラムはここに貼りつけても良いでしょうか?
WM6.5(WS027SH)+MT4mobile(forex.com JP)の環境で、チャートそのものは問題なく表示される。 でも、インジケータの詳細設定画面でフォントが正しく表示されない。 モードを日本語→英語に切り換えても同じ。 WM6(WS011SH)では問題なかった。 微妙に使いづらいんだけど、どうすれば解決するの?
すいませんが改行エラーが出るので 分けさせてもらいます。 for(int i2 = 0; i2 < 10000; i2++) { double kari.k1 = - Point * i2; int count1 = 0;
450つづき for(int i3 = 0; i3<n; i3++) { double y1 = a + b*i3 + kari.k1; int x1 = i3 +end.bar -1; if(y1 >= Low[x1]) count1 ++; } if(count1 <= count.num1) { double k1 = kari.k1; break; } } Print(i2); Print(count1); Print(k1); double TL.price.2 = a + k1; double TL.price.1 = a + b*n + k1;
451>> ObjectCreate("TL.Line",OBJ_TREND,0,iTime(Symbol(),period,start.bar),TL.price.1,Time[end.bar],TL.price.2); ObjectSet("TL.Line",OBJPROP_COLOR,c.1); ObjectSet("TL.Line",OBJPROP_WIDTH,line.width); ObjectSet("TL.Line",OBJPROP_RAY,false); for(int i4 = 0; i4 < 10000; i4++) { double kari.k2 = Point * i4; int count2 = 0; for(int i5 = 0; i5<n; i5++) { double y2 = a + b*i5 + kari.k2; int x2 = i5 +end.bar -1; if(y2 <= High[x2]) count2 ++; } if(count2 <= count.num2) { double k2 = kari.k2; break; } } Print(i4); Print(count2); Print(k2); double CL.price.2 = a + k2; double CL.price.1 = a + b*n + k2;
452>> ObjectCreate("CL.Line",OBJ_TREND,0,iTime(Symbol(),period,start.bar),CL.price.1,Time[end.bar],CL.price.2); ObjectSet("CL.Line",OBJPROP_COLOR,c.1); ObjectSet("CL.Line",OBJPROP_WIDTH,line.width); ObjectSet("CL.Line",OBJPROP_RAY,false); return(0); } お願いします。
なにを?
うーんと iCustom関数で使いたいので 過去25日間の線形回帰線をiCustom関数で使うにはどうしたらいいかを知りたいです。 なのでiCustom(NULL,0,"○○○",以下の部分をどうしたらいいか教えてください。
>>455 パラの変数名を順番に入れるだけです。
一例です。
iCustomで使うインジでこういう風にあったとします。
extern int aaa =1;
exten int bbb=1;
int ccc=1;
exten int ddd=1;
iCustom(NULL,0,"2channel",aaa,bbb,1,ddd,0,pos)
posの前はindicator buffersに格納されている数値の順番で、0が一番最初。
extenで指定されてない値はそのままiCustomで指定しておきましょう。
posは勿論足の順番ですよ。 適当にposて名前にしただけです。
>>456 >>457 ありがとうございます。
そのaaaやbbbは
そのインジを使うプログラムでも宣言しないといけないですよね?
>>459 もう一つ質問したいのですが、バーが進むにつれ更新され、
過去の形跡は残らないオブジェクトラインと、
別の指標のクロスを売買シグナルにしてもバックテスト可能ですか?
>>460 EAを作れば基本的には可能です。
ただ現在値から過去へと計算するインジの値を使ってる場合、シグナルの位置が変わります。
注意して下さいね。
手間は掛かりますが、VisualModeで確かめる事をお勧めします。
一度短期間でも良いですので、その辺りを確かめてからが良いと思います。
Brocoでデフォルトで入っているチャートの組表示を削除したのですが、MT4を立ち上げると削除した組表示が出てきてしまいます。 Euroやbritishpound等です。どうすれば完全に削除できますか?
>>462 現在表示させてるチャートをそのままDefaultという名前で組表示を保存すると
それが起動時に自動的に表示されます。
でも、名前が残ってるとイヤという事もありますので、terminal.exeが保存されてるフォルダーに
profileというフォルダーがあります。
そこに組表示の名前が入ったフォルダーがありますので、現在MT4を起動されていいるのでしたら
それを削除してMT4を再起動で削除された事が反映されます。
でも、ここで注意しておきたい事があります。
一旦全て削除しちゃうと、今表示させてるチャートも全て消えてしまいます。
なので、現在表示させてるタブが保存されるdefaultだけは消さないようにして下さい。
>>464 すばらしいです。解決しました。ありがとうございました
466 :
Trader@Live! :2011/03/08(火) 16:35:41.97 ID:qZ6BrzL0
mt4を終了させると設定したメール設定や、通貨ペアの最小化などが全部もとに戻ってしまう。 さらに昨日はupdateが出たのでクリックしたら再度同じupdateで3回も同じ事やって あきらめてupdateしないで立ち上げたら自作EAが全部消えてしまったよ。。
MT4でドル円を小数点第2位で表示している業者はいまでもありますか?
>>468 ありがとうございます。
dizitsが4のところがそうなんですね
469でした
開設したわ ちょっと1か月ほど色々いじってみる
brocoに関して質問があります。 先週までbrocoに接続していたのですが、週末、pcに osを再インストールしたら、brocoに接続できなくなりました。 新しくIDを申請してもダメなようです。 サーバー自体はpingを打つと反応があります。brocoに 接続するにはどうしたらよいのでしょうか? >231にも同じような症例の人がいるようですが・・
>>474 返事どうもです。
デモ口座の申請で名前とメアドを変えてみましたが、
ダメでした。名前記入の次の取引用サーバーでpingの欄がn/a
なんですよね。
windowsのコマンドからピンを打つとサーバーから返事があるんですが・・
新規の口座申請を拒否してるような気が・・
>>476 そこが n/a では、ダウンしている可能性があるのと、
新規に broco から mt4ダウンロードしなおして駄目なら諦める。。
>477,478 返事どうもです。これから試してみます。
MT4のことなんですけど 例えば4時間足は自分が使ってる業者の場合 @ 4時、8時、12時、16時、20時、24時 のような時間にローソク足が立ってますが MT4では始まりが A 3時、7時、11時、15時、19時、23時 のようにローソク足が並んでいます MT4の足の始まりを@にすることって可能ですか?
481 :
475 :2011/03/09(水) 09:21:59.55 ID:AkrIPF+K
>>477 ありがとう。
家帰ったら試してみます。
MT4のズーム機能って拡大しすぎませんか? 微妙にズームしたいのですが無理でしょうか?
無理ですねえ。 虫眼鏡で遠目に見るとかなら微妙にズームした状態になりますが それでは駄目ですよね。
質問なんですが、デモ口座でもEAを使ってデモトレードは出来るのでしょうか?
>>486 勿論出来ます。
デモでVPSの利用が出来る所も当然の如く
489 :
Trader@Live! :2011/03/09(水) 21:33:31.46 ID:7+sgiVys
約定メールで口座残高を送りたいのですがコンパイルエラーになってしまいます>< SendMail("約定",DoubleToStr AccountBalance()); SendMail関数の中で関数を使っているのがダメなのでしょうか? 'AccountBalance' - left parenthesis expected C:\Program Files (x86)\ODL MetaTrader 4\experts\scripts\メールてすと.mq4 (17, 31) 'AccountBalance' - left parenthesis expected C:\Program Files (x86)\ODL MetaTrader 4\experts\scripts\メールてすと.mq4 (17, 31) となってしまう。
SendMail("約定",DoubleToStr(AccountBalance(), Digits)); ってオチだったらムチでぶちますよ?
こ、れ、は、ないわぁーww
492 :
Trader@Live! :2011/03/09(水) 21:59:11.72 ID:7+sgiVys
ブチでむたれてくささい
>>494 ブチにぶたれるとか、それなんてご褒美?
496 :
Trader@Live! :2011/03/09(水) 22:25:46.09 ID:7+sgiVys
すいません と言っても単純ミスではなくもう一つケタ区切りが必要なのを知りませんでした。 mt4触って4日目です、プログラムも4日目ですが>491さんの言われる通りゆとり以下なのだと知りました。 でも助かりました。ありがとう御座いました。
499 :
Trader@Live! :2011/03/10(木) 03:17:29.54 ID:Gt5Ti+Xk
MT4のチャートの右上に現在値を大きく表示する方法を教えて下さい
501 :
sage :2011/03/10(木) 06:52:28.43 ID:beTP6GQK
FXメタトレーダー実践プログラミングに載ってる以下の関数を使ったEAで、 試しにFXDDのデモでバックテストしてみたんですけど、 slpips に6以上の数字を入れないと上手くバックテストできません。 FXDDだと、4pips以上であれば、ストップロス置けるんじゃないんですか? どうかお助けください。 bool MyOrderSendSL(int type, double lots, double price, int slippage, int slpips, int tppips, string comment, int magic) { int mult=1; if(Digits == 3 || Digits == 5) mult=10; slippage *= mult; if(type==OP_SELL || type==OP_SELLLIMIT || type==OP_SELLSTOP) mult *= -1; double sl=0, tp=0; if(slpips > 0) sl = price-slpips*Point*mult; if(tppips > 0) tp = price+tppips*Point*mult; return(MyOrderSend(type, lots, price, slippage, sl, tp, comment, magic)); }
>>501 スプレッド分を考慮すると、ちょうど6ぐらいなんじゃないの?
brocoを久しぶりに起動したら 無効な口座になっていました(GUIの右下) もう使えないって事ですか?
>>503 再度デモ口座の申請をして下さい。
Brocoのデモ口座の期限は90日間です。
>>504 thx
以前は90日とか関係なく使えてたのに、何時の間に!
forexを使っているんですが、ドル円の価格が下2桁で表示されています。 これは内部では下3桁以下はあるんでしょうか? 移動平均線とか拡大して見ると中間がありそうな気がして。
なるべく昔のチャートが見たいのですが FXDDもBrocoも、月足表示でも1990年程度までしか過去のデータがないようです ドルストレートでもっと過去のチャートが見られる業者を どなたかご存じないですか?
>>506 移動平均にカーソルを合わせると下2桁しか表示されないんですけど、
3桁以下があるということなんですね。
もし2桁だったら
移動平均値82.801 と 80.809
がどっちも82.80に変換されてるのか?と思ったので。
MT4の下の部分にある表示チャートを切り替えるタブが消えました。 再表示させるにはどうすればいいですか? よろしくおねがいします。
513 :
Trader@Live! :2011/03/10(木) 14:12:15.51 ID:p0bdb5kO
>>512 表示させてあったモノが消えたんだろ。
だったら最初にウィンドウタイトル下のメニューバーにある
「表示」から探ってみるのが普通だな。
>>513 親切にありがとう!
表示→チャートバー表示
でできました。
515 :
Trader@Live! :2011/03/10(木) 17:23:40.17 ID:Gt5Ti+Xk
>>509 そうなの?不便だなぁ・・・・・・・・・・・・・・
FOREXの歴史は知らんが、欧米で一般向けに解禁されたのが1990年頃なんじゃないのか
質問ごめん Fibonacci_Bollinger_Bands.ex4というインディケーターを導入したくて、 ファイルをprogram files→mt4→experts→indicatorsのフォルダに入れたんだけど でもメタトレーダーを何度再起動してもcustom indicatorsに出てこない・・ 日本時間表示をするインディケーターを入れようとしたこともあったけど それも表示できなかった どこの操作方法が間違ってるか教えてくれ ○| ̄|_ お願いします
Windows7の場合 Program filesにインストールしてる方はCドライブ直下に入れるか別のドライブに入れましょう。 ややこしくなりますからね。
523 :
Trader@Live! :2011/03/11(金) 01:12:11.26 ID:+5N5HCIo
自分もここで聞いてCドライブ直下に入れたらウザイ毎回UPDATEもなくなったし 自作EAは消えないし、各種設定もMT4終了再起動してもちゃんと残る。 うれしいのと同時になんでprogramfilesに入れようとするODLに殺意を覚える。 HPも文字サイズあげるだけでぐちゃぐちゃになって読めなくなるしサポセンの女は 対応過去最悪レベルだし。
Tadawulfxと日本の業者の値が違っててつらい 今日ポンド円とか10ピピ近く違ってた MT4ってみんなこんなもんですか
なぜに日本の業者名は伏せる?w
普通に10pipずれるんなら、おいしい話じゃないか
527 :
Trader@Live! :2011/03/11(金) 01:51:07.61 ID:x4oMsKeK
>>525 外為オンラインと外為どっとこむの値段確認して日本の業者といったんだよ
そんなもんだよ
MT4の売買履歴を右クリックして「レポートの保存」をやると 過去の売買をグラフで見れますよね。 友達のMT4ではそれができるのですが、僕のFXDDのデモ口座では 表示してくれません。どうして? (大きな文字で英文が表示されて、それで終わってしまう)
>>526 だな
10p離れてればアーブいける
でも長期的には通用しない不思議orz
つか比較業者が。。。
>>529 DEMO ACCOUNT USERS PLEASE ACCESS THE ACCOUNT HISTORY REPORT
AVAILABLE ON YOUR PLATFORM UNDER THE “ACCOUNT HISTORY”
TAB IN THE TERMINAL.DETAILED ACCOUNT REPORTS ARE NOT AVAILABLE
FOR SAVING OR PRINTING ON THIS PLATFORM.
LIVE ACCOUNT USERS PLEASE CLICK ON THE LINK BELOW AND YOU WILL
BE DIRECTED TO FXDD’S REPORT VIEWER WHERE YOU MAY ACCESS AND
PRINT FULL ACCOUNT REPORTS.
PLEASE BE ADVISED OF THE FOLLOWING: FXDD DOES NOT PERMIT HEDGING.
ALL TRADES ARE OFFSET ON A FIFO BASIS. THE OFFICIAL ACCOUNT
STATEMENT FOR ALL PURPOSES IS THE REPORT PRODUCED BY FXDD’S
BACK OFFICE.THE ACCOUNT HISTORY PROVIDED ON THE META TRADER
INTERFACE’S ACCOUNT HISTORY IS A TRADE BLOTTER ONLY AND IS
NOT AN OFFICAL STATEMENT OF ACCOUNT.
だそうですが、どうすれば売買履歴のグラフ見れるようになんのか?
スペイン語が読めないので。
スペイン語??
533 :
Trader@Live! :2011/03/11(金) 13:30:21.61 ID:gPUv3bQV
まぁ英語すら読めない奴にスペイン語が読めるはずはないw
仕方ないから、myfxbookでもつかいます。
>>531 面倒なので機械翻訳でw
デモアカウントユーザはこのプラットホームの取っておくか、または印刷するのについてのレポートがない、
TERMINAL.DETAILED ACCOUNTでの「口座利用明細」タブの下のあなたのプラットホームで利用可能な
口座利用明細レポートにアクセスしてください。
取引の活発な口座ユーザは以下のリンクをクリックしてください、そして、あなたは顛末レポートにアクセスして、
印刷できるFXDDのレポートビューアーに向けられるでしょう。
以下についてアドバイスされてください:
FXDDは、言葉をにごすのを可能にしません。
すべての取り引きが先入れ先出し法ベースで相殺されます。
すべての目的のための公式説明声明は、口座利用明細がインタフェースのメタトレーダーところの
貿易吸取紙だけであり、OFFICAL勘定式貸借対照表でなければFXDDのBACK OFFICE.THE
口座利用明細によって製作されたレポートです。
536 :
Trader@Live! :2011/03/11(金) 15:05:46.85 ID:0Elx6am5
なんか最近ブロコ調子悪いな ドル円のクオートが止まりまくる
537 :
Trader@Live! :2011/03/11(金) 15:07:16.27 ID:0Elx6am5
ブロコのeu#0鯖だと止まりまくるんだが、 eu#1だと普通に行ける。 これをeu#0を削除して接続に行かないようにするにはどうしたらいいの?
PFWで、eu#1のIPだけ通すようにすればいいんじゃね
ブロコのNK先物が動かない 助けて下さい
>>522 遅レスすみません
仰るとおりwindows7です
Cドライブ直下にインストールしないといけないんですね
dです!
>>540 別のフォルダーからProgram filesへコピペしたファイルはセンドボックスに入れられてるんで
542 :
Trader@Live! :2011/03/11(金) 20:04:20.56 ID:xbnE9njf
>>529 >>531 FXDDの古いMT4(例えばFXDD NYの時の物とか)を使っていないか?
最新のMT4をFXDDのサイトからダウンロードしてMT4自体を再インストールしてみな。
FXDD Maltaのやつだったらちゃんと表示されるはずだ。
543 :
Trader@Live! :2011/03/12(土) 13:42:43.89 ID:dO3pD4xh
ヒストリカルセンターから過去データをDLしたいんだけどDLボタン押すと 全通貨のデータを落としてるみたいで時間がかかる。欲しいのはAUDJPYの1分と5分だけ なのですが指定してDLすることは可能でしょうか?
無理だね。
過去のチャートを使ってデモ取引したりできないでしょうか?
>>545 vTerminal.mq4でググって下さい
初心者スレだけになったか
548 :
Trader@Live! :2011/03/14(月) 15:35:15.18 ID:D1gwpphH
価格が上がれば音が鳴り、 下がればまた違う音がなる。 そのようなインジケーターは ありますか?
549 :
Trader@Live! :2011/03/14(月) 15:37:50.97 ID:KC8JcUMQ
途中かもしれませんが 野田財務相 (更新:03/14 15:34) 日銀の追加緩和決定、時宜にかなった措置 日銀には引き続き政府と緊密に連絡し流動性供給含め万全を期してほしい 市場の動きを引き続き注視し、適時適切な対応をする
550 :
Trader@Live! :2011/03/14(月) 15:40:38.34 ID:KC8JcUMQ
551 :
Trader@Live! :2011/03/14(月) 16:08:08.06 ID:xUKDs+vp
日経や豪円など見るにはどうすればいいのですか?新しいバージョンにして見れなくなってるけど・・
>>546 ありがとうございます^^
>>548 既存のインジケータがあるかどうかは分かりませんが、
PlaySound()の関数によりwav形式のファイルを再生することができます
>>548 tick毎に鳴るやつならこの前作った
結構うざい、要るか?
554 :
Trader@Live! :2011/03/14(月) 16:55:53.12 ID:D1gwpphH
>>553 回答ありがとうございます。
是非ください!
>>554 ほれ、サウンドファイルは自分で用意してね、アップすんのメンドイ
double price;
int init()
{
price = Bid;
return(0);
}
int deinit()
{
return(0);
}
int start()
{
if (Bid > price){ PlaySound("up.wav");}
if (Bid < price){ PlaySound("down.wav");}
price = Bid;
return(0);
}
556 :
Trader@Live! :2011/03/14(月) 17:24:51.64 ID:D1gwpphH
>>555 えっと・・・
この文章をどうすればよいのでしょうか?
>>557 ありがとうございます。
すみません、音のファイルはどこに置けば良いでしょうか?
>>558 メタトレーダーをインストールしたフォルダの中にsoundってフォルダが有るからその中
560 :
558 :2011/03/14(月) 17:54:58.16 ID:D1gwpphH
すみません! できました!うれしー!!!!!!!!!!!
561 :
558 :2011/03/14(月) 17:56:13.04 ID:D1gwpphH
>>559 何度もありがとうございます。
おかげさまでできました。
>>560 動きましたか、鳴りまくって、結構うざくない?
563 :
558 :2011/03/14(月) 17:59:08.53 ID:D1gwpphH
最初はそんなもんさ。うざくなるのは2日目以降・・・
あるある
1pip動く度にピロンとか鳴ると正直ウザイよね。 以前インジのシグナルが出たら1pip動く度に出るポップアップアラートを付けたら・・・
569 :
Trader@Live! :2011/03/14(月) 20:30:40.01 ID:KC8JcUMQ
一定ピピ動いたら….mq4 ってのをこのスレか関連スレで頂いたことがあったよ。
>>568 うちは、あがったらピーン
さがったら、ポーン
で、やった
よこよこで動かないときに仕掛けてTV見てるw
MT4を入れても定期的(3ヶ月ぐらい?)で無効口座になって 動かなくなり、再度インストールを繰り返してるんだけど これって仕様ですか?
口座が一定期限で無効になるのは仕様 でも再インストールしなくてもデモ口座の再申請すればいいだけ
4.0.0.388にlive updateでアップデートしたら、起動しようとはするんですが、 CPU使用率が100%近くになったまま、先に進まなくなってしまいました。 ウィンドウのタイトルバーは表示されてるんで、右上端のxを押して閉じる 動作をさせると、終了するようで、CPU使用率は元の低い状態に戻ります。 で、質問なんですが、環境は今のまま使いたいんで、それを維持したまま 以前のバージョンに戻したいんですが、exeファイルだけ上書きすれば、 そのまま使えますでしょうか? 以前のバージョンは正確に憶えておりませんが、4.0.0.2xxでした。
すいません、バックアップ取って再インストールすることにします。
575 :
Trader@Live! :2011/03/16(水) 19:27:33.69 ID:iRatfG6K
平均足のインジケータで、色が変わったらメールでアラートを通知してくれるインジケータって ないのでしょうか?
576 :
タイラー :2011/03/16(水) 22:50:04.49 ID:0E8vWvA1
HKD/JPY見れるデモサーバーありますか?
>>578 FXBESTにあったと思います。
一度お試しを
213.152.151.220:443
因みに今ロシアで1、2を争うロースプの業者です。
>>580 うおーーありがたやぁ!
ありがとうございます
582 :
Trader@Live! :2011/03/17(木) 23:32:16.41 ID:eBVL84g8
今IBFXのデモでMTを動かして、MJで取引しています。 MJの値動きのほうが早くて、MTの値動きはもっさりという感じです。 値動きが軽くて、しかも正確なレート表示(全通貨1pipsのスプレッドの会社は軽いのですが レートが他の業者と違うので)このような会社はありませんか。
583 :
Trader@Live! :2011/03/18(金) 00:06:28.75 ID:cH2S8mY5
582 ですが、パソコンの能力によっても動き方は変わるんでしょうかねぇ。 自分のパソコン、セレロン デュアルコア 1.8ギガですが、パソコンの 能力低すぎですか。
>>582 正確って・・・。
カリネックスのレートとMJとも差がありますよ。
さっきMJのデモを開いて確かめました。
そもそもカバー先が違えば提示してくるレートには多少の差が生じて当たり前なんですよ。
要は動きさえ合っていれば良いんです。
とりあえずここのデモを使ってみてください。
http://accentforex.com/en/
>>583 性能には問題ありません。
Atom D525やFusionでもサクサク動いてます。
586 :
Trader@Live! :2011/03/18(金) 00:37:54.33 ID:cH2S8mY5
ありがとうございます。
587 :
Trader@Live! :2011/03/18(金) 01:08:45.02 ID:cH2S8mY5
FXBEST のURL教えてください
589 :
Trader@Live! :2011/03/18(金) 10:41:15.96 ID:Wqq1nxvY
お前ら地震関係ないのな
関係ないフリをしている奴もいるのな
マジックナンバーを指定していない場合、たとえばA、Bのシステムがあって、Aでポジション持っているが、Bが決済するシグナルになった場合、Aの持ったポジションはBによって決済されますか? 決済方法はA、Bとも同じオーダークローズ関数の場合です。
>>591 マジックナンバーを指定してOrderSelectしない場合は、決済されるよ
関係はあるが、仕方が違うな。 「被災者が大変だ」や「日本はどうなるんだ」ではなく、 「為替への影響」や「自分の住むところは今のままでいいか」だな。 自分はそもそも淡路のあとに「神戸はしばらく大型は来ない、関東はこれから」を元に、 震災後に安く売られた一等地にいる者なので、宮城地震や原発は本当に関係ない。 「どこに住むか」などの自由も日本にはあるのだから安全だと思うところを選ぶだけだ。
MT4 build392アップデートきました。 何を修正しましたか?
>>595 先ほど見たときは更新されていませんでした。
ありがとうございまする。
>>592 ありがとうございます。
同じシステムを同じ期間でバックテストしても何故か結果が違います。これは何故でしょうか?
コピーペーストで貼りつけた全く同じシステムです。これ僕のミスじゃないなら困ります…
598 :
Trader@Live! :2011/03/18(金) 15:19:12.38 ID:SwOkYHUu
Buy Sellした場合にチャート内に点線として履歴が残りますが 目障りで邪魔なのですが消す方法はありますか。
>>598 ツール→オプション→チャート→チャート上に建玉と注文を表示のチェックを外す。
これで完了です。
600 :
Trader@Live! :2011/03/18(金) 15:50:09.77 ID:SwOkYHUu
>>599 早速の回答ありがとうございました。
解決できました。
601 :
Trader@Live! :2011/03/18(金) 16:15:38.55 ID:RdREEyGl
>>597 スプレッドの依存するEAなんじゃないの?
>>597 ヒストリーが違う、壊れている、etc・・・・
>>589 震災スレがあるんだからそっちでやってるよ
俺が普段やってることを止めることで
被災者が救われるならいくらでもじっとしといてやる
だがそうじゃない
指値決済注文で半分決済したいときはどうすればいいですか? 数量の変更ができないです。
606 :
Trader@Live! :2011/03/19(土) 11:55:03.83 ID:WlakVlq9
MT4アンインストールをして再度インストした場合、前回入力した内容が デモ口座の申請にそのまま残っています。この情報も消したいのですが どのデータを消せばいいですか。
607 :
Trader@Live! :2011/03/19(土) 12:04:34.62 ID:+I4aPS8U
インジケーターを保存してmeta editorにも表示されるんだけど、肝心のtraderには表示されない なぜですか?
>>606 Program Filesフォルダにある該当するmt4フォルダを削除。
610 :
sage :2011/03/19(土) 18:40:50.83 ID:UFDwrjHf
TradeSwitchというインジなんですが使い方判る方いたらご教授ください 以下英文のインジの説明です よろしくお願いします Hereby a tool to send/receive text messages between MT4 instances! It includes 2 sample MQL files, 1 DLL file and its source code (using Visual Studio 2005, C++) 1. Put both MQL files in expert subfolder 2. Put DLL file in expert/libraries 3. Don't forget to enable DLL function in MT4 Options
>>610 このツールによってMT4のインスタンス間でテキストメッセージの送受信ができます。
2つのサンプルMQLファイルと1つのDLLファイル及びそのソースコードが含まれます。
1. 両方のMQLファイルを expert フォルダに置け。
2. DLLファイルを expert/libraries に置け。
3. MT4のオプションでDLLを有効にするのを忘れんな。
ってインストール方法だけ書いてあるよ。
使い方はわからん。
Lot数をマーチンゲール法で積み上げていくプログラムは簡単なんですが、 モンテカルロ法のプログラムがどうしても分かりません。 アドバイスお願いします。
>>612 マーチンゲールはベッティングシステムだけど、モンテカルロ法はシミュレーションとかに
使う数値計算の方法だぜ?何か勘違いしてないかい?
>>611 他にSLN、VCPROJ、CPP、defとあるんですが
こいつらをどうにかしろってことですかね
mt4使っててあまり見たことないタイプなので、この手のファイルは入れるところって大体きまってんでしょうか
617 :
タイラー :2011/03/19(土) 21:30:54.39 ID:bkbhQE21
>>612 あってるかなぁ?あんま自信ないけどそれっぽくしてみた。
興味深い問題なのでOKか間違ってるかレスくれると嬉しい。
int monteA = 1;
int monteB = 3;
↑はinitより上に書く。
void LOT(bool SON)
{
//montecarlo
if (SON == true)
{ //損失が出た場合
monteB ++;
}
else
{ //利益が出た場合
monteA = monteA + 1;
monteB = monteB - 1;
}
if (monteA >= monteB)
{ //配列が少なくなった
monteA = 1;
monteB = 3;
}
return(monteA + monteB);
}
トレードがクローズされてプラスかマイナスが出たときにコレを呼んで
ロット=LOT(勝ちか負けか)*補正値;
みたいにして使えばいいと思うよ。
618 :
タイラー :2011/03/19(土) 21:44:43.74 ID:bkbhQE21
失敬。voidじゃ値返さないらしいのでvoid→doubleに書き換えてみてください
>>616 library、include等は決まってます。
ライブラリはlibrary、外部関数はincludeなどといった様に・・・。
それ以外は別にどこに置いても良いですが、パスが通ってないと読み込めませんので
フォルダー名を指定してある筈です。
>>616 それらのファイルはDLLを自分で再コンパイルする場合に必要。
プログラムを使用するだけなら捨てていいよ。
Myfxbookの設定を何度もためしてるんだが、うまくいかない。 ConnectionがPendingのまま。 ブローカーはFXDDのデモなんだが、誰がコメント頼む。 一回売買やらないと過去の売買ヒストリーがMyfxbookに渡されないんだっけ?
>>620 そうです、
>>621 英文のスレを見ていくとカスタマイズできるようなので
そのタメのファイルなんでしょね
ということは最初の説明文を勘違いしている可能性が大きくなりました
もう一度スレを読み直しいじってみますありがとうございました
624 :
Trader@Live! :2011/03/20(日) 02:30:37.26 ID:9O/nynQi
超初心者ですいません。 今、VQのプログラムを見ているのですが、最初の設定部分の bool TurnedUp = false; bool TurnedDn = false; datetime timeprev1=0; datetime timeprev2=0; datetimeの意味がわかりません↓ TurndeUPは転換点のことでしょうか? みなさんから見たらカスな質問だと思いますが、 ググってもわからなかったので・・・・・ こんな私にご教示お願いできませんでしょうか?
>>623 ・FlushSignal(string Name)
Nameという名前の箱を用意する。
・SendSignal(string Name, string Value)
Nameという箱にValueという文字列を入れる。
・ReceiveSignal(string Name)
Nameという箱から文字列を取り出す。
プロセス間通信用のDLLみたいだけど、実際にやってることはレジストリに書いて
レジストリから読み出してるだけで効率あんまりよくない。
>>624 同じ足の中で繰り返しアラームを出さないためのフラグ
627 :
Trader@Live! :2011/03/20(日) 03:15:19.26 ID:9O/nynQi
>>626 TurnedUPの方でしょうか?ありがとうございます。
628 :
Trader@Live! :2011/03/21(月) 00:54:04.15 ID:oPpT7MGW
バックテスト用に新しくODLのmt4ダウンロードして FXDDの過去のデータをmt4にインポートしようとしたら出来ない なんで?
ググッてもスレ検索してもどうしてもわからないので質問させてください メタトレーダートップ→表示→ツールバー で【標準 チャート ライン等 周期設定】 の項目があるじゃないですか。その表示を記憶させておく方法を教えてください。 PCをつけるたびに消えてしまい、表示しなおすのがおっくうで・・・ よろしくお願いします。
>>629 みぎくり、定型チャート、定型として保存
>>630 回答ありがとうございます
それをしてもメタトレーダーを起動しなおすと【標準 チャート ライン等 周期設定】が消えてしまいますorz
なぜだ・・・
>>631 妙だね。画面の配置や設定はconfigフォルダにあるterminal.iniに保存されるから、
MT4を終了した時にファイルが更新されてるかどうかチェックしてみてはどうだろうか?
7ならc直下にインスト
別ドライブでも良いけどね。 Dドライブに入れてるけど問題無く動いてる
635 :
Trader@Live! :2011/03/21(月) 19:04:27.12 ID:XWGZCJcv
>>631 default.tplって名前にするか、名前を付けて保存したファイルを呼ぶ必要があるのは分かってるよね?
>>631 あ、間違えた、【標準 チャート ライン等 周期設定】ならF11で解決しない?
639 :
635 :2011/03/21(月) 21:14:01.97 ID:XWGZCJcv
>>639 txtファイルの方をexpert→filesに入れてくださいとの記述がありますが
入れましたか?
641 :
635 :2011/03/21(月) 22:00:57.02 ID:XWGZCJcv
>>640 はい、入れたのですが、何も変化ありません・・・
何故でしょうか?
>>639 使った事が無いんでわからなかったんですがソースを見たら
てありますんで、インジのダイアログのパラメーターの入力でEcoIndi110321.txtを入力して下さい。
extern string fileName = "EcoIndi.txt";
643 :
635 :2011/03/21(月) 23:11:27.16 ID:XWGZCJcv
だめだ・・・わからない 一応やったけど、表示もされない
>>643 ここまで来るとどうしようもないと・・・。
ダブルオーさんのブログにコメントを残して対応待ちになります。
それが気に入らないのならMQL4を覚えて自分で作る以外に解決法はありません。
自分のこのレスが気にらないかもしれませんが、現実を受け止めてください。
でも、MQL4を覚えておいて損はありません。
時間と労力を消費しますが決して損はしません。
645 :
635 :2011/03/21(月) 23:33:05.91 ID:XWGZCJcv
>>644 644さん、ありがとう!!
私も自力で、がんばってみます!!
thanks
>>645 おまえさんがほしがってるのは
economicnews_v007.mq4 ってやつだな
質問です MarketInfo(Symbol(), MODE_MAXLOT) で求められるのは1ショットの最大ロット数という認識でよろしいでしょうか
よろしいでしょう
>>647 以下にある通りあなたの認識通りです。
MODE_MINLOT Minimum permitted amount of a lot
MODE_MAXLOT Maximum permitted amount of a lot
>>648 >>649 とてもありがとうございます。
心優しき先輩にもう一つ質問です。
そのアカウントで持つことのできる上限のLOT数を返す関数があれば
教えていただけないでしょうか。
ブローカーのサポートに問い合わせしかないでしょうか。
651 :
635 :2011/03/22(火) 04:47:26.92 ID:Y8ptjVp4
>>646 一応、economicnews_v007.mq4をDLしたんだが、
直接DLできなくて、画面に一回表示されてしまう。
MQ4形式で、DLできないので、一旦テキスト形式でDLしました。
その後、拡張子変更をして、インジのフォルダーに入れたけど、
今度は、MT4を開いてカスタムの所に、出てこない・・・
やり方、間違ってますか?
>>650 入金できる証拠金の上限を言っている?
それは問い合わせて。
>>651 txtをmq4にしたってことだよね?
それなら手順はあってると思う
MT4を再起動するかMetaEditorでコンパイルしたんなら
indicatorsフォルダにeconomicnews_v007.ex4ってのができてるはず、
.ex4じゃなくてeconomicnews_v007.logってのがあったらたぶんコンパイルエラー
コピペミスとかかもしれない
それかOSがVISTAか7でMT4をProgram Filesにインストールしてるならそのせいかもしれない
そうなら
>>608 を読んでみて
すまんが俺XPなのでVISTAと7の細かい症状についてはよくわからない
こんにちは。 BTの各数値はどの辺を参考にしたらいいですか? また、どんな意味ですか? 大事なものだけでいいので教えてください。
本当に大事で意味のある数字はレポートには出てこないよ
そうなんですか。 年利計算はどこですればいいですかね?
657 :
Trader@Live! :2011/03/22(火) 17:04:19.02 ID:HsCN1N1c
インジケーターの値を1分毎にcsvファイルに出力するものを作ったんだけど 例えばチャート上に5本のMAがあってその値を出そうとしたら、そのMA自体を弄って中にFiles関数埋め込む方法しか思いつかないんだけども ファイル出力専用のインジケーターを作って他のインジケーターの値を取得することは出来ないの? 出力したいインジケーター全てを弄るようになるのは凄く手間だしスマートじゃないんだが。誰か詳しい人教えて
>>657 表示中のインジケータの値は取得できないだろうね
せいぜい iCustom で内部的に呼び出して取得するぐらいしかないだろう
>>657 iCustomで対象インジのバッファを拾って書き出すインジを作ればいい。
ただ、各インジの引数は結局人間が与えてやらなきゃならない。
あと、引数の数はインジ毎に異なるけど、MQL4は超静的だからその
辺を動的に調整する術がない。
だから、引数の数に応じたiCustomX(Xは引数の数)を定義してswitch
で分岐して呼び出すとかの工夫が要る。
多分、それほどトンデモない数の引数を取るインジはないと思うんで
やってやれなくはないと思うよ。
iCustom関数初めて知った。 ありがとうちょっと勉強してやってみる。 ただどうやっても、表示のインジに対して動的に変化するような物は作れないのね。 よく分かった。ありがと。
>>650 FXDDの最大ロットが50、FxProの最大ロットが10000
それにレバレッジを考慮した金額が最低でも入金できるんじゃないでしょうか。
詳しくはサポートデスクに。
つか、そんな大金持ってるなんてうらやましいw
662 :
635 :2011/03/22(火) 21:03:33.08 ID:Y8ptjVp4
>>653 今会社から帰ってきて、2chに書き込んでいるだが
MT4を再起動しても、何も変わってない。
それに、economicnews_v007.ex4もできてない。、、
ちなみに、PCは、XP pro
何でだろ〜。。。
>>662 MetaEditorでコンパイルしてみればいいじゃない
EAのBTでEVERYTICKの時は、スプレッドも計算されているのですか? また、スプレッドを決めて、BTはできるのでしょうか?
初めてプラス収支のEAできたんだが、どこ見たらいいのかさっぱりわからん 実践レベルで使うにはどれくらいの数値が出てればいいんだ?
Every tick 2008年1月〜本日まで Total net Profit 3384.26 Profit factor 1.24 Total trades 1698 Profit factorは1.5以上必須なんだっけ? 誰か評価とアドバイスお願いします
質問です。お願いします。 カスタムインジケーターを作って、表示させたのですが、表示させた時間の足からしか ウィンドウに表示されません。 int start() { int limit = Bars-IndicatorCounted(); //---- for(int i=limit-1;i>=0;i--) { double RateUSDJPY[i]=iClose("USDJPY",PERIOD_M1,i); } //---- return(0); } 以上のどこがいけないのでしょうか? googleで検索したのですが、わかりませんでした。
>>669 double RateUSDJPY[i]はプログラムの一番上で宣言して、
RateUSDJPY[i]=iClose("USDJPY",PERIOD_M1,i);
に変更
brocoの日経先物が止まって動かないんです。 どなたか同じ状態の方はいませんか? 復旧方法を教えてもらいたいんです。
>>670 すいません。中途半端にしか書かなくて
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Pink
#property indicator_width1 3
double RateUSDJPY[];
int init()
{
//指標バッファの割り当て
SetIndexBuffer(0,RateUSDJPY);
//指標ラベルの設定
SetIndexLabel(0,"RateUSDJPY");
return(0);
}
int start()
{
int limit = Bars-IndicatorCounted();
//----
for(int i=limit-1;i>=0;i--)
{
double RateUSDJPY[i]=iClose("USDJPY",PERIOD_M1,i);
}
return(0);
}
全体的に書くと、このような感じなんですが、
インジ挿入時もしくはMT4起動時からの分しか、計算されません。
RateUSDJPY[]を2回宣言してる
broco の新サーバーです 87.239.184.73:443 テンプレ変更お願いします
GJ!
677 :
Trader@Live! :2011/03/23(水) 15:14:14.64 ID:HUq55QVl
為替 ダウ 米国債10年もの 原油 金 これらが全部見れるデモサーバーってどれでしょう。
679 :
Trader@Live! :2011/03/23(水) 17:05:33.73 ID:HUq55QVl
>>678 レスどうも。
米国債10年物はどれを見ればいいんでしょうか。
681 :
Trader@Live! :2011/03/23(水) 17:09:50.00 ID:HUq55QVl
ごめんなさい
こっちです。
プラットフォームを間違えてました。
誰か指摘してくれるとありがたかった。
http://www.brocompany.com/trading-platform/broco-trader/cfd-on-futures/ ZBH1とかってのはコードで、その横の年月日は限月です。
30 YEAR U.S. BOND
ZBH1 2011-03-22
30 YEAR U.S. BOND
ZBM1 2011-06-21
30 YEAR U.S. BOND
ZBU1 2011-09-21
10 YEAR U.S.NOTES
ZNH1 2011-03-22
10 YEAR U.S.NOTES
ZNM1 2011-06-21
10 YEAR U.S.NOTES
ZNU1 2011-09-30
見るだけならMT4でなくてもと思ったりもする今日この頃・・・。
幾ら糞化しようが、幾ら海外で叩かれまくろうがSAXOの方がBrocoより
安定してるし見るだけならSAXOの方が良いと思う。
683 :
Trader@Live! :2011/03/23(水) 18:08:56.50 ID:Pm3jGuKO
zuluと同期ってできるんだっけ?
どっか良い業者ありません? 自動売買出来て出金とか簡単でレバ高い所ないですか?
デモでフリーEAのバックテストを行っているのですが、 TestGenerator: unmatched data error (volume limit 94509 at 2011.03.17 00:00 exceeded) というエラーが大量に出現します。 ググるとヒストリーデータの不具合とあったのでいくつかの解説ブログを参考に ヒストリーセンターから何度もダウンロードし直しているのですが一向に改善しません。 どうすれば改善されるでしょうか??
>>685 1分足のデータのみをダウンロードし、MT4をオフラインにしましょう。
その1分足のデータから、ピリオドコンバーターで他の足を作成してください。
ピリオドコンバーターALLというのを使うと楽チンです。
その後、MT4を一度だけオンラインにしてからバックテストを行ってみてください。
>>686 ありがとうございます!
早速試してみます。
688 :
Trader@Live! :2011/03/24(木) 00:48:05.18 ID:1lzABHQ9
MT4のステータスバーにチェックを入れて使っているのですが、 再起動するとステータスバーが消えているのです。 設定を保存するにはどうすればよいですか?
F11?
バックテストをすると、ちゃんと取引はされているようなのですが、使用したインジケータが、Visual modeやチャート上で表示されません。
パンローリングのメタトレーダー実践の本には、iCustomを利用したりすると、Visual mode やチャート上で表示されると書いてあったのですが・・・
以下がそのEAです。
http://www.megaupload.com/?d=72NTOM9P
>>691 ソースを見たらBB2Breakoutていうをインディケータを使ってますね。
そのBB2BreakoutていうをインディケータをVisual Modeで動かしてから表示させてみて下さい。
設定期間分バーが消化後したら表示されるでしょう。
>>688 vistaかwin7ならC:\Program Files 以外の場所にインスト
694 :
Trader@Live! :2011/03/24(木) 18:54:44.43 ID:pc94356M
696 :
694 :2011/03/24(木) 19:09:49.31 ID:pc94356M
>>695 それっぽいですね。
こんなの入れた記憶が無いんですが・・。
このシングナルの詳細わかる方いましたら教えて下さい。
入れてないインジが勝手にシグナルを出したとなると、 ハックされてる可能性が高いねw
>>696 チャートを右クリック、「表示中の罫線分析ツール」でインジケーターをチェック
ワンクリックのEAってありませんか?
>>700 もう少し具体的に書かないと何の事かわからないよ
702 :
Trader@Live! :2011/03/25(金) 04:59:40.11 ID:cnN3ABQV
>>702 何か勘違いしているようですが、EAてのはロジックに基づいてフルオートオーダーを行うんですけど・・・。
DLLで外部プログラムを呼び出さないとムリポ
業者によっては、そういうEA付いてきたりするけど 他の業者でも動くのかどうかは試したこと無い
start()内で無限ループしながらマウスを監視して擬似ボタンが押されたら オーダーを飛ばすとかいう方法でも、まあやってやれないこともない。 どれくらいのレスポンスが出せるかはやってみないと分からないけどね。
どなたか教えてください。 オプティマイズの順序についてですが パラメーターはランダムでしょうか? 何かの法則に基づいていますか? オプティマイズのグラフが前半よりも後半 がよい成績なのは単にパラメーターの偏りでしょうか?
>>708 パラメーターを一つずつ最適化してみればわかると思うよ
>>709 そうですね。
気がつきませんでした。
ありがとう。
>>708 > パラメーターはランダムでしょうか?
> 何かの法則に基づいていますか?
そのパラメータと時間的余裕によるんじゃない?
DDをなんとかしたいと思えば、SLからオプチ。
DDは満足だけどPFをなんとかしたいと思えば、TPからオプチ。
これからお出かけなら、オプチしたいのを全てチェックして放置。
>>708 そんなのがあるんですね。
知りませんでした。
あと766時間なのですがオプティマイズのグラフは
右肩上がりです。
一見してパラメータの偏りがわかればよいのですが
多すぎて絞り込めません。
我慢して待ちます。
ありがとう。
>>712 プログラマー的視点でみれば
上から順番か下から順番でネストしてるだろうと想像できる
そのほうがプログラミングが楽だからw
>>708 Genetic algorithmのことかな?
Expert propertiesのTestingタブにあるGenetic algorithmにチェックが
入ってるなら、後半の成績がよくなるはず。
大雑把に言えば、与えられたパラメータの範囲で、好成績を残す結果を
検索してるので、徐々に結果はよくなります。
遺伝的アルゴリズムで検索すれば、何が行なわれているか理解できるでしょう。
>>713 僕もそう思っていました。
>>714 やっぱり何かしてるんですね。
知りませんでした。
勉強してきます。
ありがとう。
ただ、オプティマイズって、本来いい成績を出すパラメータでカリカリにチューンするものではないからね。 0から100までオプティマイズして、1,2,3,と成績が出ないが、4で最高、あとは急激に成績が下がるが、30〜80では山なりで50が山の頂点。 こういう場合は、4を異常値と考えて、50をセットするな。
EA初心者の者です。 解決できない疑問があるのですが、どなたか御教授いただけないでしょうか。 ボリバン3σなどを突き抜けたときに売り注文を出したい場合、 その条件をプログラミングに起こすことは可能なのですが、 Strategy TesterのEvery Tickでバックテストを行った際、 設定した条件下でTickが動くごとに連続発注されてしまいます(当たり前なのですが…)。 ポジションの保有限界を1とすれば一応解決はするのですが、 それ以外に回避する方法を何かご存知ではないでしょうか? 僕が求めている一番の解決方法は、 「1つのローソク足で1度だけ条件を満たせば、その足で再度プログラムを動かさない。」 というものです。 最終的にはPrintを用いて、条件に合うデータを抽出し、確率(期待値)を計算することが目的です。 知識が乏しく拙い文章ですが、よろしくお願いします。
前回発注した時刻を覚えておけばいい。 その時刻と同じなら、発注しないようにすればいい。
フラグを立てるというのもあり
>>719 なるほど…。
記憶させるためにはどの関数を使えば良いかすぐに浮かばないのですが…。
わからないなりに少し調べてみます。
ありがとうございました!
>>721 グローバルな場所に変数を置くか、
static 宣言した変数を置くか、
環境変数に覚えさせるとかいろいろある。。
>>720 その方法も思いつきませんでしたw
もっと勉強します!
ありがとうございました!
>>722 static変数を置くのはイメージしやすいですね(僕の場合w)。
その路線で調べてみます!
>>723 if (TimeCurrent()-OrderOpenTime() < Wait) {
Return();
}
こんな感じでも出来るよ。
>>724 かなりシンプルですね!
確かにこれできれいに動くかも…。
ありがとうございます。
ただ、現段階ではオーダーはせず、全てPrint関数だけでデータを出そうとしています。
というのは、過去数年をさかのぼってM5チャートでテストしようとすると、必ず途中で資金不足になり中断してしまうからです。
(まだ条件検討中ですので…。)
そうなると、OrderSelect()関数を使うことができません。
これが一番頭を悩ませているところです…。
手入力で膨大な資金を設定すればいい
727 :
Trader@Live! :2011/03/26(土) 22:36:11.76 ID:5Hk5N78r
>>707 無かったよ
ブログに外部アプリが同梱してあるって
書いてあるけど実際には、入って無くて
スクリプトしか無かった
>>726 確かにwwwww
資金設定を変えたこと無いのでわからないですが、加えてロット数0.1にすれば長く持ちそうww
あとはOrderCloseを足が変わった瞬間にするとか…ですかね。
かなり力技ですけど、データは取れそうですね。
729 :
724 :2011/03/26(土) 23:35:36.62 ID:LJD4crVY
>>725 そうですか、それなら
datetime OOpenTime;
void hoge1() {
// ボリンジャーバンドの計算
double bbH1 = iBands(NULL, 0, BBPeriod, BBDev, 0, PRICE_CLOSE, MODE_UPPER, 0);
double bbL1 = iBands(NULL, 0, BBPeriod, BBDev, 0, PRICE_CLOSE, MODE_LOWER, 0);
if ( foo ) {
// OrderSend( … );
OOpenTime = TimeCurrent();
}
}
:
void hoge2() {
// if (TimeCurrent()-OrderOpenTime() < Wait) {
if (TimeCurrent()-OOpenTime < Wait) {
// ウェイトしている間の追跡処理
Return();
}
// ウェイト後のドテン処理? トレール処理?
}
こんな感じでしょうか?
> 全てPrint関数だけでデータを出そうとしています。
ん〜、オプティマイズに任せたほうが楽ですよ。
エクセルで取り込んで考えるのもアリですけど、目の前に膨大な処理を黙々とこなす計算機があるんですから。
85円、84円、83円とか、83,50、82,50とか ダブルオー00の節目のラインを表示出来るインジってある?
731 :
Trader@Live! :2011/03/27(日) 21:18:14.27 ID:GRMLTgWH
MT4をアンドロイドのスマホでも使えるようにしてほしい。
>>730 グリッドビルダーっていう、好きな間隔でライン引けるのがある
>>731 リモートコントロールか、業者謹製のツールを使うかになるよ。
個人的にはBlackBerry用が出てくれないかなあて思ってる。
734 :
731 :2011/03/27(日) 22:18:23.34 ID:GRMLTgWH
>>733 すいません。詳しく教えてもらえませんか?
>>734 アンドロイド MT4このキーワードでぐぐれば
それらしいのがヒットするから見てみ
始めて3カ月です 全く勝てません 本も20冊読んだけれど、実践につなぐことができません。 FXのスクールがあるようだけどこういう学校を利用して 基礎を作ると言うのはありでしょうか?
>>736 マジレスすると、無し。
金毟られて終わりだよ。
ちょっといい気分にさせてくれるかもしれないけれど。
>>736 MT4スレだから言うけど
自分の考えをEAに起こしてバックテストしてみるのが一番
いけそうだと思ったアイディアがことごとくダメダメなのを体験する
実践してたら、何度も破産したのと同じ
そのうち機能するアイディアがヒットする
そこでやっと実戦ていうのがいいと思う
バックテストで勝てたからといって実戦で勝てるとは限らないが
バックテストですら勝てないのが実戦では絶対勝てない
740 :
731 :2011/03/27(日) 23:35:39.71 ID:GRMLTgWH
>>738 それマジで痛感する
バックテストやってなかったら確実に破産してる
>>738 ぼくもそれでいままでやってたことが間違いだと気づいて全然取引しなくなりました。
いまは絶対いけるところでしかエントリーしなくなりました。
>>738 >いけそうだと思ったアイディアがことごとくダメダメなのを体験する
俺すぎてワロタw
おれのMT4今動き出した(;^ω^)
747 :
Trader@Live! :2011/03/28(月) 19:47:47.06 ID:voHEPrpG
チャート上で矢印のアイコンをインジの上に重ねると情報ボックスが表示されますよね? これすっごい邪魔なんですけど、消す方法ってありますか??
748 :
Trader@Live! :2011/03/28(月) 21:12:44.82 ID:LgCvfqJn
どうしてもわからないのでおしえてください。 成り行きでもったポジションに対して、OCO注文をだしたいのですが どのようにすればよいのですか。 右クリックで決済注文をだすところまでしかわかりません。 ここからどのような操作をすればOCO注文できるのでしょうか。 それから、注文にあたっては、現在のレートからある程度pipsはなれていないと注文が入りませんか。
750 :
Trader@Live! :2011/03/28(月) 21:25:32.00 ID:LgCvfqJn
わかりました!
751 :
Trader@Live! :2011/03/29(火) 02:27:48.48 ID:sb5UEa/n
うーんForex ukなんだけれども成り行き注文後のOCOはできないのかな。 ごく単純な成り行き後の逆指値を置きたいんだけど両建て→同時決済しかないの?
>>751 以下の内のどれかで行ってください。
その1 ポジを右クリックで→注文の変更または取り消しで逆指値を設定
その2 ポジのSL:決済逆指値の部分をダブルクリックで逆指値を設定
>>752 ワンクリック発注できるソフトみたいなプログラムって
ありませんか?
757 :
Trader@Live! :2011/03/29(火) 12:50:50.25 ID:VvCr7lIx
すいません EAの事ではないのですがMT4の画面でチャートやテスターやターミナルの画面を別ウィンドウで 開く方法を教えて下さい。以前なんかの拍子に別画面で出て別のモニタに表示できていたような記憶があるのですが どうやったらそうなったのか分からないです。
ねえ、めちゃ基本的だと思われること聞いていい?
>>759 ロジックは頭の中にあるけど、MQL4でEAを作り込むプログラミング力が無い場合、
1. EAやインディケータのソースを読みまくる。
2. 自分のロジックに使うプログラムの一つ一つを探す。
どっちがEA作成まで早いと思う?
両方必要だ
コーディングしなくてもEA作成できるサイトとかツールもあるよ
765 :
Trader@Live! :2011/03/29(火) 15:09:33.00 ID:sk+VTHKi
>>761 ここにロジックを書いたら、誰かが作ってくれる。
>>761 プログラミングもお絵かきと同じで、センスというかある種の才能が必要なのね。
今、プログラミング能力が無くても、センスのある人なら、
2.自分のロジックに使うプログラムの一つ一つを探す
ことを優先し、見つかったソースを読みまくる(1.) のが理解が早いと思う。
ただ、頭の中にあるロジックが 「ばい〜んと上がってへちょってなったところを売る」
みたいに、自分では再現可能なロジックであっても、プログラム化が困難なこともあるので、
気をつけて。
>>762 >>763 >>764 >>766 ありがトン。
Expert Advisor Builderは存在は知ってたけど見てない。
考えてるのは組み込み関数使わないタイプのEAです。
SLもTPも外部から数値入力しないので多分Builderでは無理だと思う。
基本はだいたいわかったのでソースを読むことを始めたんだけど、遅々として進まないので焦ってた。
>>765 ロジックを書いたら負けかなと思(ry
769 :
Trader@Live! :2011/03/29(火) 17:07:22.07 ID:VvCr7lIx
>>759 あっさりできました。すいませんでした。
>>767 有料のツールで作るのも一つの手段ですわ。
フリー期間が7日間だから、7日間で作っちゃえば無料。
EA Generatorでググってみてくださいな。
MQL5での出力も出来る。
例えば5分足のロウソク足のサブウインドウに 15分足のインジゲーター(例えばQQEの15分) を設定変更することできますか?
>>772 QQEの場合パラメーター入力の欄の数字が
SF 3
RSI Period 14
DARFACTOR 4.236
となってますが、、、
774 :
Trader@Live! :2011/03/30(水) 18:20:36.80 ID:O33GCQel
基本的な質問をさせてください。 小生、FOREX.com Japanの口座でMT4を使っています。 EAのバックテストするとき、資金の為替レートは既定値US$で、 EAのPropertyからその他のレートとして、ユーロやポンドなど を選べますが、JPYenはありません。 JPYenで損益評価するために皆さんどのような工夫をされていますか? 仕切りの損益が逆数で算出されると直感的にわかりずらい。
インジ「ケ」ータ、な。 見かける度に直すんでよろしく。
>>774 「JPY」ってUSDって書いてあるところに直接書きこむと不思議なことに出来る。
777 :
Trader@Live! :2011/03/30(水) 20:42:51.62 ID:WQplunZI
778 :
774 :2011/03/30(水) 21:07:48.03 ID:O33GCQel
>>776 サンクスです。
問題なくできました。
また不明な点があったらよろしくお願いします。
>>773 なんか3倍しても微妙に違うんですが
誰かアイディアお願いします
EAやインジケータによっては単語の間に半角空けたり空けなかったりするのはエラーにならんのね。 けっこうアバウトなんだな。
上手くて賢くてエロい人頼む! エントリーしたそのキャンドルが、完成時に含み益ならそのまま持ち越し、含み損ならロスカットするのは?
>>783 1.新しいキャンドルが出来始めた瞬間に1度だけ動く関数を作り
2.その関数では、現在保有中のポジションを列挙し、
3.ポジションを持った時刻(OrderOpenTime)が、2つまえのキャンドルより新しく、
現在のキャンドルより古いものを選び出し、
4.そのポジションのOrderProfit がマイナスなら OrderClose すれば
いいと思う。
>>784 X分足の始値でポジオープンして、X分後に足が完成したときに含み益ならそのままホールド、含み損ならポジクローズってことが言いたかった。
>>785 >>786 (´・ω・`) n
⌒`γ´⌒`ヽ( E) 君らのトレードに幸あれ!
( .人 .人 γ ノ
ミ(こノこノ `ー´
)にノこ(
>>787 両建てということだな
簡単にできるから、だれか作ってくれるよ
>>787 #define DC_TICKET 0
#define DC_TIME 1
static int size = 0; static int dc[][2];
void DC.AddTicket(int ticket) {
for (int i = 0; i < size; i++) if (dc[i][DC_TICKET] == 0) break;
if (i == size) { size++; ArrayResize(dc, size); }
dc[i][DC_TICKET] = ticket;
dc[i][DC_TIME] = Time[0];
}
void DC.DoCheck()
{
for (int i = 0; i < size; i++) {
if (dc[i][DC_TICKET] == 0) continue;
if (dc[i][DC_TIME] == Time[0]) continue;
OrderSelect(dc[i][DC_TICKET], SELECT_BY_TICKET);
if (OrderProfit() > 0) { dc[i][DC_TICKET] = 0; continue; }
OrderClose(ticket);//引数覚えてねーわw
}
}
手なりなんでティックの度にチェッカーが全検索するという
間抜け仕様だけど、流れとしてはこんな感じじゃね?
バックテストやってると、どうしてもカーブフィットとの戦いになるな 何か良い方法無いかの…
792 :
787 :2011/03/31(木) 23:43:15.38 ID:ikGWwWVd
>>790 ID違うけど昼間の783、787、788だよ。
帰宅したらレスあって、めちゃ感謝!わざわざアリガトン!
わからない部分もあるけど、これを元に自分なりに改造してみますわ。
793 :
Trader@Live! :2011/04/01(金) 02:20:41.30 ID:q5dfIvJ2
EAを作る上での基本的な質問をさせてください。 エントリや仕切りの条件で使う価格は、次の2つのがあるようだけど、 (1)足が未確定時点の最新価格 (2)足が完成後の確定価格 どちらを使うかで結果が変わってくるので、状況に応じて適切に選択する必要がありますよね。 まだ十分に評価しきれていないですが、個人的には、 (1)でいけば、EAへの価格の折り込みが相対的に早くなるので、先手必勝が有利な状況ではこちらを選択する。 しかしながら、ザラ場中の細かいノイズ的な価格まで選択すると、インディケータの判断も誤る可能性もある。 (特に日本株のような終値を重視するタイプ。) そんな場合には(2)の確定価格を用いるのが望ましい。遅効的ではあるが、確実性を優先する。 かなと。 これ以外でどちらを選択するかに当たっての重要と思われる判断基準などあったり しますでしょうか? 2ケースでバックテストを行って結果判断というものありますが、場当たり的 であまり効率的でなく、的を得ていないと個人的には思います。
DDEで取得した値のlowhighを30分毎に参照するにはどうすればいいの
>>793 どんな思想でEAを作るかで、(1)か(2)は変わると思いますよ。
そこら辺はお考えの通り。
それ以前に、
(3)足が完成している一つ短い期間の足の確定価格を使う。
という折衷案もあります。(M4ならM1を、M30ならM15を)
>>795 > (M4ならM1を、M30ならM15を)
(H4ならH1を、M30ならM15を)の間違い スマソ
797 :
793 :2011/04/01(金) 10:48:25.44 ID:q5dfIvJ2
>>795 なるほど。
そういうやり方も考えられるのですね。
これから自前のEAを試しに作るときに参考にさせていただきます。
ありがとうございます。
FXDDのデモ口座でいろいろお試しをしています。 一度に注文をいれられるのが100?99?くらいのようなのですが これはMT4の仕様でしょうか? 例えばUSDJPYで100円〜80円まで1銭刻みで買い注文を出したい場合 同じ口座で別のMT4を3つ立ち上げる必要がありですか? なにか解決方法があればご教示お願いいたします。
>>799 返信いただきありがとうございます。
MT4の仕様なのですね。
自動売買は放置できるのがメリットと考えている私は
過去の最高値から最安値までカバーできるような
(いわゆるトラリピのような)注文を出しておきたかったのですが
細かく出しておくのは不可能ということですね。
理解いたしました。
>>800 トラリピでも100個もポジ持つなんて考え難いです。
トラリピEAを配布している方がいらっしゃいますので、ググってみて下さい。
ここで紹介するのも気が引けますので
バックテスト用にEUR/USDで下5桁まである1分足の データが欲しいのですがHistory centerだと一ヶ月分しか無いんですがどこで入手するんでしょうか?
ブローカが違うだけで、配信しているレートの時間も異なるから中々無いのが現状かな ちなみにどこのブローカ?
>>803 fxddとForex.comです
やっぱり無いのか自分でためとくしか
無いんですねなかなか良いEA作れたけど
テストが1ヶ月しか出来ないのは
信頼性に掛けるので欲しかったんですが
しょうがない今後貯めてきます
>>805 今パソコン動かせないので確認出来ないのですが
ここのデータはEUR/USD 下5桁までのデータ何でしょうか?
forex.comは4桁でしょうよ だから4桁です
ああ、ちなみにFXDDだったらFxProの奴なら使えるかもしれないね 鯖時間同じだから
Forex.comのproだと5桁なのですが 駄目なんでしょうね fxpro今度ためしてみます
へーproってのがあるんだー 知らんかったですw どちらにしろ、他のブローカのデータを使う場合は 鯖の時間(気配値)が同じ時間帯のじゃないと意味は無いよ
初心者です。どなたかご教授お願いします。 ポジションを持った足の、すぐ次の足の始値で決済したいのですが、どう書いたらいいかわかりません。 よろしくお願いします。
812 :
Trader@Live! :2011/04/03(日) 00:29:27.26 ID:On4iN0aA
100PIPsの長さのローソク、もしくは棒、縦線等をチャートに 置いて自由に動かせるような、方法ありませんか? 100PIPsは色々変えられると尚良いです。
>>811 >>812 もう少しまともな日本語で説明してもらわないと意志の疎通が・・・ひどすぎるよ
正直ゆとりまるだしだよ・・・
>>811 ポジッた足の ポジッタ時にフラグを立てる
次の足で 新しい足ができたときにフラグが立っていたら
決済 決済オーダーを出す、そしてフラグをクリア
815 :
Trader@Live! :2011/04/03(日) 01:45:29.06 ID:On4iN0aA
>>813 ズバリw 平成生まれですw
どう説明したらいいかな〜
チャート上に長さを変えられる縦線を引きたいんですよ。
50PIPSの長さの縦線とか、、、、
MT4ファイルメニューの挿入>ラインっていう所に垂直線とか水平線とかあるんだけども、それでは駄目なんですかね?
>>811 #define BLOCK_SIZE 16
static int size = BLOCK_SIZE;
static int pointer = 0;
static int tickets[BLOCK_SIZE];
void setTicket(int ticket) {
if (pointer == size) size = ArrayResize(tickets, pointer + BLOCK_SIZE);
tickets[pointer] = ticket; pointer++;
}
void doCheck() {
static datetime prevtime = 0;
if (prevtime == Time[0]) return;
for (int i = 0; i < pointer; i++) {
if (!OrderSelect(tickets[i], SELECT_BY_TICKET)) continue;
OrderClose(tickets[i], OrderLots(), OrderClosePrice(), 2147483647);
}
prevtime = Time[0];
pointer = 0;
}
int start() { doCheck(); int ticket = OrderSend(...); setTicket(ticket); }
818 :
Trader@Live! :2011/04/03(日) 17:50:42.90 ID:L7uUetbk
すいません バックテストなんですが、EAをセットしてバックテストしたら全然関係のない位置で指値や決済が行われています。 セッティングタブの「expert properties」の箇所もそのEAのパラメータに合わせて変えねばならいのですか? 沢山EAを読み込んでテストしたいのに毎回変えるのは辛いです。>< 仕様でしょうか?
>>818 >全然関係のない位置で指値や決済
自分で改良していただくなり、何某かの対策を採って下さい。
変更したパラメータはSAVEボタンを押してセーブすれば、変更したパラメーターが保存されます。
使用時にLOADボタンを押してロードして下さい。
セーブ時に保存されるsetとという拡張子のファイルがそれです。
821 :
Trader@Live! :2011/04/03(日) 23:46:10.58 ID:GXLZxSuX
オフラインチャート開こうとしたら MT4が固まってしまうんだけど・・・ 何が原因??
>>821 重たいインジでも動いてるんじゃね?
FX5のインジとか、処理する足数を制限してなくて愚直にあればあるだけ計算しようと
するから、初回起動時とかアホみたいに重かったりする。
MT4のインジはメジャーな物でも(プログラム的には)意外と低レベルな物が多い。
823 :
Trader@Live! :2011/04/04(月) 00:12:54.12 ID:X9doqr+q
>>822 ボリバンと移動平均くらいしかだしてないんだが・・・
ほんとに困るわ・・・
オフラインチャートのテンプレートを変えてみろ
825 :
Trader@Live! :2011/04/04(月) 06:44:04.51 ID:zMH2pvWZ
5時とか6時から見れるサーバありますか?
826 :
Trader@Live! :2011/04/04(月) 07:58:43.98 ID:oXJQj0pr
よろしくお願いします。 スケールの固定にチェック入れて 上限設定、下限設定しても、レート横の白いバーを上下に動かしてるうちに 上限設定、下限設定の数値が勝手に変わるんですが、これはどうにかならないんでしょうか?
827 :
Trader@Live! :2011/04/04(月) 08:32:06.58 ID:oXJQj0pr
補足 スケールの固定 → チャートの視点を下に持っていく → 今度は上に持っていく すると上に行ける幅が狭まっていて、また上限設定を入力し直さないといけない。 説明がヘタですいません。意味が通じますでしょうか?
初めまして。 どこを検索しても詳しく出てこないので質問させてください。 ログインすると、操作履歴にログイン時間が表示されますよね。 その後に、「 DataCenter connecting failed [6]」という履歴が出てきます。 これはどういった意味なのでしょうか? 申し訳ありませんが教えて下さい。
データセンターへの接続に失敗しますた。
>>829 ありがとうございます。
状況として、ログインが出来ていないという解釈でいいのでしょうか?
831 :
Trader@Live! :2011/04/04(月) 12:50:55.80 ID:YnfaZv95
>>819 遅れました。うまくできました。助かり感謝します。
>>830 必ずしもそうとは限らないけれど、おおむね、そんな理解でよいと思うぞ
>>832 ありがとうございます。
2回ほどログインを繰り返したら表示されなくなりました。
先週から自動売買を行っていますので心配でした。
リファレンスを出力して豆本化して、暇な時に読んで暗記してるお。 努力のベクトルが間違ってないか、不安だお…。
835 :
Trader@Live! :2011/04/04(月) 20:02:39.30 ID:zMH2pvWZ
日経、ダウ先物、原油、金、債券金利などのチャートを見たいのですが、ググっても古い情報ばかりで鯖が死んでてつながりません 探せばまだあるのでしょうか?
5分足の移動平均のインジケータを作成しています。 その中に30分足の移動平均も表示したいのですが うまくいきません(5分足のチャートなので30分足は 階段状に変化しないとおかしいですよね?) 下記のように移動平均をしましたが、何が間違っているでしょうか? 5分足 BB_Period=20; TimeSpan=5; 30分足 MA = iMA(NULL,TimeSpan,BB_Period,0,MODE_SMA,PRICE_CLOSE,i); BB_Period=20; TimeSpan=30; MA = iMA(NULL,TimeSpan,BB_Period,0,MODE_SMA,PRICE_CLOSE,i);
838 :
Trader@Live! :2011/04/04(月) 20:52:07.03 ID:zMH2pvWZ
>>839 ありがとうございましたm__m
関数にしておくと、使いやすそうです
842 :
Trader@Live! :2011/04/05(火) 09:47:28.01 ID:VN1XGCDq
スクリプトを実行しようとするたび 「Do you permit to call function 'GetParent' from 'user32.dll'」 というメッセージが出てきます。翻訳すると "あなたは、'user32.dll'から機能'GetParent'と呼ぶのを可能にしますか?" という事らしいんですが、全く持ってちんぷんかんぷんです。 どうしたらこのメッセージが出てこないように出来るでしょうか?
>>842 DLLの実行を許せば、DLL製作者の意図次第で何でもできちゃう。
それこそ悪意を持って作られたDLLならHDD丸ごと吹っ飛ばすことだって出来る。
ってことで・・・・・・
MT4のメニューからツール→オプション→Expert Advisorsと辿ると
□Allow DLL imports//DLLの利用可否
□Confirm DLL function calls//呼び出し前に確認するか
無条件でDLLの実行を許可するなら、Allow DLL importsをチェック、Confirmを
アンチェックすればいい。
844 :
Trader@Live! :2011/04/05(火) 15:51:05.31 ID:VN1XGCDq
DLLじゃ信用出来るまでSEND BOXの中で動かす事をお勧めしたいが
どこに送る気だ
サンドボックス言いたかったんじゃあるまいか?
質問よろしくお願いします。 ショートカットキーAlt+Tabでアクティブなウィンドウを切り替えるというのがありますが、 これをMT4内だけで行う方法を探しています。 例えばMT4を3つ起動、その他にFirefoxやFX取引システムも起動していたとして、 この中でMT4のアクティブだけをショートカットで切り替えたい・・・という使い方です。 こういうのは結構ありがちと思って検索ワードを色々変えて さんざんググったのですが、ついに見つからず・・・もし知っていたら教えてください。
>>848 MT4 3つをタブウィンドウにまとめたらいいんじゃないか?
あるいは、AutoHotKeyでがんばるか。。
>>849 アドバイスありがとうございます。
AutoHotKeyは大変便利で使っています。ただ、自分でコードが書けないんですよね・・・
人の書いたコードをコピーして該当のキーやIDの部分を書き換えるくらいなら出来るんですが・・・
タブウィンドウにまとめるというのが気になったんでこれから調べてみます。
>>848 >例えばMT4を3つ起動、その他にFirefoxやFX取引システムも起動していたとして、
全く同じウィンドウの出し方してますな.。
わての場合は例えばじゃなく全くその通りですけど。
分かったら教えてくださいm(_ _)m
window tabsで解決しますた ありがと
>>851 自己解決されたそうで良かったです。お役に立てず申し訳ない。。。
で、色々調べた結果、やっぱりAutoHotKeyでなんとかしたい。
^H::
if(X != 1){
GroupAdd, MTWW, ahk_class MetaQuotes::MetaTrader::4.00
Winhide,ahk_group MTWW
X := 1
}else{
Winshow,ahk_group MTWW
X := 0
}
return
これは「起動してるMT4全てをを隠す/戻す」のコード(出展:とあるmt4備忘録)なんですが、
これを「起動してるMT4のアクティブを切り替える」に改造するのは全くの素人でも検索次第で出来ますか?
もし参考になるサイトがあれば教えて欲しいです。
下記のようなEAを利用してトラリピを行っています。
http://ourfilehost.net/up/file1/img/up3210.txt ご覧いただければわかると思うのですが
1本追加するたびに、新しい変数や新しい関数を用意して、値段も固定で、と
かなりイマイチなEAです。
上記を初期値段と幅とロット数を指定するだけで
ぱっと注文を出せるEAに変更するにはどのあたりをいじったらよろしいでしょうか。
指値と逆指値の両方の注文を出したいです。
一方しか通らないことを利用して同じ値段でstopとlimitを同時に注文するようにして
両方の注文を出すようにしています。
(本当は現在の値段と注文を比較してstopとlimitを切り替えたかったですが
同時発注で実現できたのでここはあまり重要視していません。)
アドバイスなどいただければと思います。
>>854 ソースワロタw俺もトラリピEA作ってるけど
配列利用するとかコードの効率化についてはまだまだ改善の余地があるよ!
今日は疲れてるので細かい指摘は他の人に任す。もしくは明日以降気が向いたらなんか書いたる
指摘というか、すごいなw
>>853 これを試して。。
#g::
GroupAdd, MTWW, ahk_class MetaQuotes::MetaTrader::4.00
GroupActivate,MTWW
return
858 :
Trader@Live! :2011/04/07(木) 11:27:50.09 ID:JeahsLey
MT4はOSが Windows7 Home Premium 正規版 64ビット でも 問題なく作動するのでしょうか? 教えて下さい。
>>858 Cドライブ直下にフォルダ作って、そこにインストールすれば問題ないと思う。
860 :
Trader@Live! :2011/04/07(木) 14:10:40.90 ID:JeahsLey
>858 問題ないよ。確実を求めるなら>859で。
別ドライブでもおk?
おk
d
今FXCMデモサーバがGMT+0だけど そうすると冬はGMT-1になるの?(日本との時差8)
867 :
びんた :2011/04/08(金) 14:05:12.04 ID:WLlIdfdD
>>834 リファレンスなんて、どんなのがあるか一通り見ておいて、
必要に応じて調べなおせばいいんじゃないか?
明らかに努力のベクトル間違えてるよw
チャートを眺めて必勝法を妄想してたほうがましじゃね?
っと、釣られてみる。
EA開発初心者です。 一つ質問させてください。 デフォルトで入っているカスタムインジケーターのZigZagから iCustom関数を使って前回高値や前回安値の値を持ってくるにはどうしたらいいですか? Indexが3つあるんですがどれがどの値なのかよくわからないです。 親切な方どうかよろしくお願いします。
>>854 今からなんとかしちゃる。金曜中に出来上がるといいな。。。
871 :
タイラー :2011/04/08(金) 19:55:17.52 ID:eeyDYw7D
872 :
タイラー :2011/04/08(金) 20:04:06.09 ID:eeyDYw7D
…やっぱりdeinit時に残ってるリーブオーダーを全削除する機能も付けたほうが良かったかな? でもリーブオーダーって普段使わないから消し方分からなかったのよねw 誰か知ってるエロい人教えて!
874 :
タイラー :2011/04/08(金) 20:29:10.93 ID:eeyDYw7D
>>873 多分それです、ご丁寧にありがとうございます。そこまでは分かるのですが…
そうすると今度はticket番号を所得する方法が分からないのです><
ticket所得〜OrderDeleteループ内で[実際に注文済みのオーダー]と
[待機中の注文]の区別の仕方もわかりませんし…
待機中の(逆)指値注文の事をリーブオーダーと
言ってしまいましたが違うのでしょうか?
876 :
タイラー :2011/04/08(金) 21:04:02.68 ID:eeyDYw7D
>>875 以下で実装できました。感謝、爆益あれ!
お陰さまで少しだけ自分に出来ることの幅が広がりました。
int deinit()
{
//----
//deinit時にリーブオーダーをキャンセル
for (int i = 0 ; i < repeatkaisu; i++)
{
if (OrderSelect(i,SELECT_BY_POS) == true)
{
if (OrderType() == OP_BUYLIMIT)
{
OrderDelete(OrderTicket());
i--;
}
}
}
//----
return(0);
}
877 :
854 :2011/04/08(金) 23:08:11.17 ID:1h2ijPY9
>>871 コピペ力ワザで複数注文を出していた854です。
これからダウンロードして勉強させていただきます。
取り急ぎの御礼です。また後ほどやってこようと思います。
878 :
Trader@Live! :2011/04/09(土) 00:40:58.90 ID:lxTQf2FD
>>878 これをstart関数のreturnの前にはれば表示できるはず
位置とか色とか文字の大きさは自分で適当にいじってください
ObjectCreate("range",OBJ_LABEL,WindowOnDropped(),0,0);
ObjectSet("range",OBJPROP_CORNER,0);
ObjectSet("range",OBJPROP_XDISTANCE,5);
ObjectSet("range",OBJPROP_YDISTANCE,15);
ObjectSetText("range",DoubleToStr(UpZone[0]-DnZone[0],2),24,"Arial",White);
880 :
878 :2011/04/09(土) 09:55:36.48 ID:lxTQf2FD
881 :
853 :2011/04/09(土) 14:07:31.00 ID:3kNIG0dH
>>857 ちゅるや! ◆8ngyOCkzjs氏ありがとございます!
これこそ正に自分の求めていたものでした!
今まではチャートの組み表示を替える、でやっていたのですが
自分は6画面マルチディスプレイ一杯に1つのMT4を広げて
その中でチャートを複数表示させていたので、処理が重くなってしまい
組表示を変えるのに3〜4秒かかるのがネックでした。
別に起動させてるmt4自体を切り替えるなら、そういうラグも無いので大変快適。
さらにそれがキー操作だけでできるとはありがたすぎます。
結局自分ではどうにもならなかった問題なので助かりました<(_ _)>
手動で建てたポジションに後からマジックナンバーを付けることは出来ないのでしょうか?
うん。それ無理。
>>882 手動でエントリーするEAを作って初めからマジック付けとくのがいいよ
EAというより、注文専用スクリプトだな
既に手動で建てちゃったポジションを、同一通貨で動かしているEAでナンピン決済したいのですよ。 後からマジックナンバーを付ければいいんじゃないかな?と思って裁量でナンピンしちゃったので。 で、いざマジックナンバーを付けるように注文変更しようとしたら、何と!方法が見つからなくて・・・
>>886 そいじゃあマジック使わないEAでナンピンすればよい
久々にFXを再開しようとMT4を起動したら「update」を要求されたんですが どうやってupdateしたらいいのでしょうか??
新規にMT4をダウンロードしてインストールすればいい
おいおいw 言われるままにボタンをポチポチしたらアップデートできるでしょ もしwin7なんかでプログラムファイル以下にインストールしてる場合はアップデートできないから C直下等にインストールしなおし
>>889 1度アンインストールしてからじゃないとムリですか?
上書きでは無理でした。
>>890 「言われるままにボタンをポチポチしたらアップデート」できないから質問してるのかなと思ったw
>>891 アンインストールしてもよいけど、Cドライブ直下に別フォルダ作ってそこに入れるのがいいよ
>>890 C:\Program Files (x86)\MetaTrader 4
なんですけどアップデートできないです。
>>893 フォルダ名にスペース空いてるようなのは余り良くないですよ。
C:\MT4やD:\MT4_001とかにインスコがオススメ。
>>895 C:\MT4で作成したらいけました!
C:\Program Files (x86)\MetaTrader 4で使用していた設定方法を使う場合は
MetaTrader 4に入ってるファイルをC:\MT4にまるまる入れたらいけますか?
>>894 よくアニメ・映画なんかである、警告ダイアログが画面に次々と現れるシーン、
みたいな感じに思っちゃったw
>>898 昔、アクセスすると、システム侵入されていく様子が再現されるサイトがあった
一瞬あせったが、画面がUNIXでマシンはウィンドウズだったので
あほなことしやがってと覚めた目で見ていたw
UNIX使ってたら、ビビリまくってたかも
>>897 設定ファイル類をそのままコピーすれば特に問題なく使えたはずです
日本のMT4は日足が6本だからEA作ってバックテスト、運用しようとしても お門違いなことになると思うんですが、皆さんどうしているんだろう。 外国の業者は何か怖いんですが… あと外為ジャパンがMT4を始めるらしいですがそれもやっぱり6本なんですかね。
←?↑?→?↓?←?↑?→?↓?←?↑?→?↓?←?↑?→?↓?←?↑?→?↓?←?↑?→?↓?←?↑?→?↓?←?←?↑?→?↓?←?↑?→?↓?
>>901 5分足か時間足(時間足でいいと思うが・・・・・・)から仮想日足を生成して、演算対象を
その仮想指標配列にすればいい。
EA的にはチャート上にどう表示されてるかは関係ないんだから、それで別に困らない。
>>900 設定ファイル類はどのファイルになるか分かりますか?
全部丸ごとだとダメそうですね。
>>905 ありがとうございます
URL先に行って参ります
スタート関数の中の外部宣言済み配列に定数を入力することは可能ですか? 例えば Buf0[i] = 1; のように書いてもエラーは出ないものの、実際には何も表示されません。 どうしたらよいのでしょうか?
if(@) if(A) if(B) { C } こう書いた場合は、@かAかBのどれかが成立すればCを実行という風になりますか?
>>907 可能だけど、配列を使う前にArrayInitialize()が必要。
それ以前に、start()で毎回配列を初期化?
無駄な処理な気がする。
>>908 全て成立しないとCは実行されないよ。
if(@ && A && B)
{
C
}
と同じ。
> どれかが成立すればCを実行
それなら、
if(@ || A || B)
{
C
}
とすれば良し。
>>909 ありがとうございます。早速試してみます。
たびたびすみません。 やはりうまくいきませんでした。以下にソースを貼りますのでおかしな点指摘いただけませんでしょうか? 目的はma001・ma002の値が変わるまでずっとその値を連続的に(直線)表示したいです。 double Buf0[]; static double ma001; static double ma002; static int time001; static int time002; int init() { SetIndexBuffer(0,Buf0); return(0); } int start() { int limit = Bars - IndicatorCounted(); for(int i = limit - 1; i>=0; i--) { double ma0 = iMA(NULL,1440,7,0,0,0,i); double ma1 = iMA(NULL,1440,7,0,0,0,i+1);//1つ前の移動平均値 double ma2 = iMA(NULL,1440,7,0,0,0,i+2); if(ma0>ma1 && ma1<ma2) ma001 = iMA(NULL,1440,7,0,0,0,i); if(ma0<ma1 && ma1>ma2) ma002 = iMA(NULL,1440,7,0,0,0,i); if(ma0>ma1 && ma1<ma2) time001 = Time[i]; if(ma0<ma1 && ma1>ma2) time002 = Time[i]; } for(i = limit-1; i>=0; i--) { if(time001>time002) Buf0[i] = ma001; if(time001<time002) Buf0[i] = ma002; } return(0); }
>>911 なぜ上のループと下のループを分けるの?
それじゃBuf0の中身は全部同じになっちゃうでしょうに。
で、できました! ほんとにありがとうございます。
今から始めるならMT5の勉強からしたほうがいいかな?けど教材が少ない…
目的は相場で儲ける事じゃないか ならば道具は何だっていいと思う 4だろうが5だろうが所詮道具
4が使いこなせないような人には5は難しいよ
どうせ使うなら道具は便利な方がいい。 けど、MT5ってもう実稼働してるんだっけ?デモトレードのみかと思ってた。
918 :
Trader@Live! :2011/04/11(月) 15:39:09.22 ID:781QoGd4
>>918 EA開発スレかMetaTrader初心者スレで質問しないと回答無いと思うよ。
920 :
Trader@Live! :2011/04/11(月) 16:25:37.33 ID:781QoGd4
sage 忠告ありがとうございます。
どこと間違えたw
>>918 やってみてうまくいかなかったのなら
こうやったけどこうなったというのを言うと
食いつきがいいよw
924 :
914 :2011/04/11(月) 17:20:26.08 ID:02W8gHdb
ラインを矢印にしたいだけなら、こんな感じ int init(){ IndicatorBuffers(3); SetIndexBuffer(0, Uptrend); //ArraySetAsSeries(Uptrend, true); SetIndexBuffer(1, Dntrend); //ArraySetAsSeries(Dntrend, true); SetIndexBuffer(2, ExtMapBuffer); ArraySetAsSeries(ExtMapBuffer, true); // SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); // SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2); SetIndexStyle(0, DRAW_ARROW, STYLE_SOLID); SetIndexStyle(1, DRAW_ARROW, STYLE_SOLID); SetIndexArrow(0, SYMBOL_ARROWUP); SetIndexArrow(1, SYMBOL_ARROWDOWN); IndicatorShortName("Hull Moving Average("+period+")"); return(0); }
チェックサインしたつもりが価格を左に表示をクリックしてしまい、出てしまった価格がどうやっても消えないんですが、どうやったら消えますか
927 :
Trader@Live! :2011/04/11(月) 18:20:49.58 ID:781QoGd4
>>926 Ctrl + B 押してから考えてみて。
929 :
Trader@Live! :2011/04/11(月) 18:44:55.93 ID:8tSyu7a+
>>920 sageは本文じゃなくて、メアド欄に書くのよ
>914 英語圏と中国語圏にいくらでもある。日本語圏は少ないが。
932 :
926 :2011/04/11(月) 22:32:05.17 ID:6KE++XHz
>>927 初心者には無理
やるとしたらもう1つEAもしくはインジ作ってiCustumでBigtrend呼び出して
トレンドの切り替わりを判断っていう流れが正常なんだろうけど
ずぶの素人には無理な話
誰か親切な人がやってくれるのをまつか、諦めるか
>>927 まあ中身はHMAなんだけどね。
SlopeLineとかMegaTrandなんて名前で期間だけが違うのがある。
因みにHMA4と中身は同じ。
935 :
Trader@Live! :2011/04/11(月) 23:19:12.33 ID:781QoGd4
>>933 難しいのは承知で勉強しています。
だから少しずつでも諦めずやります、ご忠告ありがとうございます。
>>934 中身がHMAであることは知ってました、ただHMAのほうはさらに複雑だと
感じたので先ずはBigtrendからと思い選択しました。
一応参考書としてメタトレーダー入門編と実践プログラミング編、
自動売買ロボット作成マニュアルを使ってるのですが、なかなか思うように
習得できず悩んでいます。
何かこれをやったほうがいいよとかいうのはないでしょうか。
例えば、○○のサイトやブログがいいよなど・・・
是非アドバイスのほうよろしくお願い致します。
937 :
Trader@Live! :2011/04/11(月) 23:35:29.00 ID:781QoGd4
>>936 ありがとうございます。
参考にさせていただきます。
愚問ですが、他人が書いたEAやインディケータを改造をするのにも
中見を解析し理解しないとできないですよね?
そのようなときはどのように進められたのですか?
>>937 MQLのリファレンスは見てる?
まずそれだよ
iCustom関数でZigZagを使用する時にshift値をずらした場合、どの値が返ってくるのでしょうか? どうもZigZagは転換ポイントの値のみを扱っているように思えてしまうのですが 例えばshift値を1とした場合、前回の転換ポイントの値が返ってくるわけではないのですか? もしそうでない場合、1つのバーごとにZigZagの値が保存してあるということになると思うのですが そうなると、shift値1は一つ前のバーのZigZag値ということになりますよね。 つまりZigZagは転換ポイントを結んでいる線の間にもバーごとに一つ一つ値が格納されているということになるのでしょうか。 しかしながらZigZagには線が確定しない間がありますよね。 その場合一体どうなってしまうんでしょうか。 どこからshiftするのか、shift先に線がない場合どうなるのか、さっぱりわからないのです。 どなたかどうかお知恵を貸して頂けないでしょうか。 よろしくお願い致します。
941 :
Trader@Live! :2011/04/12(火) 00:01:57.22 ID:781QoGd4
>>938 はい、MetaSysSeekerを参考にしています。
>>939 こんなのがあったんですね!
ありがとうございます、早速比較してみます。
>>940 実際に shift 値を 0から200ぐらい変えて、どんな値が得られるか調べたらすぐにわかるんじゃないか?
>>940 ZigZagのソースは読んでますか?
まずはこれを落として下さい。
ZigZagWithJComment.mq4 (Zigzag.mq4の各行に日本語コメントをつけてみた)
ttp://d.hatena.ne.jp/ApprenticeAsDragonhunter/20100816/1281912656 > しかしながらZigZagには線が確定しない間がありますよね。
> その場合一体どうなってしまうんでしょうか。
> どこからshiftするのか、shift先に線がない場合どうなるのか、さっぱりわからないのです。
ZigZagは以下のforループが二回登場します。
for(shift=limit; shift>=0; shift--)
{//見つかったZZ点から今のバーまでの各バーについて
よってtick毎に過去から現在まで、全部再計算する事が判ります。
確定しない間どうなるか?と言うより、しばらくの間確定しないアルゴなのです。
944 :
940 :2011/04/12(火) 03:08:04.37 ID:nDopewsl
ZigZagソース読んできました。 複雑過ぎて、というか自分の頭が弱すぎてよくわからないです…… 弱い頭で解釈した結果(iCustomで指定する)shiftが0で、そのバーに暫定ZZ点がある場合 ZigzagBufferに暫定ZZ値 LowMapBufferに0 HighMapBufferに0 暫定ZZ点がない場合 ZigzagBufferに0 LowMapBufferに0 HighMapBufferに0 shift1以上でそのバーに高側ZZ点も低側ZZ点もない場合 ZigzagBufferに0 LowMapBufferに0 HighMapBufferに0 shift1以上でそのバーに高側ZZ点がある場合 ZigzagBufferに0 LowMapBufferに0 HighMapBufferに高側ZZ値 shift1以上でそのバーに低側ZZ点がある場合 ZigzagBufferに0 LowMapBufferに低側ZZ値 HighMapBufferに0 このように数値が格納されていると解釈しましたが合ってますか。
>>940 暫定の話は置いといて、
ZigZagの頂点があるバーだけ、ZigzagBufferに値が入ってる。頂点じゃないバーは0が入ってる。
ただし最新の頂点はチャートの動きによって更新される。
回線不通にはならないのですが、チャートが数秒止まったりする事があります。 皆さんどこのサーバー使ってますか? 為替のチャートでオススメなどあったら教えて下さいm(_ _)m
1次元配列はArraySortがありますが 2次元配列の場合はどうすればよいですか? 例えばbuf[][1]をキーとして並べ替えたいと思っています
>>946 それはサーバが悪いんじゃなくて、
クライアントの処理が重すぎて更新が間に合わないか、
サーバまでの回線が細くて更新データが届いてないんじゃないかな。
>>947 2次元配列の場合は自分でソート関数を書けばいい。
ワハハ、MQL4は面白いだろ?このクソ言語が!w
>>949 関数やライブラリの有無と、言語仕様とは関係ないよ。
DLLの中で計算させれば、MQLの仕様なんて大した問題じゃないだろ
チャートの日付表示を4/12とかに変えられますか?
マルチタイムフレームの一目均衡表を探しているのですが、どこか公開しているところはないでしょうか Forex-TSDのところは既に停止されていて、もう一つの所も停止済みでした・・・
954 :
Trader@Live! :2011/04/13(水) 09:50:36.69 ID:UQkaCLfn
新しい足が出来た時に、ってのを判定する関数教えてイケメン達
Time
bool IsNewBar() { static datetime prevtime = 0; if (prevtime == Time[0]) return (false); prevtime = Time[0]; return (true); } 1回目の呼び出しに対して必ずtrueが返るけど、init()内で一度呼び出しとけば問題ない。 気に入らないなら、if (prevtime == 0) prevtime = Time[0];を追加してもいい。 けど、初期化用の条件判定が毎回呼ばれるのはあまりにも非効率だと俺は思う。
この関数はstart()内でも1回しか使えないので注意。2回目は必ずfalseになってるから。 複数の判定に使う場合は頭の方で判定させておいてその結果を使い回すようにね。
初心者です。バックテストがすごく遅いんです。4コアのうちの1個しか使ってくれません。マルチコアを使う ようにできないのでしょうか? また、EveryTickをControl等変えても問題ありませんか?その際時間足との関係はどうなるのでしょうか? 例えばControlに設定して時間足を1H にし、拾ってきたEAで動きを見ていると毎秒のデータは貰っているけど 毎時にしかトレードしないように見えます。
959 :
Trader@Live! :2011/04/13(水) 22:50:28.27 ID:JBqdWjFX
質問させてください。 ある参考書で価格と指標の交差で売買シグナルを出すという プログラムで // オープンポジションの計算 double pos = MyCurrentOrders(MY_OPENPOS, magic); // 移動平均の計算 double sma1 = iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1); int ret = 0; // 買いシグナル if(pos <= 0 && Close[2] <= sma1 && Close[1] > sma1) ret = 1; // 売りシグナル if(pos >= 0 && Close[2] >= sma1 && Close[1] < sma1) ret = -1; とあるのですが、 Close[2] <= sma1 && Close[1] > sma1) ret = 1の 部分がいまいちしっくりきません。 というのは、Close[2]には sma2じゃないんでしょうか。 考え方がおかしいならどうおかしいのか親切な方教えていただけないでしょうか。 よろしくお願いします。
>>959 Close[2]の2は配列のインデックスで、sma1の1は変数名の一部。
でもきっとこの説明では分からないんだろうな。。。
>>958 MT4はマルチコアに対応していません。
基本設計が5年以上も前のものですから当たり前なんですよ。
MT5はマルチコア、分散コンピューティングに対応していますが、現在はβバージョンです。
正式バージョンが発表されるまではリアルアカウントを開ける業者はありません。
>>959 sma2 なんて変数はどこにも定義されていないのだから、
「sma2じゃないんでしょうか?」というのはおかしい。
if(pos <= 0 && Close[2] <= sma1 && Close[1] > sma1)
これは、
pos がゼロ以下で、
二本前の終値が sma1 以下で、
一本前の終値が sma1 より大きかったら・・・
という条件文なのは分かるかな?
これは、その参考書の作者が決めた条件なのだから、その作者にとっては正しいのだよ。
>>959 // 移動平均の計算
double sma1 = iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);//一本前の移動平均値
double sma2 = iMA(NULL, 0, MAPeriod, 0, MODE_SMA, PRICE_CLOSE, 2);//二本前の移動平均値
int ret = 0;
// 買いシグナル
if(pos <= 0 && Close[2] <= sma2 && Close[1] > sma1) ret = 1;
直感的に正しいのはこんな感じじゃないかな?とは思うけどね。
>>961 だいぶ前から疑問に思っているんだが、
MT5が「現在はβバージョン」っていうのは、どこを見れば確認できるの?
965 :
Trader@Live! :2011/04/14(木) 00:01:28.95 ID:87c10Q2m
>>962 文章たらずですみません。略しすぎました。
>>963 そうです。
まさしくそのようにしなきゃいけないのじゃないかと思ったんですが
それだと間違いなんでしょうか?
直感的に正しい=最も儲かる方法 ・・・?
968 :
Trader@Live! :2011/04/14(木) 07:22:22.71 ID:3klX6Z43
MT4をダウンロードしようとすると、 デモ口座開設になって、名前や住所まで入力することになっているけど。 これって、MT4対応の証券会社に口座開設するように電話とかメールがくるのか? FOREXにしてもいとは思っているけど、どうなのでしょうか?
>>968 ニュースレターに同意のチェックを外しておけばいいんでない?
>>966 そうか? 元のはMAを突き抜けたかどうかを判定してるだけたろ?
>>970 2本前の状態 Close[2] > sma2
1本前の状態 Close[1] > sma1
↑ 終値がどちらも移動平均の上にある状態を考える。
Close[1] > sma1 >
Close[2] > sma2
↑大小関係がこんな場合を想像してみて。
ゆっくり上昇中の相場が急騰した場合なんだけど、MAを突き抜けたと言える??
Close[1] > sma1 > Close[2] > sma2
973 :
954 :2011/04/14(木) 09:03:12.23 ID:Q1GcMCBN
Close[2]ってのはOpen[1]と窓の分ってことだろ。 まあこういっても理解できないんだろうな。
>>968 適当な住所と名前、電話番号で良いよ。
海外でも偽住所、偽名、偽電話番号は当たり前みたいだから
それとメアドはいつでも捨てられるメアドにする事。
メアドは正直に書くとSPAMに襲われる・・
if (条件1 && 条件2 && 条件3)とか書いてる時点で手成りのサンプルコードなんだ ろうから、あんまり深く考えても意味なくね? 点と点の位置判定よりは水平線と直線の交差判定の方が少しだけイケメンだ。 2直線の交差判定の方がもっとイケメンじゃね?って思うなら、そう書き直せばいい。 結構書ける人でも手成りだとそんなもんだ。書籍だからってあんま期待すんなw
>>977 >あんまり深く考えても意味なくね?
意味あったよ。
>>959 のコードよりも
>>963 のコードの方が正しい、
という訳ではない、ということが理解できた人(俺とかw)にとってはな。
「手成り」だから手法として劣ってしまった、とかいう話では全然無い。
>>959 の
if(pos <= 0 && Close[2] <= sma1 && Close[1] > sma1) ret = 1;
が正しいと思えてしまう奴は、窓があいて無ければ
if(pos <= 0 && Open[1] <= sma1 && Close[1] > sma1) ret = 1;
と書いてもよいと考えていて、
Close[1] > sma1 >= Open[1] の関係が成立した場合、
始値が移動平均の下にあって、それが終値の時点で上回った=交差した
と思ってるのだろうが、
Close[1] > sma1 >= Open[1] > sma1'(オープン時のsma1)
実際は、始値が確定した時点では、
移動平均がその下に位置している可能性があることに気づいていないのだろう
>>974 あなたが正しい。。。特に二行目が(笑)
sma1とか[1]とかは確定値なんだから Close[1] > sma1 >= Open[1]が確定したら 可能性も何も確定したんだよ。 まあ理解できんのかもしれんけど。 Close[2]っていうのは値であってグラフ上の点ではないのだよ。 理解できないのかもしれんが。 窓が開いてなけりゃClose[2]はOpen[1]と等しいんだよ。 等しくない場合に窓が開いたといってるんだからこれは理解できるだろ。 バッファのインデックスは0から始まるんだよ。 [0]が現在の足の値。 これは決まり事。 気をつけなきゃならんのは未確定値のClose[0]とかのPRICE_CLOSEでshiftが0の値なんだよ。 これは理解できなきゃEAなんか組まんほうがいい。
>>981 Close[1] > sma1 >= Open[1]が確定した時点で、
移動平均とのクロスが成立したと考えてるんだね?
それをクロスと見なすかどうかは意見が分かれるところかもしれないね。
>>982 ちがうだろ。
そしたらClose[2]はいらんだろ。
っていうか「確定した時点」って。。。
だましに敏感か鈍感かって差は出るね 短い足のチャートだと陽線が続いてるのにcloseがずっと下降してるとかあるしな
すいません、ある通貨ペアのある指標の最新の値を 常に表示することができれば方法をご教示下さい たとえば、ドル円のチャートとデータウィンドウを表示させ、 チャートウィンドウで移動平均やMACDを表示してた場合、 チャート上でマウスカーソルを左右に動かしても 常に最新の移動平均やMACDの数値ををどこかに表示させたいです よろしくお願いいたします
>>983 確定値なんだから「確定した時点」という表現は確かにおかしいねw
表現を変えると、
Close[1] > sma1 > Close[2] > sma2
この条件式が成立したら 移動平均のクロスが成立すると言う理解でOK?
>>986 そこかよ。
ちがうよ。移動平均のクロスなんか見てない。
なんかもう
>>987 が分かってくれてるので俺は満足。
>>981 あなたは正しくなかった。。。9行目(空白行を含む)の最後が(笑)
>>959 の「価格と指標の交差で売買シグナルを出す」という命題について、
指標が、例えばピボットのように途中で変化しない固定的な値であれば、
Close[1] > 指標値 > Close[2]
Close[1] > 指標値 > Open[1] //窓が開いていない時のみ。
これは、価格と指標の交差があったことを検出できると思うのだけどね。
>>986 ,991
すいません。間違えました。あなたが正しいです。
「移動平均のクロス」には、「価格と移動平均のクロス」が含まれます。
そんなの全く誤解の余地のない常識です。
Close[1] > sma1 > Close[2] > sma2
というのが「価格と移動平均のクロス」を意味しているとは、私の馬鹿な頭では全く理解できませんでした。
sma2とか出てきたんで二つの「移動平均のクロス」のことでも言ってるのかと勘違いしました。
もう勘弁してください。お願いします。あなたの頭の良さは十二分にわかりました。降参です。
負け犬は去ります。失礼します。
おっと、言い忘れました。すいません。ごめんなさい。申し訳ない。
負け犬の、というかイタチの最後っ屁です(古っ
>>959 のコード、テクニカルの基礎に通じていると良く理解できる。
TrueRangeの概念が入ってる。まあ、基礎中の基礎、古典中の古典だけどね。
Close[2]は、適当に関数化すれば、TrueOpen(1)とかいうことなんだよ。
窓が開いたらシグナルが出なかった、じゃ困るからな。
では退散。
>>982 そういうこと。
そもそもsma1とsma2の差は、必ずClose[1]とClose[2]の差より小さくなる。
>>971 はそのありえない条件まで考えてしまってる。
> それをクロスと見なすかどうか
揉み合いでは通用しないからダメだろうね。
Close[1] > sma1 > Close[2] > sma2 この状況でどこがクロスしてるのか教えてくれ。
>>995 その状況が起こり得ないって話なんじゃないの?
いや、普通に起こりそう? Close[2] > sma2の状況で、Close[1]が急上昇するとsma1がClose[2]を超える 可能性はありそうな気がする・・・・・・
>>996 起こり得るだろ。
仮に起こり得ないとしたら
>>986 で成立したら云々と言ってるのはなぜだ?
ちょっとしばらくレスできなくなるけど納得のいく回答をお待ちしております。
>>998 そんなことは元の発言者に聞いてくれ。
俺は何も考えず2直線の交差判定として処理しとくからw
Close[1] <= sma1 && Close[0] > sma1) ret = 1 一つ前の終値がsma1以下にあり、且つ、現在の終値がsma1の上にある =sma1に対するリアルタイムGC判定 Close[2] <= sma1 && Close[1] > sma1) ret = 1 二つ前の終値がsma1以下にあり、且つ、一つ前の終値がsma1の上にある =sma1に対するひとつ前の足が確定した時点でのGC判定 じゃないの? sma1がリアルタイムでは出てこない値だから、一つ前で判定してるとか。 Close[1] > sma1 > Close[2] > sma2 =一つ前の終値がsma1より上にあり、且つ、二つ前の終値がsma1未満でsma2より上にある sma1=単純移動平均線[1]って意味じゃない場合、下がってもクロスするよな?
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。