【MT4/5】MetaTrader初心者専用39【ゆとり隔離スレ】
1 :
Trader@Live! :
2013/07/26(金) 00:20:32.53 ID:8MbFvuHS
2 :
Trader@Live! :2013/07/26(金) 00:20:51.49 ID:8MbFvuHS
初心者Q&A
Q: Vista、Windows7で動かないのですが?
A: 以下を試してみてください。
1 [コンピュータ]を右クリック。[プロパティ]を選択
2 [システムの詳細設定]を選択
3 [詳細設定]タブをクリック
4 [パフォーマンス]の[設定]をクリック
5 [データ実行防止]タブをクリック
6 「重要なWindowsプログラムおよびサービスについてのみ有効にする」をオンにする
7 okをクリック
8 OSを再起動
※ Vista/Win7 の場合、C:\Program Files 以外の場所(C:\MT4 以下)にインストールするのが便利です。
Q: ファイル→デモ口座の申請 でデモ口座が作れません。
A: 一部のサーバでは、Build 409 より古い MT4 では口座が作れません。最新版を入手してterminal.exe をコピーしましょう。
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: MetaEditorでコンパイルするやり方がわかりません
A: MetaEditorのツールバーのcompileで出来る。面倒だったらファイルを保存して、MT4を再起動
Q: ティックチャートを表示する方法を教えてください。
A: 気配値表示の所にティックチャートタブをクリック
Q: ボリンジャーバンドの三本線を五本線にしたい。
A: 標準偏差の設定値を変えたボリンジャーバンドをもうひとつ描画
A: 標準偏差の設定値を1にして、Levels に ±2,±3,を設定してもよし。
Q: 過去のチャートを見ようとしたら、すぐに現在の位置に戻ってしまうのですが?
A: ツールバーのAuto Scrollボタンをoffにする。
Q: 使わないインジケーターを削除するにはどうすればいいの?
A: 使わないインジケーターにカーソルを合わせ右クリック→削除
Q: インジケーターのラインの色、太さを変えたいんだけど
A: MetaEditorで該当するインジケーターを開きます。
#propertyで検索(初めの方に記述してありますのですぐ見つかります。)
3 :
Trader@Live! :2013/07/26(金) 00:21:24.90 ID:8MbFvuHS
色を変更したい場合(例)
#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これで、チャートを右クリ>定型チャートで好みのチャートを一発で呼び出せる。
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.mq4 :-)
Q: ゆとりスレなのに・・・
A: 「MetaTraderのための」ゆとりスレです。「パソコン初心者」「2ちゃんねる初心者」のスレではありません。
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のフォルダをバックアップ。
これで大体もとの環境を作ることが出来る
▼MQL4を勉強するには
MetaEditorのToolboxからHelpを選択すると、リファレンスがあります。また、以下でも見ることが出来ます。
ttp://docs.mql4.com/ 日本語訳があります。
ttp://www.metasys-seeker.net/MQL4_Reference_ver1/MQL4_Reference_Contents.html
4 :
Trader@Live! :2013/07/26(金) 00:22:53.97 ID:8MbFvuHS
5 :
Trader@Live! :2013/07/26(金) 00:23:14.22 ID:8MbFvuHS
乙
>>4 サーバのIPはひとつとは限らないけどな。
#import "Kernel32.dll" void GetSystemTime(int& a0[]); #import int GMTOffset() { int lia_0[4]; int lia_4[43]; string ls_unused_16; GetSystemTime(lia_0); int li_36 = lia_0[0] & 65535; int li_40 = lia_0[0] >> 16; int li_44 = lia_0[1] >> 16; int li_48 = lia_0[2] & 65535; int li_52 = lia_0[2] >> 16; int li_56 = lia_0[3] & 65535; string ls_8 = FormatDateTime(li_36, li_40, li_44, li_48, li_52, li_56); double ld_28 = TimeCurrent() - StrToTime(ls_8); return (MathRound(ld_28 / 3600.0)); } こういう関数があるんですが、 int li_36 = lia_0[0] & 65535; int li_40 = lia_0[0] >> 16; これは何をやっているのですか? また、 #import "Kernel32.dll" void GetSystemTime(int& a0[]); #import これはmqlの関数ではできないんでしょうか?
FXTDのMT4にGOLDのチャート出したいんだけど方法ありますか? すべての通貨にはXAUUSDは無かった もちろん取引は別でやる
>>7 > int li_36 = lia_0[0] & 65535;
> int li_40 = lia_0[0] >> 16;
>
> これは何をやっているのですか?
AND演算と、Shift演算だけど・・
> また、
> #import "Kernel32.dll"
> void GetSystemTime(int& a0[]);
> #import
> これはmqlの関数ではできないんでしょうか?
出来ないから、そうしているんだね。
>>7 UTCを取得する関数がMQL4にないのよね
Heiken_Ashi_Smoothed の平均足の値をEAに組み込みたいと思ってますが、 色々試しているのですが理解不足で上手くいきません。 例えば、1個前の平均足が「青」だったら買い、と言う条件を入れたい場合は iCustomはどう記述すれば良いのでしょうか?
13 :
にょろ―んインジ ◆jPpg5.obl6 :2013/07/27(土) 22:33:21.95 ID:20LaeZky
拾って来たインジを改造してるんだけど難しい・・・(´;ω;`)ウッ・・・
有料のものをデコするって違法ですよね? 誰かがデコしたものをさらにデコも駄目ですよね?
どうして海外では当たり前のようにされているのでしょうか?
>>15 それはライセンスによる。
ライセンスで禁止されていれば契約違反。
日本の場合は著作権で保護されてるから違法。 アメリカではミレニアム法でも守られてるんじゃなかったか。
>>17 >>18 レスありがとうございます
ということはライセンスありの海外製のものを
日本人が日本でデコして使うのが駄目ということであってますか?
ライセンスで禁止されてるんならどこ製だろうが駄目だろ。
ですよね
著作権わかってない人おおいな。デコンパイル自体は別にいいんだよ。 デコンパイルのあとで、ライセンスチェックをはずしたり、 パクって配布とか販売しちゃダメだが。 ライセンスで禁止されているとかいっても、 デコンパイルを禁止するライセンス自体が そもそも法的に有効とは限らないしな。
>>19 ダメだろうけど
個人で私的にやってるのを
どうやって把握すんだよってのもあるよね
>>23 日本なら誰かに頼むと違法だけど自力でやる分にはセーフかな。
デコンパイルを禁止することは別に合法だろ。
パッケージを破ったら契約とかの話と勘違いしてないか?
今の時代、それなりに対策あるだろうね 隠しコマンドで通信網で把握されたりして… 不正はいつかばれる この業界にグレーはない 危うきには近づかずですよ
スイング向けのEAを自宅のPCで運用しようと考えておりますが ポジションを持ってる時にEAを止めたり、EAのパラメータを見直した場合 マジックナンバーさえ一致してれば再度EAを再開させた時、 ポジションを持ってる状態とEAは認識しますか? それともノーポジの状態と同じでシグナル待ちとなってしまうのでしょうか?
>>23 じゃあ無料で拾ったものをデコするのは?
最初に公に配布した人が駄目で、
拾った他多数の人が再デコするのはライセンス違反と著作権違反にならないの?
当然使う人はライセンス外したことになるよね
分かった この話はやめ 結論は出てる
有料のものを無料で拾った時点でアウトじゃん。 デコうんぬんとは関係のない話。
一時的に稼げてあとは連敗に次ぐ連敗みたいなのではなくて、激しいドローダウンもなく安定的に稼げるEAって存在する? もし存在するとしたらどういうものを根拠にトレードするEAなんだろう? たとえば単純なものでよければ移動平均線同士のクロスとかMACDとシグナルのクロスとかで売買する手法があるけど こういうのって儲けられる時期と儲けられない時期の波が激しいんだよね。安定定期に儲けられるEAがあるとしたら もっと巧妙な手法を使ってるんだろうか?
それはEAを研究する前にマクロな市場の流れを研究し、 大きく振れる時・レンジ相場・ジリ下げetc.. そういった相場のパターンを研究したうえで 「それらに全対応するシステムって組める?」 と俺なら問う。まったく次元の違うアプローチの仕方もあるかもしれない。
また商材屋が何か言ってるw EAやテストごときに完璧を求め過ぎるから自滅するんだよ どこかで妥協するのが勝利の秘訣
>>32 > こういうのって儲けられる時期と儲けられない時期の波が激しいんだよね。
そこまで気づいていたら、次にやるべきことがあるだろ・・・。
これってどういう意味ですか? A = Bid >= C + D / 2; Bidが C + (D / 2.0) CとDの2分の1の合計以上なら A=Bid?
>>36 Bid >= C + D / 2;
これの結果がAに入ってるのじゃないの?
>>27 俺が作ってるEAはdeinit()で全部決済するようにしてる。
難しいことは考えない。
40 :
B.F.X :2013/07/28(日) 13:22:42.48 ID:PBhY3kXp
待機注文のみをカウントするやり方を教えてくれ!!!!!!!!!!
>>40 調べてわかんなかったの?
ちょっと信じられない。
OP_BUYLIMIT OP_SELLLIMIT OP_BUYSTOP OP_SELLSTOP
アルパリってスプレッド狭いはずなのに「現在の」スプレッド設定でバックテストすると なんか成績悪い気がするんですが気のせいなんでしょうか?
初歩的な事をいまさらやろうと考えて、デフォの Moving Average.mq4 に 適用価格を足したくて extern int MA_PriceMode = 0;//0=close, 1=open, 2=high, 3=low, 4=median(high+low)/2, 5=typical(high+low+close)/3, 6=weighted(high+low+close+close)/4 を足したけど変えても反応がない。MA_PriceModeじゃなくて何にすればいいのかな。
日頃は日足チャートをメインに表示している。 この状態で設定した条件が成立したらスクリーンキャプチャーさせようと思うんだけど その際日足じゃなくて他の時間足のスクリーンをキャプチャーさせる方法って無い? 何も考えずにスクリーンキャプチャーのコマンドを実行させると今表示されている時間足の チャートがキャプチャーされてしまう。
46 :
B.F.X :2013/07/28(日) 23:22:14.55 ID:PBhY3kXp
40 :B.F.X:2013/07/28(日) 13:22:42.48 ID:PBhY3kXp
待機注文のみをカウントするやり方を教えてくれ!!!!!!!!!!
41 :Trader@Live!:2013/07/28(日) 15:31:19.74 ID:oWJdykj3
>>40 調べてわかんなかったの?
ちょっと信じられない。
もう一度質問しつもんします。ordertoral()が近いのはわかるが、
当方が求めてるのは、
待機注文”のみ”をカウントするやり方です。
>>46 普通に本にも載ってるんだけどな。
OrdersTotal()は注文の内容を調べるループを実行する回数を求めるための関数。
当然、もうひと手間として、注文内容を調べなきゃならん。
ループ内部で、OrderSelect()とOrderType()を順番に実行する。
ラインを引いて、レートがそのラインに触れたらアラートが鳴るインジってあります?
とりあえずこのへんこんなかんじでいじってみたんですが違う わけわからん;; int cnt = 0; int LastBarTime; //processing bars while (i >= 0) { LastBarTime = Time[i]; if (TimeDayOfWeek(Time[i-1])<TimeDayOfWeek(Time[i])) {i_time=Time[i];} //a new bar if (LastBarTime >= i_time+ps ) { //Print(i_time+ps); //write the bar data WriteHistoryData(); cnt++; i_time = LastBarTime/ps; //Print(ps); i_time *= ps; d_open = Open[i]; d_low = Low[i]; d_high = High[i]; d_close = Close[i]; d_volume = Volume[i];
FXDDでバックテストしてますが、 Point値が0となっています。Marketinfo でPoint値を所得しても0です。 MT4壊れてますかね?
int型に代入してないよな。
Comment()などでそのまま表示させれば小数以下は4桁まで 正しく取得できている0.00001が0と表示されている可能性あり
if (TimeDayOfWeek(Time[i-1])<TimeDayOfWeek(Time[i])) //ココにぶち込むと { WriteHistoryData(); cnt++; LastBarTime = Time[i-1]; i_time = LastBarTime; //Print(ps); d_open = Open[i-1]; d_low = Low[i-1]; d_high = High[i-1]; d_close = Close[i-1]; d_volume = Volume[i-1]; } //a new bar if (LastBarTime >= i_time+ps ) { Print(TimeToStr(i_time+ps)); //write the bar data WriteHistoryData(); cnt++; i_time = LastBarTime/ps; //Print(ps); i_time *= ps; d_open = Open[i]; d_low = Low[i]; d_high = High[i]; d_close = Close[i]; d_volume = Volume[i]; 2013.07.29 16:08:58 Period_Converter_Opt GBPJPY,M1: 2013.07.29 00:35 2013.07.29 16:08:58 Period_Converter_Opt GBPJPY,M1: 2013.07.29 00:22 //何故かココが9分差になる 2013.07.29 16:08:58 Period_Converter_Opt GBPJPY,M1: 2013.07.29 00:13 2013.07.29 16:08:58 Period_Converter_Opt GBPJPY,M1: 2013.07.26 23:50 2013.07.29 16:08:58 Period_Converter_Opt GBPJPY,M1: 2013.07.26 23:37 そして実際のチャートは 00:00〜00:08の足ができ、つき簿足は00:09からになる ふぇぇぇ;;
ありがとう。代入じゃなくて、直接Comment表示してる。Printでも0なんだけど。 4桁表示されないのは同じかしらん。 ちょっとcsvに書き出してみる。
>>55 Point*100000 を表示させるとか。
>>56 あなた、IDが、
みなさんありがとう。
csvでみたら、0.00001でした。お騒がせしてすいません。
ソースにあるextern int Riskはどのような効果があるのでしょうか? ストップロスやロットサイズだけでなく、 Riskの数値を上げたり下げたりするとトレードにどう影響し何が変わるんでしょうか?
>>58 仮にそれが俺の書いたEAだとすると、
Riskは1回のDDで許容できる現在のAccountFreeMarginに対するパーセンテージを現している。
>>59 作者とは連絡とれないので...
>>60 ありがとうございます
ストップロスを小さく設定していても別途Riskの部分をいじる意味はあるんでしょうか?
例えばデフォルトでRisk3とある値のところを
どんな時に下げたり上げたりするんでしょうか?またその必要性はあると思いますか?
それともう1つ教えて下さいm(_ _)m 素朴な疑問なんですが、 スキャルEAをどの時間足に使っても 業者サーバーへの負荷というものは変わりませんか? 5分に表示するのと30分に表示するなど
>>62 俺の書いたことが理解できてないのね。
Riskの値を固定してストップロスを小さくすると、そのぶんロットが大きくなる。どうしてか分かるよね?
ただしこれは俺の書いたEAの場合だ。人が書いたEAがどうなってるかは知らんw
>>64 分からない(´・ω・`)
例えば10万で5lotや100万で10lot、レバ200設定の場合、
Risk3を下げた方がいいのか10とかに上げた方がいいのか
Risk値はどのへんまで上げようと思いますか?
>>65 パラメータの値がどういう意味をもって
どういう結果になるのかは作った本人しかわからない
>>66 そうですよね...
Riskという単語にリスク管理しなければと混乱してしまいました
とりあえずデフォルトで使ってみます
つーか、そんなに分かってない状態でEA使うなよ。 しばらくリアルはやるなよ。
>>68 いやー(゚∀゚ )アヒャ
もうやっちゃってます
無茶しやがって・・・
どなたか
>>63 お願いします
30分、1時間などでテストすると、
ズバババっとまとめてスキャるのが見れるので
5分足より好きなんですが、
その分まとめて攻撃してることになるのかなあと
スキャを使う時間足は5分足や15分じゃないと駄目でしょうか?
誰かいいよと言ってほしい...
>>72 ありがとうございますm(_ _)m
早速実践してみます
74 :
Trader@Live! :2013/07/29(月) 23:59:41.48 ID:LOTeYR+R
ライブラリって使ってます。 使っているかたは、やっぱり豊島先生謹製のものですか?
ダレソレ
>>75 私が使ってるのは、7bit さんかな。
海外のフォーラムに行けば、いろいろあると思う。
豊島先生は、あくまでもライブラリの作り方を説明しているのであって、
あれが実用的なライブラリだと思わない方が吉ですよ。
78 :
屑ニート :2013/07/30(火) 16:54:57.72 ID:couD1Q/M
バックテストで145エラーが連発するのはどうすればよいですか?
設定したストップロスと決済価格が近い為? どれくらい離せばいいですか? 業者によりますか?
80 :
屑ニート :2013/07/30(火) 17:27:33.87 ID:couD1Q/M
業者ごとのストップレベルによると思うが(´・ω・`)
2つの業者のバックテストで、 Please wait until enough ofbar data has been gathered と表示され続けて売買しません 3つ目の業者では無事テストできているのですが、何が原因でしょうか? このエラーがテストで表示されている方は リアルで使っても売買できないということでしょうか?
でも、その3つ目の業者は両建てが不可なので テストが成功しても使えないのです どなたか助けて下さい(x_x) お願いします
>>84 ツールのチャートタブの最大数は9999...にしてからテストしたのですが、
個々のチャートのプロパティの方ですか?
いくつぐらいにしてますか?
>>85 サーバーからもらってるデータが足りないのでは?
>>86 ヒストリカルデータのテスト上だけの問題ですか?
実際の売買に関係ないのならいいのですが…
>>78 指値入れる時のエラーかな?それなら値をbidなりaskから少し離して再トライって感じかなと思うけど。
うーんどうだろ
>>87 そのエラーはEAが出してるんじゃないの?
作者に聞くしかないかと。
>>87 意訳すると十分な量のヒストリデータが集まるまで待っていてくださいってことだから
実際の売買には関係なし
大体過去に遡ってチャートを表示しないと最大数を9999...にしてもヒストリカルデータは集まらなさそうだsi
>>89 >>90 ヒストリカルデータの方ですか
売買に関係ないなら安心しました
EAのソースをもう少し見てみます
ありがとうございましたm(,,)m
「斜めに引いたライン」の「現在時間にあたる値」って取得できますか? やりたい事としては、名前を付けて引いたトレンドラインから ある程度Close[0]が乖離したらシグナルをだしたいのです。 トレンドラインはインジで計算して引くので 始点終点の時間と価格はありますため 細かく計算させれば可能ではあると思うのですが、 簡単な方法があれば助かります。
もしかしてObjectGetValueByShiftでできるっぽい?でした。 ちょっと自分で調べ直します、失礼いたしました。
出来たようですm(__)m
95 :
B.F.X :2013/07/30(火) 23:19:45.93 ID:LdgBdLeA
一番最初 の 指値買注文 の チケット番号 を取得したいために以下をつくりました。 しかしうまくいきませんなぜでしょうか? int saishonositikai() { //最初の指値買い注文 int posSB=0; for(int i=OrdersTotal(); i<=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break; if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC) { if(OrderType() == OP_BUYLIMIT) posSB = OrderTicket(); } } return(posSB); }
>>95 オーダーが10個ありSELECT_BY_POSで取得するときの位置番号は1〜10ではなく0〜9
for(int i=OrdersTotal()-1;i>=0;i--) か
for(int i=0;i<OrdersTotal();i++)
一番最初という言葉に、注文日時が最小とかチケット番号が最小などの意味があるならループ内で判断が必要
分足のラインやオブジェクトがたまにずれることありませんか? ラインなんてとくに、上下ギザギザに目一杯に描画されてチャートが台無しに。 チャートのバッファ数がオーバーするとなるんでしょうか?でも65000に設定してるから 分足でも余裕だと思ったんですが何が問題なんでしょうね。
Grid Builderというインジを使っているのですが、このインジで表示されるラインの色を赤に変更したいのですがどうしたら良いでしょうか? 詳しいからがいらっしゃいましたらご教示ください
DukascopyのTickヒストリカルデータを期間指定で分割してダウンロードした場合、 CSVファイルをFXTファイルに変換して分割したままtester\historyフォルダへ入れても ちゃんとバックテストってできるの? それともCSVファイルを結合した後、FXTファイルに変換したらバックテストできる? Dukascopyのtickデータ、落とすのに2日ぐらいかかるから分割で落としたいんだが、 ちゃんとバックテスト出来るんかな。。?
100 :
Trader@Live! :2013/07/31(水) 18:56:01.07 ID:ugpNmQ1G
スプレッドを取得する関数を教えてくれ!!!!!!!!!
Ask - Bid
>>95 一番最初にというの一番古い指値買い注文とさせて解答します。
OrderOpenPrice()の戻り値が最小のOP_BUYLIMITを選択すれば一番古い指値注文を検索できます。
ただし、約定されていないオーダーに対しての一番古い指値注文となります。なぜなら、約定した時点でOrderTypeがOP_BUYLIMITから
OP_BUYにOrderOpenPriceが注文した時間から指値が約定した時間に更新されるからです。
ポジションが指値注文由来のものか知りたい場合は、自分でコメントやらマジックナンバーを通じて指値であることをメモする必要があります。
SELECT_BUY_POSの格納順序でそのポジションの古さ?を知るのは適切ではないと思います。
OrderOpenTimeがOrderModifyで更新されるかは、わからないです。
参考
http://algorithmtrade.blog110.fc2.com/blog-entry-134.html
どなたかお願いします 2台目のPCの方なんですが、 複数の業者のMT4を一旦アンインストールしたら 新たなインストールがエラーでできなくなりました Microsoftのよく見るあのエラーで、 エラー送信するかしないかの小窓が出て、どの業者のMT4もインストールが完了しません 今回のバージョンアップの件に関係しているのでしょうか? 解決方法など何か分かればお願いします
>>104 誤検出と思うが、そのリンク先chromeだと以下の警告出て開かんな。
「不正なソフトウェアの配信元として知られる timingtrade.info のコンテンツがこのウェブページに挿入されています。このページにアクセスすると、お使いのパソコンが不正なソフトウェアに感染する恐れがあります。」
>>104 この方法で何度も試したんですけどね…
ポンコツなので諦めて3台目の方とVPSでやろうと思います
ありがとうございました
あ、やべリンクしてる シラネ
iCustomやPrintみたいに引数の個数が自由な(上限はあってもいいんですが)ユーザー関数を定義したいんですが、 どのように仮引数を記述すればいいのでしょうか。 とくにコンパイル時まで仮引数の個数や型が分からないものをどうやって書けばいいのかさっぱりわかりません。 なにかサンプルがあればたいへん助かります。
110 :
Trader@Live! :2013/08/01(木) 00:00:12.97 ID:ugpNmQ1G
for(int i=0; i < OrdersTotal() ; i++) { if(OrderSelect(i,SELECT_BY_POS)==True) { if(OrderSymbol() == Symbol() && OrderMagicNumber() == MAGIC) { if(OrderType() == OP_BUYLIMIT) posSB = OrderTicket(); return(posSB); } }else{ break; } } こうつくりました。 しかし posSB = OrderTicket(); これでうまく格納されないのですが・・・ なぜでしょうか? 0のままです。
>>110 動きを確かめるために
orderselectがtrueのときのブロックで
すべてのチケット番号をprintしてみたら?
113 :
109 :2013/08/01(木) 06:55:25.69 ID:xLP4Eo/E
>>111 えっ!? Printができるんだから不可能ではないハズだと思っているんですが… 無理なんでしょうか? (ノД`)
ググったりMetaSys読んだりしてもぜんぜんわからへ〜ん (>_<)
114 :
109 :2013/08/01(木) 07:38:33.48 ID:xLP4Eo/E
連投すみません。 個数が自由な引数を可変長引数って言うんですね (Googleの関連キーワードで偶然発見) それを元に検索し直しましたが、どうやら可変長引数が実現できるのは組み込み関数だけみたいですね。公開されてない秘密のワザでもあるのかな? お騒がせしました。そろそろ限界なんで仮眠します。。。Zzz
デフォルト引数を大量に使って擬似的に可変引数作ればいいんじゃないのかな
オブジェクト作ってティックごとに更新させるプログラム作ってみたんですが めちゃ重いです^^; オブジェクトだとしょうがないんですかね? 何か軽くするコツとかあるんでしょうか?
117 :
Trader@Live! :2013/08/01(木) 10:58:14.43 ID:TZtumdsy
旧バージョンとなって動かない どうすればいいの?
MT4を最新バージョンにしろよ
>>74 のやり方でXPだと更新できない
XPはどうやって更新するの?
121 :
>>120 :2013/08/01(木) 15:32:00.28 ID:JNMMxu1M
すみません 自己解決 win7からファイルをまるごとコピーしたらOKだった
122 :
にょろ―んインジ ◆jPpg5.obl6 :2013/08/01(木) 18:09:00.40 ID:XBCqhWt4
某有名な手法ロジックでEA組んでみたら優位性のかけらもね―wwwww 有名なのにいくら探してもこの手法のEAは売ってないハズだはw
仮にあるEAに優位性があったとして。 日本国内のすべての生活保護世帯がそのEAを運用すれば、 生活保護費は不要になるわけで。 日本に限らず、世界中の貧困世帯で運用してもらえば、 世界の貧困問題は直ちに解決し、お金の為に犯罪を犯す人も居なくなる。 現実にそんなことが起こらないのは、もともと優位性が無いってこと。
優位性があったらそんなことが起きるとでも思ってんの?
extern int MagicNumber = 999; のとき、 Hoge(int MagicNumber){ } という自作関数があったとして 呼び出すときは if(Hoge(MagicNumber)==True) ですか? if(Hoge(999)==True) ですか?
Hogeの中身も分からないのに、そんなこと聞かれてもな。
そもそもHomeの引数は、いらないだろ
ん?
>>125 って
>Hoge(int MagicNumber){
>
>}
だと、extern int 宣言しているMagicNumberと被るからまずいんじゃ?
試してないけど。
129 :
にょろ―んインジ ◆jPpg5.obl6 :2013/08/01(木) 19:37:24.79 ID:XBCqhWt4
>>123 それどころかこれはBT出来ないFX初心者をワザと騙すための手法だな・・
おおこわい
>>99 出来るはず
ただし何度かBTした結果から言うと
tickレベルの話になるとブローカーごとに値が違うし
最適化してセンシティブなトリガーにすると
フォワードテストで全然結果が変わってしまう
tickのテストはわりとあてにならないかも
132 :
Trader@Live! :2013/08/01(木) 20:51:03.66 ID:sgt2NYEX
for(int iii=0; iii<=OrdersTotal(); iii++) { if(OrderSelect(iii,SELECT_BY_POS) == true){ if(OrderMagicNumber() != MAGIC || OrderSymbol() !=Symbol()) continue; OrderDelete(iii); }} これ書いているの全部のオーダーが消えません何が原因なのでしょうか?
133 :
Trader@Live! :2013/08/01(木) 20:56:01.00 ID:sgt2NYEX
132の追加です。 プリントすると、できないやつは OrderDelte error 4108 がでてます。チケット番号が無いって言ってますが、 まったく意味不明。
お前がOrderDeleteに渡しているのは、 チケット番号じゃなくて、インデックスだし。 やるんなら OrderDelete(OrderTicket()); だろ。
>>132 134に加えて前から消しちゃだめ、後ろから消さないと
配列ならどちらでも同じだけど、扱っているのは配列じゃない
136 :
Trader@Live! :2013/08/01(木) 22:34:48.43 ID:sgt2NYEX
134 135 ありがとう。でも修正してもできなかった for(int iii=OrdersTotal(); iii<=0; iii--) { if(OrderSelect(iii,SELECT_BY_POS) == true){ if(OrderMagicNumber() != MAGIC || OrderSymbol() !=Symbol()) continue; OrderDelete(OrderTicket()); }}
int n = OrdersTotal(); for (int i = n - 1; i >= 0; i--) {
138 :
Trader@Live! :2013/08/01(木) 22:44:29.20 ID:sgt2NYEX
134 135 137 できた!!!!!! まじ おまいら愛している!!!!!! また この時間書きこむから宜しくお願い致します><><><<><<<<
for(int i=OrdersTotal()-1; i>=0; i--) でいいケドネ
ダウンロードからFXTの生成までできる他のソフトもあるけど、 すでにCSVになってるなら、おそらくCSV2FXT使うしかないかな。
ある一定のヒゲが出たらアラートで教えてくれるインジケータはありますか? 知っている方がいましたら教えて下さい。
ある一定のひげ を定義してもらわないと・・
>>143 「ある一定」というのは無視してもらって構いません。
そもそもヒゲとそれ以外をどうやって区別すればいいかな
146 :
Trader@Live! :2013/08/02(金) 16:17:05.58 ID:CxS+c48e
いいかな?
ひげの長さ・・例えば、10ピップスのひげが発生したら みたいなの
アラートのタイミング・・ひげが発生した瞬間(=その後、消える可能性もある)なのか、
ローソク足が確定して、ひげが完成した瞬間なのか、
ぐらいの条件は必要じゃないのかな・・
>>144
>>145 そのへんはインジの製作者の判断でいいと思います。
製作者が「ヒゲを表示するインジ」と思って作ったインジであれば、とりあえずは無問題です。
使えるかどうかは、あの後で検証するだけですから。
>>147 ローソク足が確定してからがベストですが、そうじゃなくても構いません。
ヒゲの長さ等は
>>145 さんへのレスと同じ回答になります。
( ゚д゚)・・・
150 :
にょろ―んインジ ◆jPpg5.obl6 :2013/08/02(金) 17:14:27.08 ID:oilP74BZ
ヒゲの定義は (クロ―ズ-安値)じゃないの? ヒゲのなんたらなんて見たことないからよくわからんけど
今はPinI4Bbar AHA 0[1].1っての使ってるんですが、アラートが上手く作動しないんですよね 稀にリペイントすることもあるし
152 :
にょろ―んインジ ◆jPpg5.obl6 :2013/08/02(金) 17:21:22.85 ID:oilP74BZ
ああ逆だった (安値[1]-クロ―ズ[1]&&高値[1]-クロ―ズ[1]) 高安からクロ―ズを引くと実体部分が出るからそれを ??? わかんねw
ヒゲも定義できんのかw
上ヒゲ=High[i]-MathMax(Open[i], Close[i]); 下ヒゲ=MathMin(Open[i], Close[i]) - Low[i];
すごい!すべての足に上ヒゲと下ヒゲがある!!
五分で作れるが おれは決して作らない ( ー`дー´)キリッ
(っ´ω`c)高値から終値ひくだけぢゃん (っ´ω`c)ちょー簡単ぢゃん
ローソク足チャートで、足ができる毎にアラート出しておけばいいよね・・・(恐る恐る だって、ほとんどのローソク足にヒゲあるし。。
というか作ったとしてもアラート出まくると思うけど、それでかまわないのかなぁ。。。
(っ´ω`c)1分足が確定したらアラートするとか 同じ足で二度はアラートでないとかにすればいいぢゃん
>>141 レスさんくす。
そうでしか・・、大人しくCSV2FXTを使ってみます。
ちゃんと出来るかな;
屑ニートにお礼が言いたい。 この間、氏が公開されたKuzuNeet_1.mq4を弄ったやつで 7/23と8/1に計2トレード、それぞれ40ドルほど稼がせていただいた。 ストキャスは普段使わないからEAに多様性が生まれていい感じ。 ちなみにシンプルなロジックの割にentryは上手なんだけど exitには改善の余地がありそうなので今は手動でシコシコしてる。 まぁそんなわけでありがと。 一部ロジック変えてパラをオプティしたものなんで 今後このまま使えるってこともないだろうけど。
そっか。 でも、あれ結構でかいドローダウンあるEAだと思いますで(´・ω・`) バックテストしっかりやってフィルター掛けるようにしないと自分では使いづらいな
MT4って右の目盛り数値フォント小さ杉だよな お前らよく目疲れないな
自分が調整したパラメーターで7、8月をバックテストしてみたらマイナスになってるっていう(´・ω・`)
今、ブレイクアウトとナンピンを組み合わせたブレイクナンピンってのを考えてるから できたらここに晒すかもしれない(´・ω・`) つまり、ブレイクアウトに失敗したらナンピンでカバーするEAなのである
ナンピンする者は、必ず死ぬ。
>>140 tickstory使えばいいやん
あれなら変換まで出来ていいわさ
>>168 tickstoryはtickstoryからバックテスト用のMT4起動させないとだめだから
ちょっと敬遠してた
でもさっきCSV2FXTでやったら何故か不整合チャート5287も出て
上手くバックテスト出来ないんで、言われた通りtickstoryでやってみまふ;;
バックテストの時のレバレッジは 業者のとおりなのでしょうか? その場合、ソースにレバレッジの指定がある場合 どちらが優先されるんですか?
>>171 そうだったんですかぁ
目ウロコ
ありがとうございましたm(_ _)m
質問の意味が全くわからない俺はまだまだ青二才というところか
>>173 エスパーするには、言葉への感性を磨かないとダメだと いつも実感してるわ
175 :
Trader@Live! :2013/08/03(土) 23:39:54.27 ID:MnBds6N5
たのむーーーーーーーーーーーーー!!!!おしえてくれーーーーーーーー 直近の決済したてのポジのチケット番号を取得ってどぉおやるのぉ?? for ??? ??? ??? ??? OrderTicket()
OrderSelect()してからOrderCloseTime()が0以外の物=決済済み とここまでは軽く調べたら出てきた。 あとは数字が小さい方が直近に当たるのかどうかなど確認すればよいのでは。 やったことないけどその他のやり方として思いつくのは 全OrderTicketを監視して、数字が抜けた物を直近とみなせば。。。
教えてやろうと思ったがあいかわらずマルチなので死ね OrdersHistoryTotal OrderSelect MODE_HISTORY あとは自分で調べろ
どなたかお願いします ハイレバだと必要証拠金が少なく、 その分多い枚数をポジれますが、 EAのソースで低いレバレッジ指定がある場合、 必要証拠金はどうなるのでしょうか? その業者のハイレバのプランで使うなら多くポジれるままですか?
あっちのスレで既に解説レスがついてますね。
え?
レバレッジとはなにか?
よく分からないんでハイレバのまま使います
このスレの方達はどのようなEAを使っているのでしょうか? オブラートに包んで構いません スイングかスキャルか、フィルタ使いなど 何でもいいのでヒント教えて下さい
184 :
Trader@Live! :2013/08/04(日) 09:12:59.12 ID:7ejwbnod
176 177 さんきゅ しかし、 言いたいことはわかる、しかし、そのやり方はあくまで普通のやり方なんだ。 当方はトラップ仕掛けるタイプだから、単純にオーダー番号が若い、古い では決めれない。 いわゆる、CLOSETIME() == 0 以外のものをさらに 時間で見て、最直近である ものをふるい分けしなきゃいけない。 やりかたおしえてーーーーーーーーーーーーーーーー!!!!!!!!!!!!!
>>183 独自の移動平均かい離率への逆張りEAで、
5分足だけど、1日に2−3回エントリ
ポジ保有時間は平均2時間〜最大8時間
パラメータの見なおしは、2連敗時に自動的に変更。
3連敗でその通貨の運用停止。
注文が通らなかった場合や、何か異常がおきたら、自動停止。
2連勝して、十分な利益がでていたら、勝ち逃げするためにその日は停止。
バックテストは、過去1週間分しか行わない。
週末に確認し、次週の運用通貨ペアを決める。
1つの通貨ペアで1年〜10年勝ち続けるEAなんか探してはダメ。
週単位でもっともトレードしやすい通貨ペアを切り替えてゆくのが重要。
オブラートに包んで書くと、だいたいこんな感じ。
ヒントになったかな?
オブラート外してコードうpすれば簡潔になると思われ。
コードは、改築につぐ増築で、ハウルの動く城 なのよさ。
>>186 移動平均ですか〜なるほど
細かい説明ありがとうございます
自動でパラメータを変更していくとは
とても巧妙に作られているんですね
さらにバックテストを一週間しかやらず
通貨を切り替えていくのはとても斬新な手法ですね
プリプロセッサのdefineて機械的に文字を置換するだけと思ってたら違ったんですね。 何の迷いも疑いもなく #define Dump True って書いたらコンパイラに注意されたよ (´・ω・`) どうでもいいこと、すみません。。。
>>186 いいね
無駄に長いBTはダメだよね
やっぱり1ヶ月なり短い期間のBTなんかで都度調整がいいかな
俺の場合長期(おおよそ10日〜1月前後で決済?)のEAなので 過去2〜3年分のバックテストをまずやって、 そこから得られた良パラをピックアップして 2001年〜現在までを再バックテスト。 生き残った物を選択。おかしいかな?
すっごい適当に流し見した感じでは、 deinit内にしかAlertが無いように見える。 つまり…ん、なんでセットした時にdeinitに行くんだ?
あぁごめんdeinitはすぐ終わってそのあと↓か。 bool Crossed (double haOpen , double haClose ) もうちょっと見てみようかな。
え、なにこれ、Crossedってコード内で呼ばれてないから!が出るんだと思うけど じゃあなんでMT4の起動時に1回鳴るの?別のインジが鳴ってるとかじゃないの? . .: : : : : : : : :: :::: :: :: : ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: . . : : : :: : : :: : ::: :: : :::: :: ::: ::: :::::::::::::::::::::::::::::::::::::: . . .... ..: : :: :: ::: :::::: :::::::::::: : ::::::::::::::::::::::::::::::::::::::::::::: Λ_Λ . . . .: : : ::: : :: ::::::::: ::::::::::::::::::::::::::::: /:彡ミ゛ヽ;)ー、 . . .: : : :::::: ::::::::::::::::::::::::::::::::: / :::/:: ヽ、ヽ、 ::i . .:: :.: ::: . ::::::::::::::::::::::::::::::::::::::: / :::/;;: ヽ ヽ ::l . :. :. .:: : :: :: :::::::: : ::::::::::::::::::  ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄ ̄ ̄
198 :
Trader@Live! :2013/08/04(日) 20:51:04.52 ID:7ejwbnod
185 部分しかかいてない
>>197 別のインジはセットしてないので鳴る可能性はこのインジだけになります
試したけど、起動時に鳴るのは「ぴろうううううん♪」っていう音のこと? インジ由来の音は、インジをセットしてMT4再起動しても鳴らないよ?俺は。
あぁつまり、インジを外して再起動したら音が鳴らないんだよね?あるいは違う音が鳴る。
うちも試してみたけど起動時アラート鳴らないね なにか全然関係ないのと勘違いしてるんじゃないかな
>>201 言葉不足でした
インプットのSoundAlertをTrueにした状態だと起動時にベルが鳴ります
Falseの場合、MT4起動音だけでインジ由来の音は鳴りません
ちょろちょろっと参考にしたというファイルも見たら、 ちょっとわかりにくいかもしれないけど 以下の行でPrintの中でCrossedをコールしてる。 > Print(Crossed (ExtMapBuffer1[0],ExtMapBuffer2[0])); Crossedに2つの引数を渡して、Crossed内でその引数を見比べたうえで アラートを鳴らすか判断するという作りですねぇ。 何を渡したらいいかわかっていれば答えまではあと一歩。 そしてSoundAlertをTrueにしても俺は鳴らないみたいだけど。。
>>205 ありがとうございます
ご指摘の部分のPrint文を挿入、バッファの部分をストキャスインジで使用している
バッファに置き換えてみたところ鳴るようになりました
あれ?コード関係の質問はここであってますか?
どなたかお願いします 業者によってストップレベルの指定があるというのを聞きました。 そこで「Print("ストップレベル:",MarketInfo(Symbol(),MODE_STOPLEVEL));」 を追加したいのですが、int initに追加しただけでは操作履歴に表示されません。 他に何かコードを追加する必要がありますか? よろしくお願いしますm(_ _)m
反映されるのは操作履歴タブではなくエキスパートタブ。 試しに以下をスクリプトに貼り付けてチャートに投げたら動作した。 Print("ストップレベル=",MarketInfo(Symbol(),MODE_STOPLEVEL));
ストラテジーテスターの「通貨ペアのプロパティ」で見られるよ 文字化けしてるけど上から3番目の項目がそう
>>211 あれ・・・int init ですよね?
貼り付けてるんですが、他の項目はPrintで羅列されてるのに
ストップレベルが表示されません・・・
>>212 見れました
ありがとうございましたm(_ _)m
>>210 Alert や Comment 関数もためそう。
>>214 ではあえて表示させない方がいいですかね
プロパティで確認できたので、業者ごとに30とか40とかあるのですが
ぴったり30とかでも良いのでしょうか?
売買がキャンセルになってしまい困りました
口座履歴に、「buy stop 12.44 usdjpy 98.127 98.054 98.227 2013.08.06 12:40 98.129 Cancelled, limits or margin」
と表示されています
SL・TPの差が近いということでしょうか?
>>215 それは動かしてるEA独自のエラーじゃない?
作者に聞いたほうがはやいよ
>>216 分かりました
ありがとうございましたm(_ _)m
すみません、もう一つ質問なのですが、 ストップレベルが高い業者で40〜80とかで、スキャルEAのSL50/TP100で動かす場合、 SLを上げないと駄目でしょうか?
stopbuy,stopsell使わずに成り行きだけなら使えるんじゃない stoplevelが50もあったらスキャルは厳しい
>>216 ストップレベルの低い業者を探すしかないですね
なるほど、成り行きですか・・・
作者に相談してみます
222 :
Trader@Live! :2013/08/06(火) 21:24:16.91 ID:rnBWFSBO
インジケーターのzigzagについてなんですが、 このジグとザグの幅をpips表示してくれる インジケーターはありませんか?
>>215 Cancelled, limits or marginは証拠金不足よ
>>223 なるほど、証拠金ですか・・・
ロット数と余剰証拠金の設定を変えてみます
ありがとうございましたm(_ _)m
とりあえずどっちがジグでどっちがザグよ
227 :
Trader@Live! :2013/08/06(火) 23:28:24.31 ID:8mDefMqr
ZigZagやSwingPointViewのように3点が決まればチャネルラインが引けるはずですがこの3点で自動的にチャネルラインを描画してその都度更新してくれるインジってないものでしょうか?
あのさぁ、成り行き注文で"invalid price"エラーが何度も出るんだけど何で? 業者にお前のサーバーの問題じゃないのか? って聞いたら、頑なに否定。 mt4を再起動しろなどと役に立たない解決策を提示してきた。
>>227 ジグザグの頂点を結ぶインジならあるけど、いる?
エントリー時にストップを指定したいんですけど、業者によっては OrderSend()にストップを指定できない場合があるようなので、 一旦ストップなしでOrderSendして、直後にModifyでストップ置くようにしました。 Modifyでもエントリー位置からストップまでの距離がstoplevel以上でない場合は ストップ置くこともできないはずですので、エントリーを見送る処理を入れている のですが、それでもごくまれにModifyに失敗してストップなしポジを持ち続ける 状態になってしまいます。どれもstoplevelまでギリギリなので、OrderSendから Modifyする迄の間に価格が変わってしまい、エラーになるのではと考えています。 そういう状況なのですが、ストップのないポジを持つのは怖いので なんとしてでも避けたいと思います。どうするべきでしょうか?
仕方ないから、ギリギリ許容されるレベルに ストップを入れるしかないんじゃないの。 失敗したら何回もリトライして。
start(){ の後でオーダーにストップあるかチェックしてなければ入れるコード書いとけばいいんじゃないの?
俺はストップ設定予定値が、ストップレベル値よりも広いかチェックして、 狭い場合はストップレベル値に+αした分のストップ値を設定するようにしているよ。
>>231 エラーが起きたら新しいレートから
ストップを計算しなおして設定すれば?
もしくは決済を自前でやるか。
結構前からなんだけどiPhone版のMT4って自動スクロール機能なくなちゃったの? 日足見てから15分足とかに切り替えると2ヶ月くらい前の日付に戻るので手動でスクロールするのが面倒。 前は自動で最新の時間に戻ってたハズなのに。
>>232 ,234,235
やっぱりその辺しかないですよね・・
許容値とか+αをどうやって導出するか考えなきゃなぁ
損切り処理は別に書いて、MT4や回線が死んだ時の最終防衛ラインとして置く
くらいの認識のほうがいいかもしれませんね
>>233 あーすいません、これ決済絡み処理をまとめた共通ライブラリに書いてて
そういうのは出来れば避けたいんですよ
238 :
Trader@Live! :2013/08/07(水) 14:01:44.34 ID:R/kNY1Bs
>>230 ありがとうございます
よさげな感じなので試してみます
バックテストで想定しているスプレッドってどれぐらいにしている? 15分足で、基本的に5pipでやってるんだけど、殆どが壊滅的な結果。 5pipのスプレッドって… 無理だったかにゃ、無茶だったかにゃ、無駄だったかにゃ…
滑りも考慮して、8pips ぐらいのハンデ戦で勝てないと実運用では無理だよ。
滑りを考慮して5pip だったんだが。 それ以上なら、もっと長い足をつかってボラティリティ稼ぐしかないねぇ。 デイトレというよりスイングぐらいのシステムじゃないとなぁ。
8pipsとか5pipsってどこの業者? ForexJapanでも15pips開いてることが多いんだが
俺のはFXDD 通常ユロドルで2〜3pipぐらいじゃない?ドルストレートでも4pipぐらい。 15pipって絶対無理だにゃ。
すまん、15pipsじゃなくて1.5pipsって書くべきだったんだな。スリップって そんなにあるのか。。。
固定1.5pipぐらいなら楽勝なんだが。 今バックテストみたけど 5pip→pf0.98 1.5pip→pf1.11 ルールは移動平均クロス。 これぐらい変わるよ。
BTなんざ2ピピで十分 傾向をみるだけだ
BTなんざ0.1ピピで十分 右肩上がりの資産を見てニマニマするもん
スプレッドを甘くみる者達は、魂を重力に引かれて飛ぶことができない。
自分で言うのもなんだが、名言じゃね。 あ、別に気にしない人いてもそれはアリかもです。
優位性のないストラテジで負けが約束されているのなら、 スプのような枝葉末節に拘っても仕方ない。 優位性の有無に焦点を当てるべきでしょう。
ぶっちゃけ、 スプをゼロにすると、 優位性のある(ようにみえる)ストラテジがゴロゴロ見つかってくるからね。
自分にとっての優位性というのは、ある定数のスプレッドを乗り越えて利益を残すストラテジの事かな。 それが何pipかは判らないけど。 さっきも書いたけど、スプレッドはマジ重力みたいなもの。 宇宙に行くには何度もテストを繰り返して、強力なエンジンを設計しなきゃならんと思うのだにゃ。
>>251 スプを0にしても優位性があるかないかは判断できるでしょ。
優位性のあるストラテジなんて簡単に見つかるもんじゃない。
通貨ペア別時間足別に最適化すればどの組合せでも利益になる。
こんなのは優位性のあるストラテジとは呼べない。
この先利益になる可能性は限りなく低いからね。
過去のデータから何百億何千億儲けようと、ラーメン一杯食えないよ。
スプレッドを0にすると多くのテストの平均はPF1になるはず。そっから成績のよいものを選択しても、実際のスプレッドに耐えられるか解らん。 なので、きつめのスプレッドで再度テストした方がいい。 スプレッド0であたりをつけるのは悪くないけど。つか俺もやってる。
1pipは必要よね
オプティマイズの結果ってどれを重視してる? 例えば、プロフィットファクターが良くてドローダウンが少なくても 最終的な利益はプロフィットファクター駄目でドローダウンが大きいパラメーターのやつより少なかったりするじゃん?
とりあえずオプチやって、成績いいの見つかったら、スプレッド変えたりペアを変えたりして、なんで成績がいいのか考える。 そのままそのプロパティを使わない。 焦って急ぐと失敗する。俺はね。 でも、手っ取り早く検索するから、オプチは重宝します。
ああ。何を重視するかは自分は PF > DD > 勝率 = 平均損益 > 総合損益 です。
損益をDDで割った数字で判断してる PFなんかどうでもいい
PFは役に立たないよね。
グラフが右肩上がってりゃいいよ
スリップとロット数の相関関係について書いてあるところないですか?
バックテストだと爆益なのにフォワードだと全然駄目ってケースって結構ある(´・ω・`)? スプレッドやスリッページとかでもフィルタかけてるのになぁ
教えてほしいのですが、 EAをロングやショートポジションのみで稼働させたいのですが、 壁のようにパラメーターで指定出来ないEAの場合、パラメータータブの 左隣の全般タブのコモン、ポジションで、Only Long とか Only Short を 選択すれば良いですか? バックテストをしてみると、ショートの場合OrderSend Error 4110 が 大量に出ますが、実稼働は大丈夫でしょうか?
とにかく負けたくないから負けが少ないシステム作りたい!
>>263 それが カーブフィッティング/オーバーフィッティング と呼ばれるものだよ。
日本国内の地図を全部覚えて (ヒストリカルデータを学習して)
どのカドを曲がればローソンがあるか (どこでエントリすれば利益がでるか)
分かった所で、ニューヨークでは迷う。 (分かったところで、未来予測には役に立たない)
>>265 それが難しいんだよな。
ノーベル賞学者が作ったモデルでも大損出して破綻するんだから。
一生模索し続けるしかないと思う。
>>263 ポジらないのが駄目と思い、
スプ値広げてました
すみません
滑りはバックテストで見れないとしても 結果がそこまで極端に変わるものかなあ 若干の差だと思うのですが それにしても全然ポジらない業者があって困っています
どうして沢山ポジる業者と 全くと言っていいほどポジらない業者があるのでしょうか??
>>264 片方しかポジらないということで
EAのロジックに差がなければな
ボリバンふ触れたらではなく、指定した数値より広がったらアラートが鳴るインジとかありますか? 色々探したんだけど、どれもこれも触れたらなるやつばっかりで 知ってる人が居ましたら教えてくだされ
ボリバンを太くするだけではアカンの?
>>276 例えばボリバンの+3σから-3σの幅がが50pips以上広がったらアラート、みたいな感じのインジが欲しいんですよね
今はボリバンの幅を数値で表示してくれるインジを使ってるんですけど、アラート機能がないので見逃すことがあるわけでw
ローソクが設定数値に来たら鳴るラインインジなら見かけたけどね
>>266 ゆとりスレでそれを言っても虚しいだけ
みんな後ろ向きに一生懸命で、前を向いている人なんていない
簡単な改造なのに既存ありませんか?と探すというのもゆとりすれならでは?
BT厨と一緒にされたくないね 自分は実稼働で本気で取り組んでるんだ あー忙しい忙しい
見つかりましたー
素人なりに勉強しながら作ろうかとも考えたんですが、既存のがあればそっちのほうが手っ取り早いですから
「聞くは一時の恥」という諺もあるくらいですから、
>>280 もFXに限らず何か分らないことがあれば聞いたほうがいいですよ
しかもここは2ちゃん
カッコつけても仕方ないw
if分の&&を24個入れてるんだけど、これはさすがに無理かな・・・
なんで?
>>279 でも、貴方だけは、前向きに一生懸命だと信じてるよ
ロジックは合ってるはずなんだが 真で返ってこないんだ・・・
287 :
Trader@Live! :2013/08/08(木) 20:41:51.38 ID:4eGbIoQ5
>>286 if(X){
if(Y){
if(Z){
if....
}
}
}
で攻めろ
ネストは4段くらいまでだぞ checkstyleに怒られるだろ
>>288 ごめん当てずっぽうだった
じゃあ
if(X1 && X2 && X3 && X4 && X5 && X6){
if(X7 && X8 && ... ){
if(X13 && X14 && ...){
if(X19 && X20 && ...){
}
}
}
な感じに…
ありがとう ネストに一回書き直したが行けず、もう一回じっくりと 見直したら誤植があった。 そんで、なんだかんだ24個入れてごり押しできたわ
すいません、教えてください ひとつだけクリックしても無反応でチャート上に表示できない インジケータがあるんですが、解決方法はあるでしょうか。
293 :
290 :2013/08/08(木) 23:50:50.82 ID:XI4x/FlA
もう少しif文に&&をぶっこみたいんだけど いくつまで行けるんだろうか? レファレンス目を通したけど上限についての記述は見られなかった。 誰か試してみた人いない?
>>293 if文などで、&&や||を使った場合、
途中でFalseでも、繋いだ全部の判定を処理するから、
適度に分けておいたほうがいいんじゃなかったけ?
100はいけるだろjk
>>294 それはその通り。
&& で False になっても || で True になっても
最後までひたすら評価する仕様だったと思う。
そういや二重の比較がだめって話も昔あったな if(a>b>c) とした場合 a.>bが真の時は1、偽のときは0として認識されるから a>b>cが1>cになったり0>cになったりしてうまくいかない。 蛇足になったが適度に分けると吉ということだ。
>>296 マジか マジだ(実験した)
if( isNotNullVar && proc(isNotNullVar) )
な書き方できないのかこのクソ言語め……
299 :
291 :2013/08/09(金) 03:03:49.12 ID:YbF1Ufsh
名前角の忘れてました TCCI Histoというインジケータです
>>293 ついでに実験してみたよ
70000個のtrueが通ったので言語仕様的に上限は無いと思う
そこは普通のと一緒だね
関数に何のデータ型か指定せずに値を渡すことってできませんか? 関数内でiCustomを実行するときなど 引数のデータ型がまちまち、あるかないかも分からない場合でも動くような関数を作りたいです
>>298 そこはCじゃなくPascalと同じってことだな。
お前の書き方の方がクソに見えるが。
>>300 expression too complexみたいなエラーは用意されているから複雑さに
よってはだめかもね。
>>301 string以外はdoubleを使うのが楽だな。
stringも必要な場合は型指定パラメーターみたいなものを導入するしか
ないかもな。
>>301 (引数が)あるかないかも分からない、というのはコンパイル時まで決定できない、てことだね。
>>114 と関連しそうだけど、不定個数の引数を持つユーザー関数は作れないらしいよ。
同様にデータ型が不定な引数も無理なんじゃないかな。
VBAのVariantみたいに数値も文字列も突っ込める型があればいいんだけどね。
Printの引数は最大64だぞ?
>>304 で? 引数の型や個数が不定なユーザー関数が作れるはずだって言いたいわけ?
いや、別に? よくわかってないやつがよくわからずに質問して回答してるなぁくらいだ。 とりあえず、質問したいやつは本当にやりたいことを具体的に書いた方が いいと思うよ。やり方はいくらでもあるわけだし。
>>302 JavaやC++でぬるぽ防止のために多用される書き方だよ
頼むからもうちょっと視野を広げてくれ
お前みたいなクソVBAプログラマーのせいで三項演算子が禁止される
すまんな、VBA使ったことなくて。 お前の方こそ言語仕様くらい確認してから使った方がいいぞ?
MQL4にはポインタも3項演算子もないんだけど、わかってる?
喧嘩すんな。マイノリティ同志じゃないか
相場で損ばかりしてるから、イライラしてるんだろう
>>302 >>303 ありがとうございます
無理なんですね。できるかできないか分かっただけでも勉強になりました
皆さんいろんな言語を使えるんですね
>>301 作りたいユーザー関数の内部動作が分からないので引数の受け渡し方だけにしか着目してないけど
たとえば
1. 関数に渡す引数の個数が不定に対して…
呼び出し側で配列を用意して必要な数のデータをセットする。
関数コール時にその配列を指定。
セットしたデータの個数情報は一緒に引数として渡すか、或いは、配列に特殊値を入れて目的データと区別させるか。。。
2. 関数に渡す引数の型が不定に対して…
文字列型としてデータを渡しておけば、関数側では必要に応じてStrTo系で数値に戻せるから
引数の型が不定ならintやdoubleも文字列として渡せばどうかな。
ただし、"123.45"を渡してユーザー関数内部でも文字列として処理したいケースでは
関数コール時に型情報も一緒に渡してやらないと後の処理判断ができないとおもう。
んで、上の二つを組み合わせて文字列の配列にデータを埋め込んで関数に渡してやれば
なんとか実現できるかもしれないよ。
これらのオーバーヘッドに見合うだけのメリットがあるかどうかは、301の判断にお任せします。
315 :
314 :2013/08/09(金) 15:54:18.91 ID:XiHIw6+0
>>313 気付かずにレスのタイミングがずれてしまって申し訳ありませんでした。
>>314 doubleからstringへのキャストをMQL4に任せると丸められてハマることがあるのが注意点だけど、それ以外は
特に問題ないと思うよ。
ちなみに、型情報は要らない。
なぜなら、すべてが静的に決定するMQL4の世界では、関数が自身の必要とする引数の型を知らないという
ことは起こり得ないから、どの型へキャストすればいいかは関数を書いた時点で既に決定してる。
可変長引数はデフォルト引数でもある程度は代用できるよ。
てか、7bit氏のデバッグ出力用print関数で代用されてた(最大数が制限されるけどね)。
ライブラリ側には置けなくなるけど、mqhに置いて中継ぎしてやるとかすれば迂回できる。
librariesにdllがあるのにdll load error 126が返ってきます 次にどうしたらいいですか?
dllの使用を許可するには、もちろんチェック入れてあるよな?
>>318 はい、もちろんです
検索したらそのEAでよく出るエラーらしく使えないかもしれません
>>319 126はそのDLLが見つからないってエラーだな。
>>316 > ちなみに、型情報は要らない。
> なぜなら、すべてが静的に決定するMQL4の世界では、関数が自身の必要とする引数の型を知らないという
> ことは起こり得ないから、どの型へキャストすればいいかは関数を書いた時点で既に決定してる。
ちゃんと読まないで脊髄反射のごとくレスするから的外れな内容を書いたんだと思うけど
暑いし時間も惜しいので、手取り足取りの指導は止めておきます。
自分でよく読んで考えてみてね。
長文乙。
>>321 暑くて時間も惜しいなら
嫌味だけのレスすんなよ
え?なにMQLの言語仕様なんかで喧嘩してんの? どうでもええやんそんなの 問題は儲かるか儲からないかだ MQLなんて動けばそれでいい
>>324 利息のつかないコーディングはしちゃダメってジッちゃんに言われて育ったから
書き捨てるとか勿体なくて逆に俺にはちょっとムリw
こんぴゅーたーおじいちゃんェ・・・
道具に使われてるなぁ
おまいら儲かってるの(´・ω・`)?
かなり。
おすすめのスキャルEA教えろ下さい フリーのもので構いません
>>331 ロシアのフリーEAводкаっての超儲かるマジおすすめ
最新Verは2.4だ。過去Verはバグだらけだから間違えるなよ
водка 最高だね。
335 :
Trader@Live! :2013/08/10(土) 12:46:15.11 ID:PVyAamn7
そんなのどこにあるんだ CodeBaseにも見当たらない
ステマ
>>336 読めない
どこにあるか分からない・・・
あくまでジョークEAだから真にうけないようにw ネタは過去データ先読みで勝率常に100%
いいですね、これ ジョークなんですか? 早速使いたいんですが駄目なん??
そういうことかー・・・ デモで使ったらどうなりますか?
>>340 なんでファイルアクセスなんてするんだこの糞EA
って思ってソースみてた・・・w動かしてはいなかったけど
344 :
Trader@Live! :2013/08/10(土) 22:19:50.90 ID:JoOocB0N
質問があります。 MT4のバックテストについて 1Mと1Hでは結果に差異があるのでしょうか?
もちろんです…
346 :
Trader@Live! :2013/08/10(土) 22:26:13.77 ID:JoOocB0N
たとえば、スキャルを主にする人の場合で、 少しの差分(5pipぐらい)で判断する場合は 1Hの時間足でのバックテストはあまり意味がないとか・・?
意味が無いことはありません 差分だけでなく、どのような動きをするかを 1時間でも十分判断できます
>>344 どの足を使うかはプログラム次第なのでEAによる。
俺のEAはどの足に載せても同じ動きをするけどね
私のEAは全く違う動きします その足のインジを取得するので
特定の条件を満たした時に、特定の動きをする・・・ そういう意味では、どの足でもどの通貨でも同じ動きをするわな
352 :
Trader@Live! :2013/08/11(日) 00:42:20.53 ID:AtN8W27Q
Спасибо
もしかしてスキャルピングEAで実運用で利益出すのって難しい(´・ω・`)?
簡単に出来りゃみんな大金持ちです
そういう事じゃなくてさ 同じPFのデイトレEAとスキャルピングEAがあったとして スキャルピングEAの方が成績あげるの難しいのかなって
実際は滑りまくりですからね 海外はスプが5以上広がることもあるし 国内は顧客に不利な取引(スキャル)は禁止の方向らしいし スキャルEAは何かと不利ですね
デイトレEA と スキャルピングEA の違いを 平均ポジション保有時間の差と考えると、 超々短期 =難しい 超短期 =簡単 短期 =ちょいむずい 中期 =むずい ちょっと中期 =簡単 長期 =むずい 超長期 =かなりむずい 超々長期 =まず勝てない こんな感じ。 通貨ペア毎に 勝ちやすい平均ポジション保有時間は違うからね。
EA可能と謳いながら業者も対策をしていたり スキャルはオワコンか
スキャルできないなら高レバでやりたいよなぁ
やっぱ自作スイングが安定してるわ
ひとつの口座の中で複数のEAを動かすと、処理速度とかに影響でますか?
>>355 BTのPFが同じなら間違いなくスキャルのがきついだろ
実運用じゃ滑りまくるんだし
363 :
Trader@Live! :2013/08/12(月) 16:52:45.83 ID:Quth7IAr
暇なんですね(´・ω・`)?
366 :
Trader@Live! :2013/08/12(月) 18:16:54.63 ID:Quth7IAr
ありのまま今起こった事を話すぜ 負けた日のトレードをバックテストしてみたら勝った事になってた 何を言ってるかわからねーと思うが おいらも何をされたかわからなかった(´・ω・`;)
スキャルで注文が何十個もキャンセルされてしまいます(BuyStop/SellStop) バグの可能性が高いでしょうか? それとも業者が跳ね返してるとかありますか?
疲れた もうチニタイ
もう寝ちゃったか 明日教えて下さい
無理無理 ごめん勘弁して
稼げるシステム作ってくだしあヽ(●´ε`●)ノ ホスィ 出来高制でお金払うょ
明日話そー
>>368 ストップレベルの幅以内で指してるからじゃないの?
>>376 実際にうごかしたら、それっぽい所で音はなってるの?
>>377 鳴るには鳴ってるんですけど、
例えば10pipsに設定して鳴った時点と前回時点の幅を見ると
20pipsより数pipsズレてるんですよね。
レートが急変動したわけでもないんですが。
間違えました。
>>378 はなかったことにして、
例えば20pipsに設定して鳴った時点と前回時点の幅を見ると
なぜか15pips変動したところで鳴ったりしてます。
別に間違ってはなかったけど
OBJ_TEXTの位置って Xはチャートの右端 Yは価格(例えば100円)のように指定できないんでしょうか? 通常はXは日付で指定することになってますよね?
>>381 逆に考えて、 チャートの右端の時刻を求めたらいいんじゃない?
>>382 仰るとおりなんですがチャートシフトしたりしなかったりするので
そのことを考慮した時刻は求められるのでしょうか?
>>378 ダンロード出来ぬ。
>>383 それが出来ないのなら、
OBJ_LABELを使って、
Yが上手く価格になるようにしてみるとかね。
こっちのほうが難しい気もするけど。
>>383 WindowFirstVisibleBarをiTimeじゃ、ダメかい?
>>384-385 サンクスです
四苦八苦しているところです
今知ったんですがプライスの横に表示するオブジェクトにはSYMBOL_RIGHTPRICEも使えるみたいですね
ちょうど横に表示してくれるのはいい感じなんですが
四角い枠を消せないんでしょうかこれ?
なかなかドンピシャリな方法が見つかりません^^;
やべえ 爆益EAができそうで怖くてつくれねえ そういう精神的な病気にかかってる
もう諦めました ありがとうございました
バックテストとデモトレードの結果が違いすぎてワロエナイ(´・ω・`) デモフォワードで爆益なのにバックテストで負けてるとか 負けてるのにバックテストでは勝ってるとか おまいそれたった二日前の結果ちゃうんかと
業者が稼がせないようにしてるんだよ ひどいおね
EA自体諦めたの??(´・ω・`)
すきゃるぴんぐ
スキャEAはやっぱり難しいのかー(´・ω・`)
395 :
Trader@Live! :2013/08/13(火) 20:14:36.15 ID:PqqbA3Pz
100ピピの値だけを取得するにはどーしたらいい? EA作ってて、まずは現在の値の100ピピの値を取得し(変数に格納する)・・・ ってのを作ってるんだけど、 ユロ炎だと int a = Ask でintが小数点は取得できないから必然的に消去されるでしょ? ユロ炎やポン円ならいいんだけど ユロドルやポンドルだとこれが通用しない。 だから、どの通貨でもそのEAあてたら同じように ”100ぴぴの値の部分だけ、抽出” っていう状況を満たしてくれる方法なってないでしょうか? よろしくお願いします><
double x = MathFloor(Ask * 100) / 100;
小数点といえばダボルですね
>>390 そんなん当たり前だよ
BTは感度よく注文入りすぎなんだ
実際は値が絶えず動いてて注文弾かれまくり
泣けてきた がんばろう
400 :
Trader@Live! :2013/08/13(火) 21:27:52.82 ID:PqqbA3Pz
396 それだと ユロ炎などは指定のようにならなくないか??
ならないよ。 まぁpipsの定義が曖昧だから適当に場合分けなりするしかない。
そんなの外部変数入力で指定できるようにすればいいんだよ こまけえことは(ry
そんな使うのに面倒なことは普通せんだろ。
>>400 100の部分をMathPow(10,Digits-3)とかすればいいんじゃないかい
Bid - MathMod(Bid,100*Point); とか
407 :
Trader@Live! :2013/08/14(水) 00:01:47.36 ID:jAy0Sjgk
396 から 405 さんきゅーです。 解決しました。いや 解決させました。 分岐で処理することにしました。
やっと聖杯に近いものを見つけたお まだエラーでるんだお 絶対直したいお
BTのやり過ぎで眠れない やばたん。。。(´めωめ`)
ストップロスが0で注文されてしまうエラーです どなたか教えて下さい 起きたらレスしますm(_ _)m
いつ起きるかねぇ 夕方かもねーアハハ
SLがないとか またジョークソフトかお
413 :
Trader@Live! :2013/08/14(水) 16:37:45.37 ID:uYgP/7Ka
forexのを使ってるのですが、 急に“残り15511分の1秒”とかの表示になって自動的に更新されなくなりました 何が原因かもわかりません どうすればいいでしょうか
普通のPCで15511分の1秒は計測できないよ
もうだめら、、 商材を買おう、、、
下にストップロスがあるのに狩りに来ないとかもうね(´・ω・`)
すいません誤爆しましたorz
419 :
にょろ―んインジ ◆jPpg5.obl6 :2013/08/15(木) 20:48:28.91 ID:o/jixKIz
みんなどこのVPS使っているの?
>>419 自分はお名前・使えるねっと・Winserver・Willnetと使ってきて
今はWEBKEEPERSです
どなたか助けて下さい 2つのVPS(WindowsServer2008)でdllエラーが起きました EAのアプリと付属のVC++x86も念のため一緒にインストしたところ、 1つ目のVPSは、MT4でEAを表示するとすぐにシャットダウン(2社とも)、 2つ目は「Cannot find MSVCR100 dll. Please re-install」と表示されます 2つのVPSでなるということはWindowsServer2008がそのEAは駄目なんでしょうか?
MDPか?
>>422 はい(´・ω・`)
解決方法わかりますか・・・?
>>424 ありがとうございます!やってみますm(_ _)m
iOS版、sell押してるのにたまに買ってることがあって怖い。
427 :
Trader@Live! :2013/08/16(金) 00:01:53.17 ID:urPEZcBo
MT4を起動した時に、 取引している通貨ペアのウインドウが 並んですべて表示されるんだけど、 これを1通貨ペアで表示させることってできるの? で、下のタブを押していくと、他の通貨ペアのチャートも確認できるって感じで。
なんかMT4にバグないかな? パラメーターを替えるとEAが発注することがあったり(発注には関係ないパラでも) ロジックに合致してないときでも小ロット設定だと発注されないのにロット数上げると発注されまくることがあって コードの書き間違えかなと思ってたけど さっき新規デモ口座開設してEAがアクティブになってないのに2件発注される現象があったお
あーでも、やっぱりコードの書き違えもあるらしい orz
430 :
Trader@Live! :2013/08/16(金) 05:53:06.76 ID:b7hVUNQg
チャートの上下にある余白について伺います。 ドル円を例にすると、5銭程度より余白が狭くなるとチャートの縦スケールが拡大しますが、 この『5銭程度』を指定できるようなインジケータはありませんでしょうか。 (もう少し余白を大きくとりたいのです) そのようなインジケータがあるようでしたら、是非とも御教示頂けますようお願い申し上げます。
>>419 VPS上でEA稼働させるやつの神経がわからん。
儲けの出るEAなんて速攻でコピーされてるんだぞ。
コピーして動かしたら作者にメールがくるようにしておいて置くとか。
スプレッドは0だが、ランダムにエントリーしてランダムにエグジットするEAが成績良すぎてワロタ。 ポンドル6年間4000程の売買でPF1.08 しかも右肩上がり直線。 ユロドルは6000程の売買でPF1.04 EAなんて運だということかな。 ちょっと他のペアでもテストしてみるわ。
21時に買ってロンドンリカクする→52%の優位性があるとする 儲かるからってこんなんに賭ける奴とかアホっしょ 全然収束しねえw EAってなそういう物w
ドル円でPF1.05 6766トレード… 修正。ユロドルのトレード数も6748でした。 ちなみに、ポンドルの正しいトレード数は6692 なんだこれ。
>>433 マジで昔EXCELでスプレッド考慮もしてランダム売買&マーチンで
すげー増えて、こりゃ億万長者だな^^と思ってたけど
MT4でマーチンやったらバックテストで必ず破産するんで無理かと
思ってた。ランダム売買も組み込めばいけるんやな。忘れてた。
ランダム売買とマーチンの組み合わせは怖いけど。 ランダムとストップはありかな。 スプレッドコストが無いとはいえ。3通貨ともマイナスに為らないのは、プログラム間違ってるかもな。 みると勝率がどれも、57%前後。 二項分布の計算忘れたけど、50%の確率のものが6700回試行して、どれもが57%の勝率っていうのはおかしいかもしれん。 残念だが。ひとつ勉強したわ。
エントリーに 優位性が無くても エグジットに 優位性があれば十分に勝てるよ。
439 :
Trader@Live! :2013/08/16(金) 19:39:41.76 ID:N5zS9Rmt
>>438 俺もそう思います。
だけど、今回のはエグジットもランダム。
正確にいえばエントリーの時に、ランダム分、バーが進んだらエグジットするようにした。
ただ、ベースになったEAにフィルターが付いてて、それが効いてるかもしれない。
そのベースのEAはちょっと複雑なプログラムなんで、今日は詳しくみる気力がないゎ。
バックテストで一喜一憂しないつもりだったが。
予想外で起きた好成績は萎える。
ユーロドルや ドル円は 時間フィルター有効だからね。。。 MQL4で乱数の出し方注意しないと、 毎回全く同じ乱数が出ていることも。
時間フィルターてなんですか?
時刻ファクターと言えばいいのかな?
>>424 管理者権限のはずなのですがやはりできませんでした><。
商用EAがノートで使えるのにVPSで使えなくて困ってます
ノートPCにはインストできたのに
2つのVPSサーバー(Windows2008)でエラーで使えません
一度ノートにインストしてしまうとVPSでは使えないんでしょうか??
1つ目はインスト自体できない(クリック反応なし)
2つ目はインストできたけどチャートに表示するとdllエラー
Windows2008だから駄目とかありますか??
ちなみにノートはXPです
もしかして1口座の縛りあるのに インストする時に複数のMT4を選択してインストしたらからか
明日アンインストールして再度できるかやってみますm(_ _)m
いや、でもそれにしてもノートでは使えてるから違うや やはりWindows2008のdll問題か
448 :
Trader@Live! :2013/08/17(土) 13:56:10.00 ID:MSsfutLK
以下のとおり、D1とW1とMN1の表示の時、ラインを引かないと指定しているのにゆうこうと聞かないのはなぜ???? if(Period() != PERIOD_D1 || Period() != PERIOD_W1 || Period() != PERIOD_MN1) { ラインを引くプログラム }
if(Period() <60) でいいんじゃね
if(Period() <1440) だった
452 :
Trader@Live! :2013/08/17(土) 14:45:33.07 ID:ba0J4mNW
どなたか教えて頂けないでしょうか? IF条件を変更したところ、テスターでbuyしか実行されなくなりました。 売り買いの構文を逆にすると、今度はsellだけが実行されます。 int start() { //平均足 始値代入と終値の代入 Heiken_Open_3=iCustom(NULL,0,"Heiken Ashi",2,3); (中略) Heiken_Close_1=iCustom(NULL,0,"Heiken Ashi",3,1); //買いエントリー if( Heiken_Open_3>Heiken_Close_3 && Heiken_Open_2>Heiken_Close_2 && Heiken_Open_1<Heiken_Close_1 && ( Ticket_L == 0 || Ticket_L == -1 ) && ( Ticket_S == 0 || Ticket_S == -1 )) { Ticket_L = OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,0,0,Comments,MAGIC,0,Red); }
453 :
Trader@Live! :2013/08/17(土) 14:46:19.52 ID:MSsfutLK
449 と じゃなく か だよ and じゃなく or だよ 450 451 できなかったお〜 泣
454 :
Trader@Live! :2013/08/17(土) 14:47:41.03 ID:ba0J4mNW
452の続きです。 //売りエントリー if( Heiken_Open_3<Heiken_Close_3 && Heiken_Open_2<Heiken_Close_2 && Heiken_Open_1>Heiken_Close_1 && ( Ticket_S == 0 || Ticket_S == -1 ) && ( Ticket_L == 0 || Ticket_L == -1 )) { Ticket_S = OrderSend(Symbol(),OP_SELL,Lots,Bid,Slip,0,0,Comments,MAGIC,0,Blue); } //買いポジションのエグジット if( Heiken_Open_2>Heiken_Close_2 && Heiken_Open_1>Heiken_Close_1 && ( Ticket_L != 0 && Ticket_L != -1 )) { Exit_L = OrderClose(Ticket_L,Lots,Bid,Slip,Red); if( Exit_L ==1 ) {Ticket_L = 0;} } //売りポジションのエグジット if( Heiken_Open_2<Heiken_Close_2 && Heiken_Open_1<Heiken_Close_1 && ( Ticket_S != 0 && Ticket_S != -1 )) { Exit_S = OrderClose(Ticket_S,Lots,Ask,Slip,Blue); if( Exit_S ==1 ) {Ticket_S = 0;} } return(0); }
455 :
Trader@Live! :2013/08/17(土) 14:49:54.20 ID:ba0J4mNW
452と454の者です。 すいません。構文中の&が文字化けして、&&になっている ところがありました。 お見苦しくて申し訳ありません。
人のこと言えないけど酷い書き方だな・・・
>>448 int init()
{
の下に
if(Period()>1 && Period()<1440){
で
start();
}
return(0);
}
で、できると思う。
その下から
int start()
{
って続く
こんな感じになるって事ね。 int init() { if(Period()>1 && Period()<1440){ //---- drawing settings SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); //---- indicator buffers mapping SetIndexBuffer(0,upper); SetIndexBuffer(1,lower); //---- name for DataWindow and indicator subwindow label IndicatorShortName("Donchian Channel("+periods+")"); SetIndexLabel(0,"Upper"); SetIndexLabel(1,"Lower"); //---- initialization done start(); } return(0); } //+------------------------------------------------------------------+ //| now do the dance. | //+------------------------------------------------------------------+ int start() { int limit;
460 :
Trader@Live! :2013/08/17(土) 17:07:46.21 ID:MSsfutLK
456 457 458 459 まぢすまねぇ おらの理解不足だったわ できました!!!。 有難うございました。 456 457 458 459にあえてよかったわ。 また、なんかあったら質問すると思うから その節は またよろsiこ尾根がいします?<>
>>453 >449
>
>と じゃなく か だよ
>
>and じゃなく or だよ
否定の記述を並べてるんだからさぁ。
算数でド・モルガンの法則習わなかった?
!(日足 || 週足 || 月足) == !日足 && !週足 && !月足
>>448 の書き方は右側。
>>458 ああ。。。
でも、1分足でスキャするような人だと、ティック毎に処理が走ると重くなるかもだから
int start()
{
if(Period()>1 && Period()<1440){
の方がいいかもしれないお
とあるスキャルEAが、多数の業者で売買すらせず、 他の限られた業者では問題なく高頻度に売買する(バックテストの通り) という現象は、どんな原因が考えられますか? ちなみに売買する業者のストップレベルは0や30 売買しない業者は10〜50など色々です 多数で機能しないということは、 業者に対策されたEAという判断にもなりますでしょうか?
的外れなこと言ってるかもしれんが ビルド500からは建て玉と同時にSL・TPは入れられなくなったので MT4最新版推奨業者では内部エラーになって古いEAでは建て玉に失敗してるとか
>>465 え、じゃあその場合
どうしたらいいんですか?
建て玉と同時にSLTP入れるEAはまだ多いと思うのですが・・・
ごみんあまり詳しく知らないw けど最近そういう事が書いてあった気がする
でもそれなら納得しました 多数の業者で注文すら入らないというのは・・・ 国内では顧客に不利な注文を規制化し、 海外では顧客に有利な注文を規制化し、 どのみちスキャルは今後やりずらくなりそうですね
それだったらなにかしらの エラーが表示されてるだろうに。
>>469 エラーは表示されていません
ただ注文がされないのです
1つの業者では指標などでも沢山注文され明らかにスキャル的な動きをしているのに
多数の業者で動かない
バグか規制かと思ったのですが
他にも何か弾かれる原因があるのでしょうか・・・
ちなみにエンベロープやボリンジャーを使うスキャルEAです
>>470 じゃあSLとかTPとか関係ないんじゃないの?
その場合はエラーがでそうな気がするんだけど。
>>473 バックテストならいくらでも夢が見れる。
仮にその話が本当だとしたら、
世界の貧困問題はすぐに解決するだろう。
475 :
Trader@Live! :2013/08/18(日) 01:17:37.42 ID:fy4Ojjzx
>>456 すいません。勉強不足でして、もっと洗練したものが
書けるようになったら、今度はここで誰かのお役に立
てるようになりたいです。
>>462 ありがとうございます。参考にさせて頂きます。
まだ斜め読みですが、もっと読み進んで理解を
深めてみます。
>>473 早速、追加口座申請してみました
バックテストが楽しみです
>>470 業者の発注方式がカウントダウンの場合、
SLTPを設定しているOrderSendは弾かれる。
業者が発注方式を変えて、稼働中のEAが止まることもある。
インディケーターではSleep()関数が使えませんが 何か代替手段ないんでしょうか・・・?
API直接呼べばできるだろうけど、意味はないだろう。
>>478 Sleep をどうして呼ぶ必要があるのか教えろください。
できるんですか できれば具体的な方法を教えて頂けませんか
MT4立ち上げた直後などグローバル変数を正しく取得できないことがあるので 待機させたいんです
483 :
Trader@Live! :2013/08/18(日) 10:58:07.05 ID:TxsCpnh4
ラインを引くインジケーたー をつけてます。その後 ↓ インジケーターを外した時に ラインが消えるにはどーしたらいい? いちおう↓ いれてるけど消えない。 int deinit() { //---- ObjectsDeleteAll(OBJ_TREND); //---- return(0);
>>483 ObjectsDeleteAll()の第一引数はウィンドウ番号。
メインチャートなら0、サブチャートなら1〜。
>>478 ダウンロードしたインジでSleep使ってるのあるけど
意味ないことしてるんかな?
具体的には↓
int qBars; double qTime=0;
int init(){
qBars=Bars;
・・・・
}
int start(){
if (qBars!=Bars){ deinit(); Sleep(1000); qBars=Bars; qTime=0; return(0);}
if (qTime==Time[0]) return(0); qTime=Time[0];
・・・・
}
これの目的がわからんし、
リターンの後に代入文とかわけわかんないし
return は if が成立したときの処理で、成立しなかったら代入文が実行される。
>>485 インジケーターからのSleep()呼び出しはエラー扱い。
>>482 > MT4立ち上げた直後などグローバル変数を正しく取得できないことがあるので
> 待機させたいんです
init 内で、起動時刻を記憶。
start 内で、記憶した起動時刻と現在時刻を比較して一定時間内なら何もせずに終了
こんなのでいいんじゃない?
インジケータの場合、ウィンドウハンドルが取得できないケースがあるので、
その場合だけ何も処理しないようにするだけでも回避できる可能性があるけど。。
>>485 > if (qTime==Time[0]) return(0); qTime=Time[0];
は改行してないから見にくいだけで実質こうだろ
if ( qTime == Time[0] ){
return(0);
} else {
qTime = Time[0];
}
490 :
Trader@Live! :2013/08/18(日) 11:47:37.58 ID:TxsCpnh4
484 サンキューです。!!!
>>488 なるほど!
確かにウィンドウハンドルすら取得できないケースもあるんですよ
有難うございます
>>481 インジはMT4のUIスレッドで動いてるから、インジがスリープしちゃうとMT4がウィンドウごと固まってしまう。
だからインジはスリープできない仕様になってる。
けど、それらを踏まえた上でなお知るかボケ!って言うなら、Win32APIのSleepEx呼ぶとか単純にスピ
ンウェイトするとかで代替可能。
もっと賢く代替するなら、スレッド起こして、一定時間待機して、擬似ティック発火させた上で、インジ
側がsleep相当の処理済みだということを認識できる仕組みを入れておけばいい。
>>481 単純に考えればいいじゃない。
init()で取得できないならstart()内で取得すればいい。
start()内で取得できないならstart()を抜けて、
取得できたときor取得済みのときは通常処理で問題ないでしょ。
>>492 有難うございます
何故インジだけ不可なのか不思議だったんですが当然理由があったんですね
「MT4のUIスレッドで動いてる」というのは もう少し分かりやすく言うとどういうことですか?
その分インジだけ特別に動作が軽くなる(効率的に処理できる)ように設計されているという事でしょうか
>>493 仰るとおりです
MT4起動直後に遅滞なく処理できればいいなと考えてました
>>494 Windowsプログラムはメインとなる無限ループを1つ持ってて、そのループ内でメッセージを処理しながら動いてる。
ウィンドウに関する処理も含めて、メインスレッドのメッセージループ内で、来たメッセージを読む→個々の処理を
呼ぶ→次のメッセージを読むを繰り返して処理してるから、呼んだ先の処理がsleepして処理を止めると、(その
処理が終わるまで)次のメッセージを読めない=ウィンドウに関する処理もされない=ウィンドウ(UI)が固まって操
作不能になるってわけ。
>>494 >インジだけ特別に動作が軽くなる(効率的に処理できる)ように設計されている
これに関していうと逆かな?
EAやスクリプトは独自のスレッドで動くようになってるから、基本的には他の処理に煩わされ難くなってる。
#メインスレッドが止まっててもティックは来るのか?オーダーの通信処理は可能か?については調べたことない
#から定かじゃないんだが・・・・・・
逆に、インジは多少重くてウィンドウが凍ったっていいじゃない?表示上の問題だけだものって感じになってる。
バックテストのスプレッド2指定でPF1.9とかのEAが 「現在の」スプレッドを選んでスプレッド1.5でテストすると PF0.45とかになるの何でなの?
>>477 そのようなことがあるんですね・・・
どうしたら良いでしょうか?
解決策を教えて下さい
>>498 sltpなしで注文したあと
modifyでsltpを変更する
もしくは決済処理を自前でする
えっ(´・_・`)
これスプレッドのところに手動で数字入力すると そのスプレッドでバックテストできるんですね。
>>502 そうだけど?
ドル円でいうと下3桁業者と2桁業者では同じ値を入れても違うということだね
そこに15といれてバックテストしてみたらよい。
現在のスプと同じになるでしょう
MT4でスプレッド指定できるようになってたのか! でも、0には指定できないんですかね? 0にしたい場合は例の奴使うしかないですか?
>>495 本当に有難うございます!
高度な内容で理解が難しいですが
インジのメリットは複数走らせることができる程度ですかね
久しぶりに、チャート観ようとFX Proのmt4起動したら繋がらなかった。 そういえば、デモ口座って、使用期限があったんだっけ・・・忘れてたわ。 FX Proのデモ口座は、無期限に使えると思ってた。 1ヶ月使用しなかったら、使えなくなるみたいだね。 取引は別会社でmt4のチャートのみ必要な人は、みんなFX ProやFXCC使っているんかな・・・すごい量だろうね。 良い会社だなw
ポジションとかの変数を残さないといけないからEAじゃない? 俺は自分で作ったけど…
509 :
Trader@Live! :2013/08/19(月) 00:40:41.33 ID:50Pq/rli
フィボナッチを引きたいんですが、 ロウソク足のちょうど高値安値の部分にポイントを置くにはどうすればいいんですか? なるべく正確に引きたいんですが 磁石のような機能ってないんですかね
あるよ
511 :
Trader@Live! :2013/08/20(火) 20:44:46.52 ID:lmlGlzKv
質問@ サイバーエージェントで逆指値や指値するとeror130がでませんか? 質問A 対策案をググったら、SL値とTP値を指定するとダメみたいということで、以下のとおりつくりましたがうまくいきません。 要は、後程、SL値やTP値を指定する方式です。 モディファイが機能しません。なぜでしょうか? OrderSend(Symbol(),OP_BUYSTOP,Lots,Ask + 500*Point,Slippage,0,0,"",MAGIC,0,Red); OrderSelect(OrdersTotal()-1,SELECT_BY_POS); OrderModify(OrderTicket(),0,0,OrderOpenPrice() + TP*Point,0,Red); ※上記はTPだけを指定。 ※TP*POINTは任意
>>511 OrderSend の返り値をしらべようね
利益が伸びてきてある地点まで来たらそのポジにトレーリングストップかけるような スクリプトかEAみたいなのないでしょうか?
アーミーナイフEA みたいな名前で海外にあったような
まりがとう
5digit専用の業者のEAというのは小数点のことでしょうか? 口座番号やまさか残高の話じゃありませんよね?
>>517 あらゆる可能性を否定するな。
常にデモ口座での確認を行ってはいけない。
>>518 そうですね...
5桁の口座専用って最初は口座番号かと思ったんですが
よく分かりません
デモで試してみます
5桁ってブローカーの値付けだよ チャートを開いて、該当通貨ペアを表示してその値動きの値が5桁か4桁かってこと。
>>520 やっぱりそうでしたか
ほとんどの業者で大丈夫ということですね
デモでも確認できました
ありがとうございました
と思ったら業者から一言返信が来ました 5digitの意味は口座番号か残高か?と聞いたところ、 アカウントナンバーとの答えが... でもググると4桁か5桁かの値付けの話題にもなっていますね やはり口座番号のようです 何度もすみませんでした
iCustomでZigZagの過去の確定した5つまでの頂点の値とその時のShift値を取得したいのですが、 for分でどのように記述したらよいでしょうか?
double temp = 0.0; int shift, count = 0; double save_0, save_1, save_2, save_3; int t_0, t_1, t_2, t_3; int BackOfPeak = 1; for(int i = 0 ; i < Bars ; i++) { temp = iCustom(...... if (temp != 0.0) count++; if(count == BackOfPeak + 1 && temp != 0.0) {save_0 = temp; t_0 = i;} if(count == BackOfPeak + 2 && temp != 0.0) {save_1 = temp; t_1 = i;} if(count == BackOfPeak + 3 && temp != 0.0) {save_2 = temp; t_2 = i;} if(count == BackOfPeak + 4 && temp != 0.0) {save_3 = temp; t_3 = i;} if(count == BackOfPeak + 5) break; } こんな感じかね。デバッグしてないから間違ってたらごめん。 つまり0番目のバッファが0じゃなかったら頂点。
>>523 for文でいちいち毎回全部調べるのは相当無駄のあるやり方なので推奨しませんが、
するとしたらこんな感じ。コンパイルしてないのでミスあるかも。思い込みもあるかも^^;
double dShiftNum[5];
int i;
int cnt = 0;
for(i=0; i<Bars;i++)
{
if(0 != iCustom(NULL,0,"ZigZag",ExtDepth,ExtDeviation,ExtBacksteps,0,i))
{
dShiftNum[cnt++]=i;
}
if(cnt>=5) break;
}
ついでに、無駄のないやり方の一つとしてはやはりインジ自体を改造して
4つ目のインジケータバッファを1つ追加し、過去の頂点SHIFT値を5つまで内部保持して
iCustomで取得できるように毎回5つ分書き込むという手があります。
インジケータバッファの使い方としては邪道だけど。
取得のほうはこんな感じ。ZigZagの改造の方は示せないけど。
double dShiftNum[5];
int i;
for(i=0;i<5;i++)
{
dShiftNum[i] = iCustom(NULL,0,"それ用に改造したZigZag",ExtDepth,ExtDeviation,ExtBacksteps,3,i);
}
あ、インジ無改造の方はiCustomの戻り値が頂点座標になるのでそれ保存するの忘れてたね。 インジ改造の場合は頂点座標も取得できるようにインジケータバッファは2つ追加ってことになるね。
>>524 早速ありがとうございました。
頂点の値とShift値とれました!なるほど!
>>526 たしかにすでにわかっている値をtickごとに計算し直すのは
無駄な作業になってしまいますね
ZigZag内のバッファで値を保持するのは賢いやり方だと思います。
参考にして試してみますね。ありがとうございます!
1から作らなくてもその辺に転がってるよ
インジケーターが小数点4桁まで表示するので IndicatorDigits(1); を付け加えて小数点1桁までにしてみたところデータウィンドウの数値は2桁になるのですが 描画される線は4桁とまったく同じでした 試しにEAとして動かしてみても1桁と4桁がまったく同じになりました IndicatorDigits(1);だとデータウィンドウでは1桁に見えてもiCustomでEAにすると無視されてしまうのでしょうか?
531 :
530 :2013/08/25(日) 21:39:09.58 ID:KK0/AYzf
×データウィンドウの数値は2桁 ○データウィンドウの数値は1桁
532 :
にょろ―んインジ ◆jPpg5.obl6 :2013/08/26(月) 10:55:00.62 ID:C+p5DdQY
EA制作用とBT用にするためにサイバーのMTを久々に起動してみたけどこっちにこもってたら日本語表示のMTに慣れてしまいそうで怖い
言語変えればいいだけ。
EAで他のアプリ、メディアプレーヤーとかキャプチャツールとかを起動したいんですが いいEAないでしょうか そんなことできません?
過去1分間くらいのtickごとの値をリストかなんかで保持したいんですが 他の言語でいうところのコレクション的なものはないんでしょうか?
>>534 自分で書けばできるが、どうしてEAでやりたいの?
>>535 組み込みデータ型としては配列しかないね。
>>536 早速ありがとうございます
ちょっと仕様妥協して配列でなんとかしようと思います
ArrayCopySeries()にtickが指定できれば万事解決なんですがね・・・
538 :
Trader@Live! :2013/08/27(火) 15:30:42.96 ID:UVWUvdXH
RSIを表示させた後、移動平均を同じウィンドウにして 価格データをFirstIndicatorにするとRSIの移動平均が 表示されます。 RSIの値とこの移動平均が交差したらアラートが鳴るよう にはできるでしょうか?
自動売買ってエラー無しで完全に機能するもんなのかなあ サインやアラートとして使うんじゃなくて売買まで個人で組んでる人いる?
お口座メルトダウンでこの世と自動バイバイw
int NUM=1; double Profit = 30; double NextBalance; int init() { NextBalance=AccountBalance()+Profit; return(0); } int start() { if(AccountBalance()>=NextBalance) NUM=NUM+1; NextBalance=NextBalance+Profit; Print (A); } 質問なのですが、 @int init内でPrint文は使えないのでしょうか。 ANextBalanceは5000+30で5030のはずなのですが、 int start内のPrint文で確認すると2691770という訳の分からない数値になってます。 なぜでしょうか。原因が分かりません。 Bif文内のNUMが加算されません。 しかし、下の行のNextBalanceは加算されていますし、2行下のPrint文も表示されています。 色々やりましたが原因が分かりません。
>>542 1は使える
3は条件が成立しないから加算されない
if文の書き方から勉強しなさい
2も正しく書けば正しい結果になるはず
if文は、徹底して以下の書き方にしたほうがいいよ。 見易さとミス防止で自分のコーディング規約として定義しましょう。 if(条件文) { 成立したときの命令 }
>>544 すみません、コードをコピペするときにスペースが全部省略されたみたいで変になってました。
当然質問する前にif文がおかしいんじゃないかとググったり他のコード見たりPrint文で変数確認したりしてたのですが、
イミフにエラー吐きまくったりで時間と体力的に限界で質問しました。
if文に中括弧つけるとエラーになったり当然加算されるべきところで加算されなかったり変数の値が見当違いになってたり、
この問題に8時間くらい要してますが原因が分かりません。
うpロダがこのスレの案内にあると思うから そっちにmq4ファイル置いてくれれば暇な人(いいいみで)が チェックしてくれるよ、俺も覗く。
ふう、やっと自己解決した。 ありがとうございました俺。
こういう奴は相手しないのが一番
複利システムを追加したいのですが、 GetLotsやLotmmと一緒に、 残高を確認するコードが埋め込まれています おそらく小数点以下を切るようなものかもしれません これが邪魔して複利が追加ができないとかありますか? 何度か追加したらできなかったので...
もしくは、簡単なlotstepコードがあれば教えて下さい 入力箇所は複雑でしょうか?
あ、今から寝るのでレスは夜になりますm(_ _)m
常に一定のレバレッジでロットを算出する処理(要は福利システム)について便乗で。 これで何か問題ありますか? //最小単位のロット extern double dLots = 0.01; //取引時のレバレッジ extern double dLeverage = 1; double LotsOptimized() { double lot; int round; //円建て・USD/JPY取引時 lot = dLeverage * AccountFreeMargin() /100000 / iClose(NULL,0,0); //ドル建て・USD/JPY取引時 //lot = dLeverage * AccountFreeMargin() /100000; //四捨五入処理 round = (lot / dLots) + 0.5; lot = round * dLots; if(lot < dLots) lot = dLots; return(lot); }
>>552 コピペしたらエラーになりました
どこに挿入すればいいですか?
>>553 エラーになるのは変数名や関数名がすでに使用済みだったりした
ときぐらいだと思うが・・・。
freemarginかな...
今日解決させる ありがとうございました
7でMT4使っているんですが新しいPCにインストールしたら ショートカットダブルクリック後にアクセス許可の要求があるのですが・・・ 今まではダブルクリック後普通に開いていたけど なんでですかね? 管理者として実行のマークもアプリについているのですがインストールの失敗かな?
同じ通貨ペアの複数のチャートで、 その中の1チャートにラインを引いた時に 他のチャートにも反映させる方法ってなんか上手い方法ないですか? 定形チャートに保存して適用だとインジ等も同じ設定になってしまうし 今のところ00-Scr-ObjectCopierというスクリプト使ってますが マスター側の周期を変更するとスクリプト解除されるのが不便です
>>554 Optimizeのコードが重複していたので消してコンパイルまでできました
でもロットが増えていきません(´・_・`)
>>561 こっちもコードに問題あるか確認してる立場なので保障はできないけど
少なくとも、口座残高に比例するようにロットの戻り値が増えたり減ったりする
関数として、こっちでは使えてますが・・・
>>562 そうですか...
やっぱり他のAccount freemarginとGetLotsというのが邪魔してるのかもしれません
あとドル建てなんですがドル建てのところがグレーになります
もう少しやってみます
>>563 普通に判ってると思っていましたが、
円立てでXXX/JPY取引用と、ドル立てでXXX/JPY取引用 2通りしか対応してません。
デフォルトは前者の設定ですが、後者にする場合は前者用のコードをコメント化したり
コメントしてる後者用コードを有効にする必要があります。
AccountFreeMargin() はMT4の教本にも書いてあるので普通に使えるはずです。
あとは貴方のプログラムでロットを取得してる部分次第かもしれません。
てゆーか何でiCloseで割るとかするの? そんなキッチリ割らなくても1ドル100円計算にしてAcountCurency()で振り分けるとかじゃダメなん?(´・ω・`)
こんな感じでどうかの、引数は掛けたい実効レバレッジね 足りないチェック項目とかは自分で書いてね double CalcLots(double lev){ double min = MarketInfo(Symbol(),MODE_MINLOT); double max = MarketInfo(Symbol(),MODE_MAXLOT); double lots = AccountBalance()*lev / (MarketInfo(Symbol(),MODE_MARGINREQUIRED)*AccountLeverage()); return(NormalizeDouble(MathMax(min,MathMin(max, lots )) ,MathLog(1.0/min)/MathLog(10))); }
>>566 ありがとうございます
今エラーになってます...
Function "CalcLots" is not referenced and will be removed from exp-file
ちょっと出直してこようと思います
くずにー、スペルスペル!(2か所な)
>>566 解決できました
諸先輩方、ありがとうございました
ハイレバの海外口座を使っているのですが、 EAの設定でレバレッジを下げてロット数が決まるような場合、 必要証拠金はどうなるのでしょうか? 今までハイレバで必要証拠金が少なく注文できました 今後その口座でレバレッジの設定を低くするとそちらが優先され、 必要証拠金が足りなって前よりも資金が多く必要になりますか?
×足りなって ○足りなくなって つまり残高によりロット数が決まるのと、EAでレバレッジを低く設定するので 必要証拠金が多く必要になったり、ハイレバ業者を使う意味はあまりなくなるのでしょうか?
必要証拠金はEAとは関係ない それと、日本語の勉強をしたほうがいい
>>573 関係ないですか、分かりました
ありがとうございました
>>571 >EAの設定でレバレッジを下げてロット数が決まるような場合
EAの設定と、業者の設定は別
前者も後者もどっちも有効
前者のレバが低ければ後者がいくらハイレバでも
低いレバで取引する
EAのレバレッジをあげれば解決
>>575 やはりそうですか、
では残高に応じて設定レバを上げていけば良いですね
必要証拠金の面でもハイレバの方が有利ということですね
よく分かりました、ありがとうございました
海外業者のレバに関して、 別のスレのうわさで聞いた限りで確かな話じゃないが 「日本の客は、日本のレバレッジが25倍」という話を盾にして それ以上のレバレッジで取引した利益を無効に…なんていう イミフかつ一方的な話を出してくる業者もあるそうだ。 法的根拠はないが拗れさせてどうにか出金させないっていうね。 いや、スレチか。すまない。
>>577 できればソースを見たい
あとその時の拒否理由や、業者の頭文字でも分かれば...
>>579 これは有り得るかもですね
被害者のメールを見ると信憑性が...
4XPは前から良い噂を聞かないから
さらにイメージが悪くなりました
まずは稼いだら一度、出金できるか早めに試した方が良いですね
(4XPは利用しないけど他の海外業者も、という意味です)
>>579 このサイトの情報古すぎね?
過去になんかやらかしたとしても改善してる業者もあると信じたい
EAにはその業者がSCAMかどうかリスクの隠れたパラメタも必要w
ナンピンマスターみたいなやつ無料でないかね 高いよ・・・
Not enough money のエラーはEAが出すのでしょうか? MT4が出すのでしょうか? 業者によって注文されず放置になることもありますか?
mt4が出す それ頻繁に出してると口座閉鎖喰らうぞ サーバーに負荷がかかるから。
>>587 そうなんですか、気を付けます
エラーが出る業者と何も出ない業者があって
ロット数下げてるんですが資金不足のエラーもなく
なぜ注文入らないのかが把握ができません
他の業者ではデモでエラーが出たり、少額でも注文入るのに
1つの業者が反応がないんです
MT4がエラー出すなら資金不足ならエラー出るはずですよね
デモではあんなにポジってたのになあ(´・_・`) 仕方ない、追加入金するか
すみません、 Error modifying order : (130)invalid stops Error modifying order : (1)no error というエラーが大量に出ています これは何でしょうか?
>>590 エラー130はストップ値に誤りがあるからで、
エラー1はストップ値などの値が修正前と後で、
違いがないのに実行しようとした時などに出るね。
現状のストップ値やストップレベルをチェックしないで、
オーダー修正してるからじゃないかな。
>>590 error 130は無効なストップ値。ストップが近すぎるのでは?
error 0はエラーは返ってきてない。(=エラーではない?)
あ、error 0じゃなくて1でしたね。すみません。
>>591 詳しくありがとうございますm(_ _)m
今、一旦治まったのですがまたなる可能性あります
複数のうち1社のみで起きました
このエラーも大量に出て放置していたらサーバー負担になりますか?
売買はできていますが...
>>592 ありがとうございます
ストップのパラメータは、
Trailling Stop 40
FastMove 20
FirstStopLoss 15
SecondMove 30
SecondStopLoss 20
TiredMove 40
TraillingStop3 20
となっています。問題ありでしょうか...?
>>594 ストップレベルはブローカーや通貨ペアによって、
設定値がことなるから、その1社は広いのかもね。
サーバもだけど、クライアント側でも負荷になるでしょ。
エラー1を吐いているオーダーは不要な処理だし。
事前に設定値をチェックして、オーダーを出さないようにしといたほうがいいね。
ストップ値やリミット値を設定する場合は、
設定値をストップレベル以上に設定しておくか。
ストップ値をチェックして、幅が狭い場合は、
ストップレベル+αの設定値にするとか、
オーダー自体を出さないようにすればいいよ。
>>595 TiredMoveって気になる名前のパラメータだなあw
ちなみにパラメータの値とかEAの動きに関しては、EA作者にしか分からないのですよ
ある程度は想像できるけど、それは単なる憶測にすぎない
>>595 今自分が使ってるブローカーで調べたところ、
Forex.com Japan EURUSD ストップレベル 10
Alpari Japan EURUSD ストップレベル 20
なので、Alpari JapanのEURUSDだとFirstStopLoss 15の注文が通らないですね。
(ソースを見ないと何とも言えないですが)
皆様ありがとうございます 確認したらやはりストップレベルの大きい通貨でエラーが起きていました 40の通貨もありました... ひとまずストップ値を上げて バックテストをやり直してきます 不要な処理のオーダー変更とかはできないので その際は依頼させていただくかもしれませんm(_ _)m
MT4でEAを稼動させてると それがまったく空っぽのEAだとしても 消費メモリはどんどん上がって 最終的にそのMT4は再起動させないと手動でも発注・決済ができなくなるんですが オレだけですか? MT4の新バージョンの欠陥とかじゃないですかね
メモリー食うけどある点でそれ以上増えないよ MT4 3つ、EAはそれぞれ2個で合計6 実装メモリーは8Gで64ビットOS キャッシュ含めて4.7G消費
昨日は色々とありがとうございました
エラーはその後は出ていませんが、
1つポジらない業者があります
(ストップレベル17、5万以下でテストできない、not enough moneyエラーはなし)
ストップレベルの幅を変える場合は、
>>595 のFirst、Second、Tirdの項目で良いでしょうか?
近すぎるとのことなので、15や20のところを30くらいにしてみました
これでもまだ近すぎますか?
>>597 普通のMAのブレイク狙いのものです
拾ったものなんで私もよく分かってないです(^^;)
割と細かく動作するようです
訂正 500ドルじゃなく1000ドル以下だとテストできないので 1000ドル入金しないと動かない仕様などあるのでしょうか?(エラーは無し) よろしくお願いします
>>603 業者とEAを晒せ。もっと的確なアドバイスをしてくれる人が現れるかも。
>>587 も言ってるが全てお前の書き込みから推測してるに過ぎない。
> 1つポジらない業者があります
> (ストップレベル17、5万以下でテストできない、not enough moneyエラーはなし)
他のエラーログは出ていないのか?どのような設定で動かしているのか?
ドル建て、円建て口座それぞれで動くEAなのか?動く業者と動かない業者の違いは?
ストップ18以上、5万以上でテスト出来るのならそういう仕様。
> ストップレベルの幅を変える場合は、
ストップレベルはMT4業者指定なんで変えられない。
ポジションのストップの幅と解釈して回答すると合ってると思われる。(推測)
ポジション一覧でストップ幅を確認して指定値ならそのパラメタが機能している。
> これでもまだ近すぎますか?
EAのタイプに左右されるんで近いか遠いかは分からん。スキャでも秒単位、分単位とかあるから。
ストップレベル以上なら基本的に問題ない。ストップレベル=ストップだと、
滑ったときに引っかかりSLが入らない可能性がある。
業者はEXNESSで、エラーログにとくにエラーは見当たらず、 チャートにunexpectet Symbolと表示されています フォワードではどの業者でも問題なく動作し(ドル、円両方) EXNESSのリアル口座にしたら急にunexpectet Symbolと表示されています 今も他のデモ口座では100ドル未満でも注文されていて残高は関係ない思ったのですが テストのみ100ドル以上じゃないと動きませんでした 設定はEXNESSのレバが1000倍で、EAの方でレバ1〜10、0.01lot、 ストップレベル30、ストップロス100にしてあります EXNESSとの問題かバグかもしれません 何度もすみませんでした; もう少し様子を見てみてみます
シンボル名の後ろに. とか- とか付いてて、それをEAが処理できてないんじゃなかろか
>>607 もしかするとEXNESSの契約口座がマイクロで
通貨名がUSDJPYmとなっているからでしょうか?
あ、できました unexpectetは消えましたm(_ _)m
それと100ドルじゃなくて1000ドルの間違いです;失笑 結局、通貨にmが付いているからSymbolが認識されないことが分かったのですが、 「string symbol = StringSubstr(Symbol(), 0, 3) + AccountCurrency() + "m";」 のコードはどの辺りに追加すれば良いでしょうか? これで認識されるようになりますか?
>>610 どの辺りにって、ソース出してないのにわかるわけがないよ。
まぁ、symbol変数を宣言か値を代入してる箇所を書き換えればいいけど。
「extern string SymbolSuffix = "m";」を追加して、
「string symbol = StringSubstr(Symbol(), 0, 3) + AccountCurrency();」を
「string symbol = StringSubstr(Symbol(), 0, 3) + AccountCurrency() + SymbolSuffix ;」
にすればいいんじゃない。
接尾辞のありなしで、その都度ソースをいじるのも嫌だろうし、
これならEA設定時に調整できるし。
自動で接尾辞を処理してもいいんだけどね。。。
なにもかも間違ってる気がするから ソース上げるのが一番早いだろう せめてEA書けば…
当然ロジックはこっそり拝借するがね
ありがとうございます うーん、なんかinitに追加できない 下に通貨がまとまって並んでたから とりあえずは全部+m付けて解決したんだけど 売買はできてないし この通貨の羅列自体いらないコードなのかな... ソースはうpしていいかの許可もらってない 気になる部分だけ書きます
ます、initこうなってます int init() { setup="DoubleMA_Breakout " + Symbol() + "_" + func_TimeFrame_Val2String(func_TimeFrame_Const2Val(Period())); MagicNumber = 3000 + func_Symbol2Val(Symbol())*100 + func_TimeFrame_Const2Val(Period()); //---- return(0); ------- 一番下にタイムフレームと通貨15個くらい(↓m付けた) string func_TimeFrame_Val2String(int Value ) { switch(Value) { case 1: // M1 return("PERIOD_M1"); case 2: // M1 return("PERIOD_M5"); case 3: return("PERIOD_M15"); ・ ・ nt func_Symbol2Val(string symbol) { if(symbol=="AUDCADm") { return(1); } else if(symbol=="AUDJPYm") { return(2); } else if(symbol=="AUDNZDm") { return(3); ・ ・
このinitの部分を、 「extern string SymbolSuffix = "m";」を追加して、 「string symbol = StringSubstr(Symbol(), 0, 3) + AccountCurrency();」を 「string symbol = StringSubstr(Symbol(), 0, 3) + AccountCurrency() + SymbolSuffix ;」 に書き換えれば良いのでしょうか??
617 :
Trader@Live! :2013/09/03(火) 19:36:40.40 ID:Rr6qFKRa
>>613 ロジックは単純なMA2本なので期待しなくて大丈夫ですよ
618 :
Trader@Live! :2013/09/03(火) 20:03:16.58 ID:Rr6qFKRa
質問を整理すると、 ・Symbolの接尾辞「m」を認識させる ・1000ドル以下でテストできないのはバグか? です
>>616 記述修正案(SymbolSuffix)出したけど、
「string symbol = StringSubstr(Symbol(), 0, 3) + AccountCurrency() + "m";」自体、不要なんじゃないか?
>>615 の
「setup」は何に使う文字列かしらないけど、現在のタイムフレームを取得してるだけみたいだし、
「MagicNumber」はそのままの意味としたら、オーダー注文時のマジックナンバーの自動計算だろうけど。
まぁ、「MagicNumber」の値が取得できないから、
後半の記述でEAが止められているんじゃないかな。
func_Symbol2Val関数内で、
「string symbolTmp = StringSubstr(symbol, 0, 6);」を追加して、
if文の条件式を「symbol=="○○○"」の記述を「symbolTmp=="○○○」に変えればいいかな。
マジックナンバーの計算処理をゴッソリ消してもいいんだろうけど。
>>618 やりたいことは分かっても、
元のコードがどう記述されてるか分からないと修正するのは困難だよ。
バグかどうかだって、コードみないと判断つかないよ。
621 :
Trader@Live! :2013/09/03(火) 20:15:08.61 ID:Rr6qFKRa
「func_Symbol2Val(Symbol()) string symbolTmp = StringSubstr(symbol, 0, 6); と、 「symbolTmp==USDJPYm」で良いでしょうか? このソースにはint magicはありませんでした
あー、int magicはあるけど マジックナンバーはありませんでした、です
分かりました、やってみます! 度々ありがとうございました
>>617 DoubleMA_Crossover_EAか?
>>624 そうですよ
それと似たようなDoubleMA_BreakOutの方のエラーです
>>621 「symbolTmp == "USDJPYm"」の"m"は消して。
エラーというか今回の業者との相性ですけど 要するにmとか付かない業者の契約口座でやれば動くということですよね その方が早いかもです
>>625 と聞くだけ聞いといて何だけど
EXNESSの口座ないから試せないわ
だれかにお願いしてw
自分が使ってるのあるので試してみます あの、func_Symbol2Val(Symbol()) string symbolTmp = StringSubstr(symbol, 0, 6); はどこの間に入れるんでしょうか??
func_Symbol2Val(Symbol())*100 のあとに+するんでしょうか??
最もスマートなやり方はおそらく、init()側は変更せずに int func_Symbol2Val(string symbol) { if(symbol=="AUDCAD") { return(1); } else if(symbol=="AUDJPY") { return(2); } else if(symbol=="AUDNZD") { return(3); 以下略のところを int func_Symbol2Val(string symbol) { if(StringFind(symbol, "AUDCAD", 0) == 0) { return(1); } else if(StringFind(symbol, "AUDJPY", 0) == 0) { return(2); } else if(StringFind(symbol, "AUDNZD", 0) == 0) { return(3); 以下略にするかな
>>629 int func_Symbol2Val(string symbol) {
string symbolTmp = StringSubstr(symbol, 0, 6); ←この行を追加。
if(symbol=="AUDCAD") {
return(1);
} else if(symbol=="AUDJPY") {
return(2);
・・・・・
間違えた。 int func_Symbol2Val(string symbol) { string symbolTmp = StringSubstr(symbol, 0, 6); ←この行を追加。 if(symbolTmp=="AUDCAD") { ←この部分修正、他の箇所も修正。 return(1); } else if(symbolTmp=="AUDJPY") { return(2); ・・・・・
>>629 原因は全然ちがうところにあるんじゃないの?
ソースをみたかぎりでは「unexpected Symbol」はエラーじゃない
無視したら同通貨ペア、同タイムフレームの場合にマジックナンバーが重なるだけ。
>>629 パラメーターにMargincutoffってあるだろ?
AccountFreeMarginが、それを下回ったら注文されない
デフォは800だからそれを下げれば注文される
通貨ペア名は関係ない
636 :
Trader@Live! :2013/09/03(火) 21:46:41.22 ID:Rr6qFKRa
>>635 できました!
>>631 にして
パラメータのcutoffの800を試しに200にしたら注文が入りました!>∀<。
さすが皆さん早いですね!沢山のご助言、本当にありがとうございましたm(_ _)m
これでEXNESSから撤退せずに済みそうです
637 :
Trader@Live! :2013/09/03(火) 23:36:09.70 ID:AaV+vEpp
EAで売買するとき普通、iCustum()や、そのほかのインジiMA()などを テクニカル指標の情報を読み込ませたりすると思いますが、 インジを使わず、EAだけで完結するプログラムって難しいですかね。 EAの中で例えばMAを計算するって感じなのですが。
>>637 計算式さえ分かっていれば簡単だと思いますよ?
>>638 インジは、時系列配列で0が最新の配列番号で、そのままインジの計算式をコピペできないとは思ってて。
じゃあ、仮にEAの中の最新の配列を0として並び替えるのも(PC的に)負担がおおきいかな。
他の人はどうしてるんでしょう。と思ったけど、わざわざそんな事する人もいないよなあ。
>>639 普通の配列を時系列配列にする関数がMQL4にある。
計測してみないと断言はできないけど、(時系列配列化は)多分ノーコストだと思うぞ。
ASK=MarketInfo("USDJPYpro", MODE_ASK); BID=MarketInfo("USDJPYpro", MODE_BID); RATE=(ASK+BID)/2; Print (RATE); RATEが0になってしまいます。 どなたか原因を教えて下さい。
>>640 おう。ほんと?EAでもOKということ?だったら幸せだよ。
もう寝るが、あした調べてみる。ありがとう。
>>641 もしかしたらRATEがintになってるとか。
>>643 double ASK,BID,RATE; になってます
MarketInfo()は使わないのでわかりませんが、ASK,BIDをPrintしたらどうなります?
ASK,BIDをPrintしても0です。
Print(DoubleToStr(RATE, Digits));かな?
>>646 だったらMarketInfoが正しく動いてない可能性が高い。
シンボル名は本当に正しい?
>>647 0.00000になりました。
>>648 使用業者はForex.comです。
シンボル名は合っています。
>>649 ASK=MarketInfo(Symbol(), MODE_ASK);
BID=MarketInfo(Symbol(), MODE_BID);
RATE=(ASK+BID)/2;
Print(DoubleToStr(RATE, Digits));
だとどうなる?
>>650 は表示されました。
ということはやはりシンボル名が間違っているということに。
しかし"USDJPYpro"でも"USDJPY"でも表示されないです。
えっと、Symbol()をプリントしてみようか?
これはもしかしてEAを設定した通貨ペアのASK,BID情報しか得られない仕様なんですかね。 EURUSDで動かしていたのですがUSDJPYに変えたらレートが表示されました。 とにかくドル円レートを取得したいのですが。
バックテストの話してんのか?
16時前にやってるマーケットニュースのドル円レンジを参考にして その間のさらに細かいレンジの利ざやをこそこそ狙うっていう戦略は有効ですか? ニュースのドル円レンジがおおよそ信用できることが前提ですが。
手動で発注する場合とEAを稼働させる場合のストップロスが異なっています。 しかもスプのごとくストップロスが変動してます。 このストップロスを取得するにはどうしたら良いですか? MarketInfoのstoplevelでは手動の固定ストップレベルの方が取得されてしまいます。
間違えました。 ×ストップロス ○ストップレベル
家族の口座をVPSで見る場合ついて質問です 一人暮らしの自分が別居の家族の口座をリモートでたまに見る場合、 別々のVPSでも同PCで同一IPアドレスになるんでしょうか? よろしくお願いします
追記 同PCというのは普段自分用にVPSを使っているPCや回線のことです
700GET
定型チャートを開いてるチャート全てに1回で適用させる方法はありませんか?
MT4の質問です ツールからトレンドラインを「ラインを延長しない」のチェックを外して 長短いろいろな長さの矢印を引いたり、テキストからコメントをチャートに描いたりしてるのですが 両方とも標準で、表示足の選択で「全ての時間足に表示」のチェックが入っていますが これを最初から、今の時間足のチャートにのみ表示させることは可能でしょうか? やり方をご存知の方がいらっしゃれば、是非教えてください よろしくお願いします
>>657 どこの業者?それと、
ストップレベルを取得出来てないのに、なぜストップレベルが変動してることが分かった?
>>665 FXCMです
OrderSend errorが出なくなるまで発注するEAを実行してたら分かりました
基本28前後数Pointで動いて、35だったり41になるときもあります
デモの場合は上記EAで確かめられなくないのですが、
常に変動するためリアル口座では事前にEA版のストップレベルを取得したいのです
ストップロスって基本オーダーをかけたときにするものなので、変わらないでしょ。 トレーリングとか使ってるってこと。
>>666 思いっきり推測で言うけど
ストップレベルの計算がBidとAskの中間値基準だと
スプが変動したときにはストップレベルが離れたり
…しないか。聞き流してくれ。
スリッページじゃないん?
int StopLevel,ticketA; extern int Magic = 20; extern int Slippage = 5; int start() { //---- Lots=0.01; StopLevel=1; if(OrdersTotal()==0) { ticketA=-1; while(ticketA<0) { ticketA=OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, Ask-StopLevel*Point, 0, "BUY", Magic); if(ticketA<0) StopLevel=StopLevel+1; } Print("EA_StopLevel=",StopLevel); } return(0); } //ここまで これでEA稼働時のストップレベルが出ると思うんですが・・・。 MarketInfoのストップレベルより2倍以上大きいです。
>>670 そこまでのことをしておきながら
なぜスプレッドに気づかないのか…
なるほどスプレッド分・・・・!!! そりゃMarketInfoのストップレベルは固定でS/Lの値が変動するわけですね。 合点がいきました。 皆さんありがとうございました!
すげーな。これでリアル投入か。 俺なんか3年経っても、まともなものできんでリアルできずない。
私などは5年です
>>675 そうですか。。やっぱり厳しいのですね。
俺は来年4月までには条件をクリアしたいと思ってます。
因みにどこまでになればリアル投入するつもりですか?
ニート期限ww。いや笑えないっ
4月まで延長できるだけ羨ましいわ 自分は年内には結果を出さなければ...
そうなのですか。年内ってあと5ヶ月、、。 俺は今年10月までにEA一本つくりあげて 4月までの間に、デモトレードでチェック。 そんな感じですね。 もう働きたく、、、。
>>670 いや、これ スプレッド分か?
while(ticketA<0)
の間。
StopLevel=StopLevel+1;
StopLevelという変数が1ずつ加算されているだけでね、
以下を消すといいかも。これに意味があるように思えないし。 if(ticketA<0) StopLevel=StopLevel+1; }
>>676 来週からやります
スプレッドで相殺されそうなほどしか利益の見込みありませんが
経験を積みたいので…
>>684 いやいや。
なぜこれ(StopLevel)がスプレッドと直接関係あるんか?
>>685 それはそのとおりだが
おまいは質問の意味を理解していない
とにかく振り出しにもどれ
質問は
>>657 だろ。
このストップロスを取得するにはどうしたら良いですか?
だったら、
>>683 が回答
でいいんじゃね。
スプのごとくストップロスが変動してます。
の理由は、
>>681 結局は、MarketInfo()でまちがっていないんだが。
振り出しというか、本人も返答ないんで解決でいいんじゃね。
690 :
Trader@Live! :2013/09/06(金) 00:39:26.39 ID:0a7S5d+V
そこで気づくのが不思議だけど。終わりってことに。
>>683 さん。来週から頑張ってくださいな。
寝る。
>>670 のEAがなんのためのEAかをよく考えたほうがいい
陽線、陰線が何本連続で続いているかの 関数をつくりたいのですがfor文がうまくまわせません。 またチャートの時間足より長い時間足でチェックするときは 長い時間足の現在の足も本数にいれたいのですがうまく書けません… どのように記述したらうまくいきますでしょうか?
インジのサインをエクセルに反映させる方法を教えてください
>>691 俺はエスパーじゃねえよ。そこまでの義務は無い。
なんのためのEAなのかは、端折った汚いコードからは読めないって。
お前が当の質問者だったら、
>>682 にレスするのが礼儀だし。
質問者でないだったら、もっとまともな答えを出してやれよ。
MT4のEAは初心者ですが、レンタルサーバーに興味があります。 一通りは見ましたが使用感とかよく分からないので、とりあえず手軽に1ヶ月くらい無料で使えるとこはないでしょうか? 業者はXE(XM.com)を使っています。
横から割って入って、 流れを全く読まずに憶測で言いたいことは言って、 挙げ句間違いを指摘されると他人が書いたコードを汚いと言い放つ。 お前の心の方がよっぽど薄汚れてる。
698 :
Trader@Live! :2013/09/06(金) 18:05:14.41 ID:yAvcc77n
同意
>>697 解決したんだろ。
もういいんじゃねぇ。
よし、ストップレベルの話はこれで終わりな
>>696 お名前とかでいいんじゃね
約定速度を気にするんなら、業者のサーバに近いサーバを借りるべきだけど
>>700 そうですか、お名前.comですか。 では、検討してみます。 ありがとうございます。
お名前は高いよね。コスト重視で国内ならどこがいいですか?
ウィルネット or ウィンサーバー
MT4用のお名前3000円コース使ってわ。 死ぬほど重い。
おう。ふう。。。
お名前の価格表を見て、安!っと思った俺はなんなんだw
俺の感覚ではウィルネットの一番安いやつは、まあまあ重い。 同価格帯ではウィンサーバーの方が快適だった。 解約するときは書類送らないといけないのがだるいけど。
時々話題に乗ってる話だけど、 EAとかのファイルをぱくられたりするリスクも あるらしいからVPSは慎重に選べよ。 ソースは失念。
パクられたEAが別の名前で売られたりしてたら、ちょっと嬉しいかもw
710 :
Trader@Live! :2013/09/07(土) 06:33:05.17 ID:MMBr7FnG
トレードしたら指定のアドレスに メールを送るように埋め込めば?
コンパイルしたらソースを消せばいいだろうと思ってたけど バイナリ(.ex4)をパクられたら、バイナリから逆コンパイルしてプログラムロジックを解析できるって( ゚д゚) ネットのどこかで読んだけれど本当なんかな?
普通にコンパイルしただけなら、簡単にデコンパイルできる
そこでdllですよ。
715 :
Trader@Live! :2013/09/07(土) 11:48:42.65 ID:HQGYP8TH
dllもVBとかの.Netで作られたヤツなら逆コンパイルできてしまう。
MT4から呼ぶDLLをわざわざCOMラッパーかぶせて .NETで実装するようなやつはいないってw
杞憂スレはここですか?
盜まれることを考えるより 盗みたくなるEAを作りたい
普通に家でノートでいんじゃね。 VPSとか面倒だよ。 停電なったら、残りのバッテリーでとりあえずトレードを止める。 固定でも無線でも回線はいろいろあるし。 非常事態になればノートもってマックにいく。 月額も払わんですむし。 EAが盗まれる心配ないし。
ノート2台同じ環境 ワークステーション2台 同じ環境で構築すりゃいいじゃん 金を稼ぐ環境をケチってどうないすんの?
俺の場合、稼げるようなEAできてからだな。 まだまだ先だわ。
PCとか消耗品だから、経年劣化心配する必要がないだけVPSは便利だわ
海外業者ならVPS無料のとこがある
725 :
Trader@Live! :2013/09/07(土) 14:16:40.62 ID:GX/sa1Kq
VPS業者は、EA窃盗で儲けとるんかな。
>>725 そういう話はちょくちょく聞くね。
リモートに送るファイルは全て暗号化してVPS業者は中身確認出来ないようなVPSサービスって無いものか?
727 :
Trader@Live! :2013/09/07(土) 17:09:47.33 ID:WfoEwmpW
728 :
Trader@Live! :2013/09/07(土) 17:10:15.14 ID:WfoEwmpW
あらあら失敗
ていうか普通にEA動かしても業者にうpろーどする仕様だろ?
>>729 業者は業者でも取引しているFX業者にうpされるのと
単にPCを間借りしてるだけのVPS業者に盗まれるのとでは話が違う。
海賊版パクってる奴が何言ってるんだか そんなに心配するようなことかね
アマゾンのEC2なら盗まれる心配はないだろう
つか自分以外からのアクセス不許可にするだけでいいんじゃないの
734 :
Trader@Live! :2013/09/07(土) 19:56:36.24 ID:u9lLRbOu
MT4で日経、ダウ見れんくなった〜。 見れる鯖ググっても全滅。見れるのどこですか〜?
735 :
Trader@Live! :2013/09/07(土) 20:33:46.45 ID:+N0A2A0H
MT4のライン1時間で引いたのと5分とかだとずれるけど対策なんてありませんかね
736 :
Trader@Live! :2013/09/08(日) 00:03:44.84 ID:+N0A2A0H
zigzagの有効なパラメーター教えて 有効というか多勢が設定してるパラメーター
>>736 その多勢の8割か9割は負け組みとその予備軍だと思うけど
それでも知りたい?
Zigzagの優位性がわからぬ
739 :
Trader@Live! :2013/09/08(日) 08:24:01.76 ID:SxZYaGqo
>>737 テクニカルで使いたいんじゃなくて視覚的に見やすくしたい。
ローソクの上にライン引くような感じで
>>736 ZigZagなんて誰も使ってないだろw
>>733 > つか自分以外からのアクセス不許可にするだけでいいんじゃないの
サービス提供業者=管理者ならどんなアクセス設定も変更可能だろw
>>739 売買の理由にしないのであれば自分のイメージにマッチしたもので十分でしょう
日本や世界でどのパラメータが多数派かなんてアンケートとった人はいないでしょうし、
知っているという人でも自分の周りでは…くらいじゃないかな
余談だけどMT4のzigzagは最新の天底の仮確定が早すぎて使いにくくない?
zigzagの計算式も一つじゃないから調べてみるのもいいかも
多数がって事なら初期設定の数値のまま使えばええやん
zigzagをわざわざ関数化してEAに組み込んだことがある 結果は聞かないでくれw
みんな色々やってんだなw
746 :
Trader@Live! :2013/09/08(日) 14:20:03.79 ID:BWZah11Z
MQL4初心者なのですが、開発方法について質問させてください。 土日の取引が停止している時間帯は、どうやって開発を進めたらいいんでしょうか? デモ講座を開設して、チャートwindowを開いて、 そこに「test.mq4」を実行させ、 Print()など出力していたのですが、 土日の取引が停止している時間帯だとstart()が実行されないようなのです。 バックテストのビジュアルモードで実行してみてもstart()は実行されないようなのですが、、
start()はティックが更新されるごとに実行される init()はEAがロードされたり時間足が変更されたりパラメーターが変更されたりしてEAが 初期化されたときに実行される deinit()はEAが終了されるときに実行される なので今Print()したいならinit()に書けばいいのでは
チャートに文字を表示させたいならPrint()じゃなくてComment()かオブジェクト
start()はチャート更新でもBTのVモードでも発火する。
750 :
sage :2013/09/08(日) 14:53:58.52 ID:BWZah11Z
>>747 >>749 ありがとうございます。
int init()
{
//----
Print(Close[1]);
//----
return(0);
}
は、実行されるのですが、
int start()
{
//----
Print(Close[1]);
//----
return(0);
}
は、実行されないのです。
バックテストのビジュアルモード下で実行しています。
プログラムの問題ではなく、環境の問題でしょうか?
windows7で、メタトレーダーはCyberAgent FX MT4をダウンロードしてつかっているんですが。
>>747 >>749 大変失礼しました。
ターミナルwindowの「エキスパート」タブを見ていたのですが、
テスターwindowの「操作履歴」タブにちゃんと出力されていました。
ご回答ありがとうございました…´`
MT4のフリー互換サーバとか、何処かに落ちてませんか? 自分で採取したTickデータを仕込んで、 MQL4のテスト実行してみるような事をやってみたいのですが
悪いことはいわん。ティックレベルのバックテストで我慢しとけ。
>>752 サーバ無くても、取り込めば出来るだろう?
お名前.comの「デスクトップクラウド for FX 1GB 14日無料トライアル」を申し込んで XE(XM.com)のMT4をインストールしてみた。 起動等は問題なかったが、自分が使ってるEAがコピーできなかった。 どうやら管理者権限が与えられていないようなんだが、そういう仕様なのかな? これが「root権限、有り無し」の違いなの?
>>755 自己解決
adminではなく、usersの許可設定をフルに変更したらできました。
>>755 EAぱくられない保証ある(´・ω・`)?
758 :
Trader@Live! :2013/09/08(日) 22:04:37.80 ID:myQc+J6G
すみません、初心者です double bid =MarketInfo("EURUSD",MODE_BID); double bid =MarketInfo("USDJPY",MODE_BID); これからEURJPY計算してチャートに表示させるにはどんなコードを書けばいいんでしょうか?
EAパクられないためには何したらいいの?
俺が使ってるのは\1,000で買った決済専用のEAなので、ぱくられても全然平気です。
共用サーバーじゃなければ大丈夫ですか? WindowsのVPSです
>>756 Usersの許可設定とはどこでしょうか?
私などはコピペができなかったので
VPSからCドライブと、共有オンラインストレージも使って両方にアクセスできるようにしてあります
>>762 MT4のインストールフォルダが読み取り専用になってたのでそれを解除するため
usersの権限を「フルアクセス」にしたらexpertsフォルダにコピーできたよ。
(この前に、アクセス権限をあれこれいじってたので、別な設定もしてたかも・・・)
>>758 EURUSDとはEUR/USD
USDJPYとはUSD/JPY
/は割り算。つまりEURUSD*USDJPYはEUR/JPYになるんだが
おまえさんは
>double bid
って2か所書いているから(先にコンパイルエラーになるはずだけど)
引っかかるところとしては最初のbidを後からのbidで上書きしてしまう。
あとチャートに表示させるんなら表示先のチャートのプライスと
EUR/JPYのプライスが乖離している場合に離れた位置に描画してしまうね。
がんばれ。
ある通貨ペアのチャートに、複数の通貨ペアのチャートを重ねて表示することって出来ます?
767 :
Trader@Live! :2013/09/09(月) 12:14:37.93 ID:nrVaoB3f
double a ←このaの値をリアルタイムで水平線で表示させるにはどうすればいいんでしょうか?
MT4のプログラムって何で未だに情報少ないんだろう リファレンスや情報さえちゃんと多ければ10分で組めそうなものが1時間以上かかる
>>768 十分にあるだろ?寧ろ何が足りないかが分からない。
10分で組めそうなものが1時間以上かかる、最大の原因は、個人の資質(能力、知識、経験、etc...)とか?
>>767 ObjectCreate使う。start毎にObjectDeleteも使う。
ん、もっと簡単な方法あったら誰かよろです。
772 :
Trader@Live! :2013/09/09(月) 17:22:09.78 ID:9Wf1w+iu
今さらなんだけどMT4のストキャスティクスってもしかしてスローストキャスティクス?
773 :
Trader@Live! :2013/09/09(月) 17:37:59.98 ID:sEM6Zhle
標準装備のは普通のでしょ スローはもっとなめらか
俺ゆとりじゃないけどタイトル語尾の「ゆとり隔離スレ」ってイラッとするんだが
777 :
766 :2013/09/09(月) 21:14:30.05 ID:K4t4l6Dk
>>766 の解答を引き続き募集しておりますので、
よろしくお願いします
>>777 やろうと思えばできる。
ただ、縦軸のスケールが違うんで何らかのルールを設ける必要がある。
779 :
Trader@Live! :2013/09/09(月) 22:12:43.81 ID:9Wf1w+iu
>>773 えっ、そうなん?ロジックみたらスローっぽいんだけどな・・・。
780 :
Trader@Live! :2013/09/09(月) 22:16:52.29 ID:9Wf1w+iu
781 :
Trader@Live! :2013/09/10(火) 00:01:57.94 ID:cyW83/Pb
過去のAsk、Bidの値って取得できないの? Ask[i]みたいな感じでないんかな?
MT4のデータセンターからダウンロードできるやつじゃ満足できないの? それとも、スプレッドの変化を知りたいとか?
トレード時間のサーバー時間の指定について教えて下さい GMT+0の業者で、毎日朝8時〜深夜3時までのトレードにしたいのですが、 朝9時(0)〜にしないと、コメントにNon-tradingと表示されてしまいます 前日か翌日かの指定が必要でしょうか? 以下コードです。よろしくお願いしますm(_ _)m bool UseTimeLimit = true; int StartHour = 23;(8時) (←これを0(9時)にするとtradingになる) int StopHour = 18;(3時) int start() { if (UseTimeLimit){ if((Hour()>=StartHour)&&(Hour()<=StopHour)) Comment("Trading Hours"); else { Comment("Non-trading Hours");
上記は、今現在のレスした時間(Trading時間)においての話ですが、 私は9時ではなく8時に開始にしたいです またGMT+3の場合など、表を見てもどちら時差にずれるのか、 いくつに指定すれば良いか分かりません どなたかよろしくお願いします
if((Hour()>=StartHour)&&(Hour()<=StopHour)) のところを if((StartHour<StopHour)&&(Hour()>=StartHour)&&(Hour()<=StopHour) || (StartHour>StopHour)&&(Hour()<=StartHour)&&(Hour()>=StopHour)) で出来ない場合はifで分岐させなきゃムリぽい
>>785 レスありがとうございます
試してみたのですが、やはり23に指定するとNon-tradingになりました
諦めて9時にするか視点を変えてやってみます
どうもありがとうございましたm(_ _)m
>>783 if((Hour()>=StartHour)||(Hour()<=StopHour))
23以上 or 18以下 でっしゃろ?
>>787 できました
よく考えてみたらそうですよね…
どうもありがとうございましたm(_ _)m
ある程度自己解決。 Build507,509だと過剰反応してしまうっぽいですね。 コメントを活用して駄目なソースコード部分を特定しました。 過剰反応しないように手作り感あふれるコードに書き直すか、 MT4の旧バージョンを別途入れてそれでコンパイルするかにします。
ヘッダのコメント消して g_ibuf を buf とかに置換すればコンパイル通るよ
指定したEAのみを表示してくれる AccountHistoryのEA(インジ?)って無いですか? 今使ってるのはどっかで拾ったAccountHistory_05です。
サイトが落ちてるな
>>765 http://d.hatena.ne.jp/fai_fx/20090817/1250442575 を参考にして
#property indicator_chart_window
extern color BidLineColor = DodgerBlue;
extern string BidLineName = "Bid_Line";
int init()
{
SetIndexLabel(0,NULL);
return(0);
}
int deinit()
{
ObjectDelete(BidLineName);
return(0);
}
int start()
{
double a =MarketInfo("EURUSD",MODE_BID);
double b =MarketInfo("USDJPY",MODE_BID);
double BidLineName =a*b;
ObjectCreate(BidLineName,OBJ_HLINE);
return(0);
}
としてみたのですが、書いてくれません
何が悪いんでしょうか?
>>796 失礼な書き方だけど自分でプログラムをどうこうしようというレベルには見えない
具体的&最終的に何がしたいかを書いたほうが早いと思う
(最初の質問ではそのあたりが不明)
こういうキーワードでぐぐれくらいの回答はもらえるでしょう
BidLineNameがstringなのにdoubleとするところがいけないとわかっているのですが、色々やってみたが、どういじっていいか解らない・・・
要するにドルストからクロスを計算して、水平線で表示するだけなんですが・・・
>>798 doubleをstrにするだけなら、
DoubleToStr
エスパーすると、これで出来るんじゃね?ノーデバッグです #property indicator_chart_window extern color BidLineColor = DodgerBlue; extern string BidLineName = "Bid_Line"; int init() { ObjectCreate(BidLineName, OBJ_HLINE, 0, 0, 0.0); ObjectSet(BidLineName, OBJPROP_COLOR, BidLineColor); return(0); } int deinit() { ObjectDelete(BidLineName); return(0); } int start() { double a = MarketInfo("EURUSD",MODE_BID); double b = MarketInfo("USDJPY",MODE_BID); double bidline = a * b; ObjectSet(BidLineName, OBJPROP_PRICE1, bidline); return(0); }
すごい、天才ですか! ありがとうございますm(__)m
スプレッドフィルターを実装できたのかどうか心配です extern double MaxSpread = 2; // in pips として、 Ticket = OrderSend(Symbol()の直前に、if (Ask-Bid < MaxSpread*Point) これでできたのでしょうか? *Point)の直後に、return(0);はいりませんか? よろしくお願いします
804 :
Trader@Live! :2013/09/10(火) 23:12:54.60 ID:7YfiCcOk
すれチだったらすいません forex.comでAndroidでデモトレやってます 一度消したUSDJPYをもう一度表示しようと思ったら、forexPRO1〜10のどこにも入っていません どうしたらいいのでしょうか?
806 :
637 :2013/09/10(火) 23:43:56.51 ID:9/9SrHnD
EAでも時系列配列使えるって言ったやつちょっとこい。 あm。すいません、教えてくださいませ。ほんとにすいません。 てっきり、SetIndexBuffer()がEAの中でも使えるのかと思ったが、 Customindicatorでしか使えないよ!というエラーが返ってきたのです。 どうやら、他の方法で時系列配列を導入する方法なぞご存知でしたらお教えください。 できないのならば、無理やり全配列をならべなおすか。 そのままの配列で、逆からインジ計算するしか。そんな感じですかね。
>>806 つ ArraySetAsSeries()
基本はインジで扱ってインジから解析された情報を取り出す、だが・・・
こんなんあるのけ(´・ω・`) おまいら凄いすなぁ
811 :
637 :2013/09/11(水) 00:25:25.59 ID:NS5ZQNsR
>>807 テストで数百ものインジケータをEAに読み込ませてたら、さすがにMT4?PCがきつそうな状態になった。
多分オブジェクととか色々作ってるからとんでもない計算量になってるじゃないかと。
だったら、EAの中だけで完結できたら。もしかしたら計算量減るんじゃないかとおもってたら。
リンク先も面倒そうですねん。ありがとう、英語ですけど参考にさせてもらいます。
812 :
637 :2013/09/11(水) 00:34:58.39 ID:NS5ZQNsR
>>808 さん ヒントありがとう。これっぽいですね。明日研究してみます。807さんもありがとう。
てすと
>>803 Pointは最小単位のことだから
ユロドルの5桁業者だったら0.00001のことで
この書き方だったら
extern double MaxSpread = 20;
if()を複数行に適用させるときは
if()の後に{ }で括らなきゃだから
if (Ask-Bid < MaxSpread*Point){
Ticket = OrderSend(Symbol()〜
}
815 :
Trader@Live! :2013/09/11(水) 00:48:36.90 ID:XxZ5F8zh
初心者です 「当日の高値を更新したら注文」という指示を出す場合 「当日の高値」ってどういう風に表現したらいいのですか?
iHigh(NULL,PERIOD_D1,0)
>>814 ありがとうございます
20にするのと{が足りませんでしたね
コンパイルできても何かおかしいと思ったんです
ということはdoubleじゃなくてintで2でも良いのでしょうか?
pointもいらないんですか?
厳密には「当日」を日本時間の0時区切りと考えると若干面倒だがな。
intとdoubleはデータの形式の指定のことお intは小数点を付けられない整数 doubleは小数点以下を付けられる型 Pointは付けないとダメ Pointは通貨の最小単位のことだから 1*Pointで ユロドルや豪ドルでは0.00001に、ドル円では0.01になるお
>>819 なるほどー
検索するとintの人がいて変えた方が良いのか迷いました
doubleのままで桁数を修正しました
詳しくありがとうございましたm(_ _)m
ありがとうございます
なんだこのナルシスト 自演してまで居座りたいのか 質問と違うヘンテコな論点ずらしの回答すんな
824 :
にょろ―んインジ ◆jPpg5.obl6 :2013/09/11(水) 17:21:46.39 ID:ufwm8ME6
PFが1・43のEA組めたヾ(*´∀`*)ノわぁい
826 :
にょろ―んインジ ◆jPpg5.obl6 :2013/09/11(水) 18:07:43.45 ID:ufwm8ME6
>>825 ごめん、うpろだがないの
一目のみを改造して作った。4時間足で使用だよ
>うpろだがないの うそつくなよw
ZigZag Pointerのポイントの値をブレイクしたら、 アラートが鳴ったり、メール飛ばしたりしてくれるインジってありますか? あったら教えて下さい。
作れ!
ググッたら普通に出てくるけど
初心者です 5分毎に値をチェックさせたい時は、命令文に if( Minute==0 || Minute==5 || Minute==10 || Minute=15 || …… ) のように書けばOKですか? 別の正しい書き方、もしくはもっと気の利いた短い書き方があったらお願いします
Minute % 5 == 0
いやそれだと例えば5分0秒から5分59秒まで何回もチェックしちゃうじゃん
>>836 あれ、そっか、そういうことになりますね
5分後とに1回だけチェックする方法ってありますか
× 5分後と ○ 5分毎
俺も似たようなことやってる インジ内だと、Time[0]の値が変化したら・・・というやり方で簡単にいけるんだけど EA内だとMinuteの値を見るしかないのかなぁ、もっとスマートなやり方ないかなぁ EAで5分足のインジと1分足のインジを見てて、それぞれ足が更新したときのみ 情報取得すればいいので、5分ごと1分ごとにインジの情報を取得するように したいんだけど。 でも、できればそれぞれのインジが情報を更新したときにタイミングを あわせたいのでMinuteとかで独自に見るのは何か違うかなぁと思ったり。
842 :
Trader@Live! :2013/09/12(木) 16:48:14.43 ID:Ye32MC73
日経どこでみれるー?サーバー教えて下さい〜〜
俺はEAの取引制限のチェックをiTime()使って、処理してるけど。 バー単位になるけど、一分毎はPERIOD_M1、5分毎はPERIOD_M5・・・・で。
>>839 > 5分後とに1回だけチェックする方法ってありますか
start()の中で static bool でフラグを作ればいいと思いますよ。
チェックの度にフラグにTrueをセット、分が変わるとFalseにリセット。
チェックするのはフラグがFalseかつ5で割って分の余りがゼロの時。
試してないけどこれで実現できるのではないでしょうか。
>>843 サンクス。というか、もともとiTimeというのはあるかな?と思ってて
MT4本の索引を見たら載ってなかったのでない物と勘違いしてた。俺ゆとりだわ。
>>839 チェックした時の5分足の時刻をstaticな変数に保存しておいて
それが変わったら処理して、また今の時刻を保存
これの繰り返し。
>>839 です
答えてくださった皆さんありがとうございます
まだEAの本1冊読んだだけのほんとのニワカなんで
教えていただいた内容がよくわからなかったりするんですけど滝汗
勉強しながらやってみます
ありがとうございました
ぽまいらおはよう 久しぶりにこのスレ来たお(´・ω・`) 5分おきに1回だけの処理なら 俺ならこんな感じに書くかな ↓ extern bool a=true; int start() { if(a==1 && Minute==0 || Minute==5 || Minute==10 || Minute=15 || …… ){実行文;a=0;} if(a==0 && Minute==1 || Minute==6 || Minute==11 || Minute=16 || …… ){a=1;} return(0); } 上で誰かが言ってた剰余算の条件式だとこんな感じかな・・・ ↓ extern bool a=true; int start() { if(a==1 && (Minute%5)==0){実行文;a=0;} if(a==0 && (Minute%5)!=0){a=1;} return(0); } その他にもswitch文使ったり アイデア次第で色々と方法は有るよね。 あとエディター使わず適当に書いたから、 多分そのままコピペで使うとエラー吐くと思うから気をつけてね。
>>848 えっと・・・すでにFAしてたんですが・・・
ただ、コードは書かれてなかったので書いておきますね。
使用変数はdatetime型グローバルで、初期値は0。
dTime = iTime(NULL, PERIOD_M5, 0); //5M足
if(dTime_M5 != dTime)
{
dTime_M5 = dTime;
ここで、5分ごとにやりたい処理が書かれた関数呼び出し
5分足に対応したインジのiCustom分などもここ。
}
return(0)
5分、1分、15分、1Hなど色々対応しやすいのと、
インジ呼び出しのタイミングも適切になるのが利点。
質問です。 何故か4h足だけ9/6の日付で更新が止まってしまって、一度消してもう一度表示させてもやはり6日までしか表示されないのですが、直す方法ありますか? もちろんネットにも繋がっていますし、アカウントも正常です。
851 :
Trader@Live! :2013/09/13(金) 14:06:07.06 ID:5+ueJAHJ
5分おきに1回だけが話題になってるが忘れていることがあるんじゃないか? 5分間でレートが動かなかったらどうするんだ?start関数は走らんぞ。 皆まだまだ素人だな
つーか、5分おきの処理の仕方を聞いてるようなやつに そんなとこまで説明したって、きっと理解できないだろ。
MT4のスプレッドが簡単に設定できるようになって とりあえず1とかでバックテストしちゃうのは オレだけだろうか…スプが憎い
>>851 動かなかったらそれはそれでいいんじゃね。
規制しなくてももともとStart関数走らないんだろ。
そんなん言い出したら、そもそもEAは独自スレッドで動いてるんだから 5分間sleepすれば?っていう突き放した回答でも話終わっちゃうw
>>853 結果から引けばいいじゃん?
オフラインチャート使って云々とか色々方法はあるけどぶっちゃけ徒労だろ?
それは前提を曲解してる 全部しなくていいなら合ってるが、目的の処理のみ制限したいんだからさ。
>>856 ん?
スプ0.1って設定して右肩上がりの
結果を見るのが徒労だと?
正解www
だっていくらやっても右肩下がりしかできないんだもの。みつを。
>>851 > 5分おきに1回だけが話題になってるが忘れていることがあるんじゃないか?
> 5分間でレートが動かなかったらどうするんだ?start関数は走らんぞ。
>
> 皆まだまだ素人だな
擬似ティックを送る アレを使えと言いたいんですね?
>>859 問題は、どうやって(というか誰が)擬似ティックを投げるか?って話だな。
1.DLL書いて起こしたスレッドから投げる
2.EAから起動したスクリプトから投げる
3.サブクラス化してメッセージループ内から投げる
>>860 2の方法あるんや。
今まで手動で実行してたわ
>>850 停止 →historyフォルダを削除 →再起動
でもだめかい?
864 :
Trader@Live! :2013/09/13(金) 17:49:54.98 ID:zNTtJoLO
横軸がチック単位になっているチャートがあると聞いたのですが、 本当ですか? MT4だと、どうやったら見れますか
865 :
Trader@Live! :2013/09/13(金) 17:58:28.63 ID:YiO+U3WT
>>864 気配値表示窓のティックチャートタブのことかな
表示させることができるくらいで、インジとかは組み込めないけど
866 :
Trader@Live! :2013/09/13(金) 18:15:19.17 ID:zNTtJoLO
>>865 ありがとうございます
見てみましたが、横軸が短いのでこれで売り買いするのは無理そうですね
残念
>>862 今、一緒に表示していた4h足の(offline)を消して、やり直したら更新されました。
historyデータを同時に表示させると止まってしまう仕様なんですかね?
すいません 自己解決しましたw
YahooFinanceでダウンロードしたcsvファイルをMT4のヒストリカルデータとしてインポートするにはどうしたらいいでしょうか?
871 :
637 :2013/09/14(土) 00:35:12.27 ID:jfV9oben
EAでも時系列配列使えるって言ったやつちょっとこい。 いやすいませんm。 ほんとありがとうございました。ArraySetAsSeries()でばっちりでした。 ただ、iMA()とEAの中で作った移動平均の指標でつくった、 ゴールデンクロス売買の計算速度をくらべると圧倒的にiMA()が早かったです。 残念mm。 それはそれで、ArraySetAsSeries()は別の利用で何かとつかえそうな関数な雰囲気です。 ありがとうございました。m
業者と提携しているフリーのEAのexeファイルしかないのですが、 デコンパイルしたり改造しては駄目なのでしょうか? (口座登録後、その口座番号専用で動くものです)
>>872 規約確認しろ。
万が一そういった行為について触れられていなければ…いいのか?
提供している業者の国によっても違うかもな、
あぁでもデコンパイル自体を違法化している国ってのはないかも。
>>873 MT4で行う処理のケースによるとしか。
金持ちは金を稼ぐために初期投資を怠らない。けどな。
875 :
Trader@Live! :2013/09/14(土) 17:18:58.00 ID:OqSvaY1S
24時間運用wwww アホかwww
876 :
Trader@Live! :2013/09/14(土) 19:30:47.16 ID:FGIQdLsP
すみません、どなたか頭脳明晰の人教えてください。 RSiでセパレートウィンドウに表示されているラインに対して、 RSIの値が50以上の箇所には矢印を振りたいです。 で、以下のように作りましたがまったく矢印ができませんでした。 なぜなのでしょうか? RSIBuffer[i] ← これには数値が格納されています。 if(RSIBuffer[i]> 50) { ObjectCreate("BARROW_"+i,OBJ_ARROW,0,Time[i],0); ObjectSet("BARROW_"+i,OBJPROP_ARROWCODE,233); ObjectSet("BARROW_"+i,OBJPROP_COLOR,Red); }
>>876 WindowOnDropped()とかでウインドウ番号指定するのと
RSIは0〜100までだから値が0の位置に描画しようとするとたぶん画面外に隠れちゃう
それとオブジェクト名のつけ方ですが "文字列"+i としてますがこれforのカウンタのiであるならば
最新部分が i=0 になりますでしょう? んでそれだと新しい足ができたときまたその最新部分にi=0の名前をつけてしまいます
なので"文字列"+TimeToStr(Time[i])とかにしないとすでに同じ名前のオブジェクトがあるので作成に失敗すると思いますよ
>>874 規約を見たら、著作権について触れていました
許可なく複製、譲渡、販売を禁止とのことです
デコンパイルは複製、他者に依頼すれば譲渡に当たりますか?
やはり業者のものはやめておいた方が良いですね 設定項目が少ないので中身を見たかったのですが…
OrderSendでチケット番号が返されるまでループさせて発注させたら、 リアル口座で約定に2秒かかる場合などは余計にポジションを持ってしまうことがあるのでしょうか?
>>880 EAはOrderSendが戻るまで待ってるので、ダブることはない
100%とは言い切れないけど
そういうのは割りとあると思う。 過去の取引なんだからロジックしだいでバックテストの成績は上げられる。 問題は、それが今の相場で儲かるかどうかなんですよ。 過去の特定の期間に限定して利益が出るのを自慢してるだけのEAや、 損失が出る日時(予測ではなく後だしジャンケンで)の取引をしないEAという 可能性もある。
>>873 これサーバーどこにあるんだ
最近NYで$10くらいの契約したばっかなんだが少し気になる
886 :
Trader@Live! :2013/09/15(日) 10:06:47.46 ID:iw5L96UX
ポジションはBUYかSELLのどちらかしか持ちません。 で、今持ってるポジションのストップロスを変更しようとしますが、 その時にオーダーセレクトでまず呼び出すに当たって、以下のどちらが正しいのでしょうか? @if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES) == false) break; Aif(OrderSelect(OrdersTotal(),SELECT_BY_POS,MODE_TRADES) == false) break; よろしくお願いします。
>>881 おお、やはりそうですか。
もしそうでなかったらMQLの仕様的に絶対おかしいと思ってたので納得いきました。
ありがとうございました。
>>886 常に1ポジしか持たないんなら、正解は@
889 :
Trader@Live! :2013/09/15(日) 11:41:38.88 ID:iw5L96UX
888 ありがとうございます。
MT4でタートルズシステムを作った方いらっしゃいますか 無料でダウンロードできる所などあったら 教えてくれませんかね。 よろしくお願いいたします。
i-hiestと、i-lowestで簡単に作れるやろ
>>882 日単位で負けなし、累計1億オーバーのEAを
自分で開発して持っていたら、あなたは売るのか?
俺なら自分で使いまくるね。しかも4万とかありえないでしょ
いままで使ってたEA(旧EA)の収益がだんだん落ちてきて、 まったく別のロジックのEAを開発した場合、それが旧EAと関連性が低いなら 旧EAを売りまくるという選択もありかと。 で、いままでの利益曲線を宣伝文句にして高値で売りさばく。
どちらにせよ買った人には利益をもたらさないって事かw
今まで利益を出していたEAが徐々に成績を落としていくのってどういうメカニズムが働いているからなんだろうか? 相場に参加している人間が入れ替わっているってことなんだろうか?
894は架空のお話で現実とは関係ないから気にしても意味なし
いや、普通に高収益EAの取引結果を見てればわかるが・・・。 最近に近づくほど利益が落ちてるのが結構ある。
>>896 > 今まで利益を出していたEAが徐々に成績を落としていくのってどういうメカニズムが働いているからなんだろうか?
> 相場に参加している人間が入れ替わっているってことなんだろうか?
ある取引手法(EA)で利益が出ていたとして、
時間の経過と共に、その手法に気づいて採用する人が増えていくのでは?
その結果、成績が悪くなってゆくのでは?
と思ってる。
朝スキャや指標なんかは典型的な例。
指標発表時の瞬発的な大きな動きで儲かることに気づく。
↓
みんなが指標発表時に取引始める。(EAに限らず)
↓
業者の約定条件が悪化
↓
指標時の取引をする人が減る。
↓
業者の約定条件が改善
↓
最初に戻る
こんなサイクルを3〜4年毎に繰り返してる。
>>896 超・長期的には、
1970〜90年代に通用した手法が 現在ダメダメなのは、
取引の高速化にともなって、取引サイクルが激変したという話しは聞いたことあるよ。
これは参加者が入れ替わったというより、インフラが発達したからというべきだろうね。
>>896 相場の環境が変わってきている。
環境の変化を受けないように短い足ではなく
長い時間足でシステムを組んでも長期的に影響が出てくる。
ロジックが良いものならパラメータの変更とか
用意されたロジックの一部を停止等で対応する。
そして2年もすると元のロジックでokってこともある。
相場って環境が変わるもんだな。
>>896 最近でいえば各国介入祭りで相場が荒れてテクニカルが利かなくなってたり、参加者が増えて値幅が変わったりとかが主な原因かな。
手法の面でいえば近頃は猫も杓子も裁量も自動もみんなスキャばっかりだからブレイクしても即利確、でレンジ内にだらだら戻って来ちゃうし、短期トレンドフォローとかにはちと厳しい相場付きだね。
まあスキャ対策でスプ広がってきてるから今後はスイング系が成績を伸ばしてくると思うけど。
904 :
Trader@Live! :2013/09/16(月) 20:47:38.18 ID:yaCAuCUh
ヤフー知恵袋で質問しましたが、回答ゼロです。どなたか教えてください。 質問: 豊嶋久道著「FXメタトレーダー実践プログラミング」で使用されている ライブリー関数の変更方法についてお尋ねします。その中の注文送信関数 MyOrderSendには注文の有効期間(expiration)のパラメータが用意されていません。 有効期間を入れるためには、MyLib.mqhとMyLib.mq4に変更を加える必要があります。 具体的な変更方法をご教示ください。同時にサーバー時間で当日の22:00を有効期間 とする場合の、datetime expirationの書き方もお教え願えれば幸甚です。 以上です。
ある条件を満たすと■と□をサブウィンドウに値0.5で表示させて ■■■■■■ □□□□□□□ ■■■■■ こんな感じでトレード判断をするインディケーターを自作したんですが、 新しい足が作られた時に1本前の足に■か□が残っていることがあります。 判断では出ないはずなのになぜ表示が残ってしまうのでしょうか? インディケーターの設定を編集するウインドウを出して閉じると消えますので 計算自体はうまくいっています。 わかる方教えて下さい。よろしくお願いします。
>>905 一回値を入れたらそのまま値が残ってるんじゃない?足確定時に条件を満たしてなくてもそれが残ってる
だからforの中に
buf[i]=EMPTY_VALUE;
とか書いた後に
if(条件) buf[i]=0.5;
とかしないといかんのじゃないかな
>>907 ありがとうございます。仰る通りでした。
EMPTY_VALUEを入れてから条件を入れたら
正しく動きました。
ナビゲーターウインドウのフォント変わった?文字が小さくなってる。
910 :
Trader@Live! :2013/09/17(火) 22:04:39.41 ID:AWgETH0b
申し訳ございません。至急お願いします。 常にポジションは一つしかもちません。で、とある条件になったら、クローズを実施するようにしたいです。 で、以下のようなやり方でよろしいでしょうか? if(ほにゃらら)OrderClose(0);
911 :
Trader@Live! :2013/09/17(火) 22:09:57.39 ID:AWgETH0b
追記です。BUYかSELLのどちらかを持ちます。で簡単に即座にクローズしたいです。
>>910 ケチらないでメタトレーダーのプログラミング本買ったほうがいいんじゃない?
ちょっと見てらんない
913 :
Trader@Live! :2013/09/18(水) 14:14:16.64 ID:gVl8wp57
>>904 の質問者だが豊嶋さんからメールきたから取り消す。
知恵袋もここも結局ゼロ回答だった。
>>896 単なる想像だけど、利益を出していたEAの取引回数が少ない可能性もある。
50回取引して35回勝ちました。→ 勝てるEAとして販売します。→ 購入したEAで50回取引して15回しか勝てませんでした。
結局100回の取引でプラマイゼロだけど、購入後だけだとマイナスみたいな。
そもそもの順番がおかしいしねw
>>913 持ってるけどそんな使い方してるやついないからね。
今朝まで起動していたMT4が起動しなくなり 再インストールすると起動するようになりましたが 前のMT4の下記フォルダをペーストすると やはり起動しなくなります。 どんな原因が考えられるでしょうか? よろしくお願いします。m(_ _)m experts history config templates profiles (起動しなくなったのは MT4開いたままスタンバイ→スタンバイ解除 →接続復帰するまえに右上×ボタンで終了 →再度起動させようとするも起動せず という経緯です)
総決済のコードおしえてくだしあ
>>917 config 内のファイルが破損すると起動不能になるよ。
920 :
Trader@Live! :2013/09/18(水) 20:13:14.85 ID:XMDWHW29
Windows7でProfile情報が表示されないんですが、どこを変更するといいでしょうか? 他のMT4にコピーしたいのですが、セーブしたはずのProfileが表示されません。
>>919 ありがとうございます。助かりました。
configを除いてペーストしてみます。
config内のファイルというのは
どういう情報が入っているのでしょうか?
922 :
にょろ―んインジ ◆jPpg5.obl6 :2013/09/18(水) 20:16:34.58 ID:2CvDw8HS
>>918 それはEAではなくスクリプトでいける
ググればスクリプト用のプログラムが落ちているよ(´・ω・`)
保存した定型チャートが他のPCにコピー出来ないんですがどうすれば出来ますか? win7で鍵マーク付いてますが移せないのはMT4の奴だけなんですが
初心者です。 よくフィッティングとか言いますけど、10年分とか長期間のデータで上手く利益が出るように最適化されたパラメータならリアルで使用しても利益は出そうな気がするのですが間違ってますか? 皆さんBTはどのくらいの期間で行っているのでしょうか?
10年分wwwwwwwwwwwwwwwwwwwwwwwww
>>924 極端な例を揚げると、
・過去のチャートから、大底になった日と天井になった日を列挙する。
・その日に買ったり、売ったりするプログラムを書く。
if ( 今日==2012/12/1 ) { 買い}
if ( 今日==2012/12/5 ) { 売り}
if ( 今日==2012/12/20 ) { 買い}
if ( 今日==2012/12/25 ) { 売り}
// ↑こんな感じ
これなら、「10年分とか長期間のデータ」で上手く利益が出るように最適化されているにも関わらず、
リアルで使用しても全く利益が出ないと分かるよね。
日付埋め込みでは、初心者にもバレバレだから、
それぞれの日付に特徴的なテクニカル数値で条件を書きなおしてみる。
if ( MACD(12,12,6)>50 && RSI(23)>80 && RCI(50)>5 ) { 買い}
if ( EMA(23)>SMA(34) && TCI>0.5 && SSA<5 ) { 売り}
if ( MACD(5,3,3)<8 && Stoc(2,5,50)<0.5 ) { 買い}
if ( TriMA(21)>45 && FFT(50)<24 ) { 売り}
日付指定では、「んなもん、再現性あるわけねーよ」と判るのに、
テクニカル数値の条件で書きなおすと、「いけるかも??」って錯覚する人が多いんだが、
貴方はどう思う?
なにが?
>>926 明快ですごい説得力!俺は 924 じゃないけど(俺も初心者だが)腹の底から納得できたよ!! 分かりやすい解説、サンクス
929 :
924 :2013/09/19(木) 08:28:48.89 ID:d/FZ7GZG
>>926 非常に分かりやすい例を挙げて頂きありがとうございます。
その場合だと確かに騙されてしまいそうです。
ただ逆にいうと日付ベースではない売買ルールで長期間のBTを行い、自動的にパラメータを最適化すればフィッティングは起き辛い(ほぼ起きない)という認識で宜しいでしょうか?
>>929 一般論としては、
・最適化するパラメータが少ない
・売買回数が多い
を目指せば、過剰なフィッティングは起きにくいと言われているけど、
調節するパラメータ1つで200回近い売買でも、リアルではダメダメということもあるよ。
少し賢いテスト方法は、
・10年分のデータのうち、9年分で最適化したパラメータで、残り1年をテストしてみる。
#
http://ja.wikipedia.org/wiki/%E4%BA%A4%E5%B7%AE%E6%A4%9C%E5%AE%9A # 統計学でいう交差検定の考え方
・ウォークフォワードテスト
「直近3年で最適化し、次の1年でテストしてみる」を6回繰り返す。
こういうテストで満足のいく結果をだせるのが1つの目標かな。
ただねぇ、本当にフィッティングが起きにくいのは、
・ゴトー日のある時刻にドル円を売買する
・月末の第何曜日にアレを売買する
・毎日、ある時刻にナニをアレする。
系の値動きの背後に定期的に起こる経済現象がある売買ルールだよ。
#
http://hiroko.yutaka-shoji.co.jp/2013/06/blog-post_28.html # 投信設定でドル円上昇
何が原因で価格が動くのか想像できれば、
・その原因となる経済現象が続く限り、売買を続ける
・それが無くなれば、売買終了
と明確な運用方針を立てられる。
もっとも、どんな完璧な売買ルールでも、皆が真似すれば直ちに無効になってしまうから、
あんまり、フィッティングを意識しなくても良いんじゃないかなぁ(コラ
逆指値とは成行のことですよね? 例えば99.00に逆指値を置くのと、逆指値を置かずに99.00で成行決済するのは、同義ですか?
>>931 ブローカー依存だね。
言葉の定義としては、
「99.00 に達した時点で成り行き決済する」
のだから、同義になるはずなんですが、
ブローカー側の気持ち次第、ロット次第で逆指値はその価格で成立させてくれることもあるし、
逆指値をみつけると、わざと価格を動かしてゴニョゴニョ・・・
>>932 つまり逆指値は半成行ってわけですね。
成行決済よりはマシそうなので逆指値でやってみます。
ありがとうございました。
>>918 Close ALL orders.mq4 でググれ
逆指値は成り行きより決済されやすい すなわち不利な値まで滑って損切りが不利になるという可能性が減る というのが建前。 詐欺なブローカーだと損切りすべき局面でもないのに逆指値にひっかかる ことがあるという。 だからEAによっては逆指値をしないで成り行きで損切りするモードが搭載されてる。
なかなか上手くいかなくてつらたん。。。 どなたか稼いでからの後払いでも良い譲ってくれる人いませんか?
なんで後払いなんだよw 稼げなかったら払われないなら最初から自分で使ったほうがマシだろw
938 :
924 :2013/09/19(木) 15:01:19.46 ID:d/FZ7GZG
>>930 フィッティングについて少し理解できた気がします。ありがとうございます。
ウォークフォワードテストは何となくイメージはしていたのですが、一般的な手法だったんですね。
逆にこれが上手くいけば使えるEAと考えても問題ないですよね?
リアルでのSLを考慮に入れなければの話だとは思いますが…。
しつこいな 自分が納得するまでBTでもFTでもやればいいだろ 他人が問題ないと言えば信じるのか?
>>938 「どんな完璧な売買ルールでも、皆が真似すれば直ちに無効になってしまう」
んだから、使えるEAかどうかなんて、運用してみないと誰にも分からないんだ。
売買回数が多いほど、確かに統計学的な過去の信頼性は高くなるが、
そんなもので将来にわたって有効に機能するものをみつけるのは困難。
だって、世界中の何百万人ものトレーダーが、十年以上探しまくってるんだからね。
簡単確実に見つかるものは、既に無効になっているか、
すぐに無効化する可能性が高い。
む・し・ろ・・・
売買回数が少なすぎてテスト結果が信頼できない
↓
誰も怖くて運用しない
↓
率先して運用した者だけが利益を手にできる
完璧なテストにこだわれば、こだわるほど、収益機会が失われてゆく。
この流れを理解すべき。
一応真理を書いておくよ。俺の目指す運用もこれ。 実際に儲けてるプロのディーラーは裁量でやってる。 でも俺らは自動売買でやらないと感情とか技術とか時間の面で難しい。 ならば、裁量と自動売買のいいとこどりをするしかない。 裁量で、日足・週足の動き(や、可能な限り急なイベント等)を見据えた パラメータ調整を日々行いながら自動売買をしていくことが必要と思う。
またお前かw
それは真理とは言わんぞ。それは一つの手法じゃ
944 :
Trader@Live! :2013/09/19(木) 22:27:18.27 ID:KMOrH/yu
常にBUY か SELL のどちらかのポジションしか持ちません。 その状況で、オーダーモディファイをしたいと思います。 その場合、オーダーモディファイのチケット指定を OrdrModify(0,・・・ でできますか? それとも、いちいちオーダーセレクトしてからじゃないとできませんか?
OrderSend したときに返ってくるチケットを保存しておけばいいだろ。
MT4を再起動した時には、どうせ、セレクトしなおすから。。
すみません、自分でも本当にバカな質問だとは思いますが・・・ 自分も複数の業者のMT4を使っています 当然、MT4はチャート表示のツールであって、 そこでのask、bid、スプレッドなどは各社別々だと理解しています ところがMT4のプライスはみな同じだという意見が2チャンネル内にも多々あります 週5本日足、6本日足の差はありますが、それを除けば同じプライス、同じチャート なのでしょうか よろしくお願いいたします
>>948 > すみません、自分でも本当にバカな質問だとは思いますが・・・
> 自分も複数の業者のMT4を使っています
> 当然、MT4はチャート表示のツールであって、
> そこでのask、bid、スプレッドなどは各社別々だと理解しています
> ところがMT4のプライスはみな同じだという意見が2チャンネル内にも多々あります
自分で確認する方法を考えたほうがよいと思うよ。
>>949 早速のご回答ありがとうございます
各々違います
But 同じだという意見が結構あるので何か自分が勘違いしているのか
あるいはなにか違う意味があるのかと思いました
当然各社のプライスは異なるというのが事実だと思っています
あとがとうございました
値付け配信は各ブローカーがやってるわけでw
>>950 ヒストリーセンターから 過去のデータをダウンロードする時、
(A) メタクォーツ社のサーバからダウンロードする
(B) ブローカーのサーバからダウンロードする
の2種類の方式があって、
(A) の場合、メタクォーツ社のサーバからダウンロードされたのちに、
そのブローカーの時差設定に合わせてデータの時刻が変更されるって
動作仕様だったんよ。
そのために、(A)方式採用のブローカーは、どこも古いヒストリカルデータが同じやったんや。
そもそも、新規にブローカー始めたら、古いデータは
何処かから買うことになるから、ソースが同じなら同じデータになるのも仕方ないねんて。
954 :
Trader@Live! :2013/09/20(金) 13:57:07.71 ID:1s03tMde
親切な方解答していただければと思います。 移動平均線乖離率を表示できるインディケータはkairi.mq4がありますが、移動平均線乖離率をさらに移動平均化して表示できるインディケータはございますか? ABYSSEで探したのですが、ないようなので。
955 :
Trader@Live! :2013/09/20(金) 14:00:44.16 ID:1s03tMde
親切な方解答していただければと思います。 移動平均線乖離率を表示できるインディケータはkairi.mq4がありますが、移動平均線乖離率をさらに移動平均化して表示できるインディケータはございますか? ABYSSEで探したのですが、ないようなので。
android版MT4のチャートだけ表示されないんだがなんかわかる人居ますか? ググってもヒゲが表示されないとかそもそもアプリ自体動かないとかは見るんですが チャートの部分が真っ黒で表示されないってのは他になくて・・・ その他のタブは普通に見れるからまだ良いんだけど
>>954 カスタムではない標準機能の移動平均をドロップするとか。
ラインチャートの実線より下を塗りつぶすEAないですか?
最適化結果を保存すると、htmファイルになりますが、パラメータが表示されません。 パスをクリックするとパラメータが見えますが、表として表示させる方法はありますか。 なお、結果をコピーする方法ではなく、保存後のhtmファイルからパラメータを表示させたいです。
>>959 テレビの日経平均とかそういう表示じゃないですか?
下になにもないと自由落下しそうにみえてショーターになってしまうんです>_<
>>960 コピペしてExcelに保存しかないな
おれはフィルター掛けて保存してる。
>>960 htmファイル から、欲しい値を抜き出すプログラムを書いたらいいと思う。
Perl で。
>>965 そんなことが出来るくらいならこんな質問しないとw
>>961 見てクソワロタんだが、
>>966 見てワロエなくなった。
思ったより印象変わるもんだな。俺の感覚いい加減すぎw
俺は逆にどんな険しい山も歩いているうちに平地へ出るものだとショートしそうw
>>961 モニタを90度回転させると左右にしか行かないから安心
>>960 ブックマークレット作ってみた
javascript:(function(){var tds=document.getElementsByTagName('td');var trP=tds[0].parentNode;
if(trP.getAttribute('name')==null){trP.setAttribute('name','0');var tdP=document.createElement('td');tdP.innerHTML='パラメータ';
tdP.setAttribute('style','text-align:center;');trP.appendChild(tdP);for(var i=0;i<tds.length;i++){var p;p=tds[i].title;
if(p.length>0){var tr=tds[i].parentNode;var td=document.createElement('td');
td.setAttribute('style','text-align:left;');td.innerHTML=p;tr.appendChild(td);i++;}}}})();
1.ブラウザにお気に入りを1つ追加して、そのURLを↑にする(改行はとる)
2.ブラウザにOptimization Reportを表示中にこのお気に入りを実行する
IEとChromeで動作検証済
いいね!
974 :
960 :2013/09/21(土) 18:27:25.14 ID:Mvx0VOPt
>>皆様
回答ありがとうございます。
>>971 大変便利なスクリプトをありがとうございます。
FireFoxでも動作いたしました。
当方、出勤中や睡眠時にMT4を使って全数検索的なことをしておりました。
自動で複数EA及び複数通貨の最適化までは、BackTesterというソフトでできたのですが、結果をパラメータも含めエクセルで整理したかったので、出力された結果にパラメータが表示されないのが非常に不便でした。
全て解決しました。
ありがとうございます。
どなたかお願いします 急にテストができなくなりました 一旦ヒストリファイルを全部削除しましたが駄目です・・・ 症状 PC:ヒストリーセンターには2005年からインポートできている バックテストのスタートを押すと「no history data」で開始できない VPS:ヒストリーセンターにインポートできない FXDDのデータを選択してもインポート画面が空欄のまま) ウイルスにでも感染したのでしょうか 土日は追加できないのでしょうか?原因と解決方法などアドバイスお願いします
追加 最初に削除した理由ですが、 エラー「HistoryBase: not enough memory for 'USDJPY1' in AddTick() Memory handler: cannot allocate 203541712 bytes of memory」 となった為で、 現在も、2013.09.21 22:41:49 Memory handler: cannot allocate 139204516 bytes of memory と表示されています
977 :
Trader@Live! :2013/09/21(土) 22:56:06.54 ID:XzUhUyik
大変そうだなぁ
なんとかVPSの他の業者の方でできました メモリの問題かもしれないので色々削除してみます 引き続きがんばります
RSIのアラームがついたものありますか? 出来れば 数字をそのつど設定できればうれしい
なんぼでも
>>975 どうもですw
下記の方法で回復を試みてください。
必要なのは1Mのデーターだけです。
各通貨ペアの1M .hstを保有している場合に限ります。
該当する通貨ペアの1Mデーター 拡張子.hstを用意。
例:EURUSDの場合
MT4 ヒストリカルフォルダーの該当するEURUSDデーターを全て削除。
EURUSD 1M データーをインポート
MT4再起動
オフライン1Mを表示
スクリプト period_converter_ALL をオフライン1M画面にインポート
MT4を再起動
これで1Mデーターから生成された各時間足データーのヒストリが生成されます。
もし、上記でダメな場合は、
ヒストリカルデーター保存先の
MT4\***\synbols.raw .sel symbols.raw の通貨データー以外を削除して
MT4を再起動してください、上記のファイルはブローカー接続時に再取得されます。
>>982 上記の方法で該当通貨を思い切って全部削除して
他のMT4も1つアンインストールしてやっとできました!
synbols.rawまではいかずに済みました
何が原因だったんだろう…
ご丁寧にどうもありがとうございました!
ご挨拶忘れ、、失礼しました はいな!どうも!毎度お世話になっております 皆様良い休日を☆
VPSについて聞いても良いでしょうか 誤ってスタートボタンから切断を押したら リモートで接続できなくなりました… 詳しい方助けてくだしい…
VPS業者のコントロールパネルに行って 停止・起動・修復モードなど試しても起動中表示のままです いつもなら再起動できるのですが… 業者に問い合わせるべきという感じですか?
スレチ
988 :
Trader@Live! :2013/09/22(日) 22:50:07.34 ID:OOcNqSGZ
RSIのレベルアラームは多いんだけど、70超えて折れ曲がって右下がりになったらアラームってのがないんだよね
ベースになる.mq4ファイルあれば多分作れるけど。
>>986 つまりVPSは所詮借家
大家になりなさい
大家なら自由自在
詰まるところそういうこと
ECN口座だと指値や逆指値でもストップ、リミット0じゃないとOrderSend()は通りませんか?
通りませんね
iBarShiftを使わずに 日足のバーの開始時間=日付時間(datetime)を計算する方法はありますか・・・? 9/23 16:30 → 9/23 0:00 9/20 13:00 → 9/20 0:00 ↑ 入力は任意の時間で 出力がその日の0時という具合です
>>993 StrToTime(TimeToStr(datetime型,TIME_DATE))
我ながらセンスないな…。多分これでいい?
>>994 ありがとうございます
センスあると思います
それ以外ないと思います!
86,400 で割って、86,400掛けるのはダメなんだっけ?
>>990 問い合わせてもまだ連絡来ず接続できません
大家になるってどういうことですか?
Windowsでも出来ますか?
大家って自分のトレード専用PCで動かすってこと hp ワークステーション中古で十分
>>998 私もhpでHomeEditionですが
ワークステーションという型のPCを用意するということですね?
早速調べてみます!ありがとうございました
1000 :
Trader@Live! :2013/09/23(月) 20:38:24.93 ID:4VE6j1QN
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。