【MT4/MT5】MetaTrader Part22【メタトレーダー】
しかしまあFxProのサイト自体がクソ重いのなんとかならんものか
自分自身のWindowIDを返す関数ってありますか?
seperate_window で自信にオブジェクトを書きたいのに見つからない orz
って書いてから自己完結。スレ汚しですまん。
IndicatorShortNameで名前をつけて、WindowFindすれば出来そう。
>>474 Dukascopyってまだベータテスト中で、リアルは無い
んでもってどこかのブログでDukascopyでMT4導入は打ち切りとかって話だぞ
自作EAでオーダーしてもエラ−138か146が戻ってくる
もちろん価格は最新を入れてる
デモ口座では正常に動作するのにライブにすると動かない
ライブでも以前は動いていたのに
ブローカーにIPで閉め出されてるのかな
デモで成績良すぎたから
>>492 え!
Dukas評判良いみたいだから期待してたんですが。それは困った。
タイムサーバーとかの設定が分からない!!
121証券だとserver_timezoneを9でshow_timezoneを9で正しく表示するんだけど
ODL正しく表示しない。ODLで正しく表示するには数字を何にしたらいいの??
教えてください。
マルチやろうには教えません!!
>>485 そうなんですか
知らなかった
最近 米国時間で約定拒否くらうんですけど
人が増えてるから…
Dukas は MT4 ではないが API 公開してるんじゃなかった?
MT4からDLL経由で API 使えば発注できないかな
既にあった気がする
早くMT5実運用スタートしないかな
>503
DataWindowなどで値を見ると0が代入されている
コードを見るとバッファのval1,val2を0で初期化している
一度値が決まって処理が終わったら後でそれを参照することも無いようなので
ちょっと荒っぽいけど、初期化の2行
val1[shift]=0;
val2[shift]=0;
をコメントアウトすれば取り合えずはok。
どんな影響が出るかまで細かくは調べてないんで注意してね。
// 0なんか代入しないでEMPTY_VALUEのままでいいんじゃないかと思った
コーディングねたなんだけど、足が新しくなったのを検出するのに
initで SetIndexBuffer(0,ma);
startで if(ma[0]==EMPTY_VALUE) hoge;
と書いてみた。今のところ期待通りに動いているんで満足してる。
足が新しくなったのを検出するのには他にどんな書き方があるんだろう?
昔は if(Volume[0]==1)と書いたこともあったけど、上記のコードの検証時に
いきなりVolume[0]が2なんてのもあって「こりゃダメだ」と思った
Time[0]
>506
Time[0]をstaticなりグローバルでキャッシュするのかな?
>>505 そんな書き方できるのか。勉強になった
おれもVolume[0]が2からはじまったのをみたことある。
それから
>>507みたいにしてる
MT4本に書いてあったが
int previousbars=-1 と定義しておき
if(previousbars==Bars) return;
previousbars=Bars;
で、新しい足を検出したときのみの処理ができる。
Bars を参照するのは問題があって、
例えばチャートをバックスクロールした場合。
新しい足が増えなくても、Bars は変わる。
512 :
Trader@Live!:2010/05/28(金) 18:28:20 ID:EY5IoHJe
業者Aのメタトレーダと業者Bのメタトレーダを立ち上げておいて、
AのEAからBのEAに変数を渡したいのですが
良い方法無いですか。
514 :
504:2010/05/28(金) 19:29:50 ID:huJuNpyE
>503
>504
ちょっとフォロー。>504の書法だとtickの度にalertが出る。
(元がそういう造りなので気にしてないかもしれないけど)
alertが鬱陶しいなら、504に加えて最後のalertの部分を
if (val1[shift]>0 && val1[shift]!=EMPTY_VALUE)
としてください。
このままでもシグナルが出たバーではtickの都度(というか値が1pipでも変われば)
アラートが出るけど、そこから先は自力で頑張ってくださいな
515 :
504:2010/05/28(金) 19:43:22 ID:huJuNpyE
EMPTY_VALUEって0x8000000だと思い込んでた。ちゃんとヘルプ読め >俺
検証用&サンプル
#property indicator_chart_window
#property indicator_buffers 1
double buf[];
extern int reminderInterval=15; //秒単位
extern int reminderCount=2;
int init()
{
SetIndexBuffer(0,buf);
return(0);
}
int start()
{
static bool bAlertDone=false;
static int iAlertCount=0;
static datetime dtAlert=0;
static double price;
int _interval = reminderInterval; //*60;
string s;
if (buf[0]==EMPTY_VALUE)
{
if (buf[0]==EMPTY_VALUE) s="value is EMPTY_VALUE";
else s="value is NOT EMPTY_VALUE";
if (EMPTY_VALUE>0) s = s+"\nvalue is PLUS";
else if (EMPTY_VALUE<0) s = s+"\nvalue is MINUS";
else s = s+"\nvalue is uncountable";
Comment(TimeToStr(TimeCurrent(), TIME_MINUTES|TIME_SECONDS)
,"\n","Time[0]: ", TimeToStr(Time[0], TIME_MINUTES|TIME_SECONDS)
,"\n","Volume[0]: ", Volume[0]
,"\n", s
,"\nEMPTY_VALUE: ", EMPTY_VALUE);
buf[0]=0;
if (dtAlert==0) dtAlert = TimeCurrent();
if (iAlertCount>reminderCount || Time[0]>dtAlert+_interval)
{
bAlertDone=false;
iAlertCount=0;
price=Close[0];
Print("****New Bar and init flags.");
}
}
s="";
//3pips動いたらalert
if (MathAbs(price-Close[0]) * MathPow(10,Digits) > 2)
{
if (!bAlertDone)
{
bAlertDone=true;
iAlertCount++;
dtAlert = TimeCurrent();
price=Close[0];
s = "晩御飯ですよー\n "+DoubleToStr(Close[0], Digits);
s = s +"\n count:"+ iAlertCount +" interval:"+ (TimeCurrent()-dtAlert);
}
else if (iAlertCount<=reminderCount)
{
iAlertCount++;
if (TimeCurrent()-dtAlert>reminderInterval)
{
if (Time[0]<dtAlert)
{
// 今のBarで生じたアラートのremind
s="早く食べなさい!";
s = s +"\n count:"+ iAlertCount +" interval:"+ (TimeCurrent()-dtAlert);
}
else
{
// 前のBarのアラートでremindを持ち越した分
s="朝御飯ですよー";
s = s +"\n count:"+ iAlertCount +" interval:"+ (TimeCurrent()-dtAlert);
iAlertCount=0;
bAlertDone=false;
}
dtAlert = TimeCurrent();
price=Close[0];
}
else
Print("さっき食べたばっかりでしょ?"
," interval: ", (TimeCurrent()-dtAlert), "<", reminderInterval);
}
else
{
Print("カレーにスルー"
, " (count: ", iAlertCount, ">", reminderCount, ") or (interval: ", (TimeCurrent()-dtAlert), "<", reminderInterval, ")" );
}
}
if (s!="") Alert(s);
return(0);
}
518 :
Trader@Live!:2010/05/29(土) 00:43:10 ID:JMkl6LOe
>515 サンクス
このサイトは知ってましたがこんな記事があったとは。
ここは奥が深いですね。
>>515 俺も今日見つけたばかりなんだけどまさか今日そのサイトを見かけるとはw
レンジブレイクを待ってたのにコーディングにかまけて見逃したw
Time[0]を使うとあれこれフラグ管理するのが面倒と思ってたけれど、いざ書くと
巡り巡ってアラート自体がフラグ管理に帰結するって所に落ち着いた。
でも、必要最小限のことをするならシンプルになるんで気に入った。
気付いたこと:
新しい足ではまだstart()が実行されていないのでbuffer[0]は初期値(EMPTY_VALUE)のままである
応用:
buffer[0]は初期値(EMPTY_VALUE)ならそれは新しい足である
Coders'Guruのコードはいろんなインジケータに使われてるし、
Forex-TSDでも勉強させてもらったな。足を向けては眠れないね
3つの業者のMT4で同時に同じEAを稼動させてるんだけど、
この4日間で、1つは4回ポジったのに、残り2つは全くポジらない
セッティングを確認して操作履歴も見たけど、何もエラーはない
レートに微妙な差があるだけで、これだけ違うものかな?
>>515のレートのインポートは良さそうだけど、完璧ではないみたいだし・・・
>>521 俺も業者によって微妙に違うよ。微妙だけど
リスクヘッジでいいんじゃね?
>>520 明示的に初期化されていない変数を参照するなんて昔では考えられなかったわw
あまりに価格操作の激しい業者は
業者間の相対売買で瞬間的に利益あげてしまおうと
思ったらスプのせいで無理でした
いまどきその手法難しいでしょ
526 :
Trader@Live!:2010/05/30(日) 17:38:13 ID:wXIpBg1F
口座開設時要パスポート
自然法で廃止しろ糞めんどくせえ
BroCoのレートおかしくないか?
他社との差が大きすぎる
528 :
Trader@Live!:2010/05/31(月) 20:22:20 ID:8o4rW62g
何回同じ話題振ってんだよ
ログ読め馬鹿
>>528 読んだよ
なぜズレてるのかのレスがないから書いてんだよ
おまえがログ嫁タコ
/ ̄\
|・ ・|
| ◎ |
__/| | | | | \_
| | | | |
>>530 読んで理解できないとか終わってんなw
FXがどういうもんかわかってないんだな
>>530 なぜズレてるのか?
それは、Broco がその値段をつけたから。
Broco には自由に値段をつける権利があるの。
534 :
Trader@Live!:2010/06/01(火) 10:28:51 ID:RSCcDdHe
本人確認なしでいける所みつけたze
Brocoのデモ口座申し込んだら
FXツール研究所って商材会社から宣伝メール来やがった。
さすがロシアの会社だな。
>>536 宣伝メールが来るのか調べるために、わざとフリーの実在メアドつかったんだろ。
まーたgoldバグってるよ
バグだよな?GMT19:30−40のチャート