MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 739 1...732733734735736737738739740741742743744745746...1953 新しいコメント novichok2018 2019.01.17 08:55 #7381 Ilya Prozumentov:それを見極めるのは、作者次第です。OnTick()のコードを持ってくるのがベターです。著者に連絡した。私は助けなかった。彼自身、どうしたらいいのかわからない。"ここでコンディションを確認して ください" "私はあなたを助けません"。私は私のコードの部分に責任を持つかもしれませんが(!)、あなたのコードに責任を 持つことはできません」。 以下は、OnTick()のコードです。 void OnTick() {RefreshRates(); //--- string TextDisplay=""; /* Check News */ bool trade=true; string nstxt=""; int NewsPWR=0; datetime nextSigTime=0; if(MidleNews || HighNews) {RefreshRates(); if(SourceNews==0) {// Investing RefreshRates(); if(CheckInvestingNews(NewsPWR,nextSigTime)){ trade=false; } // news time } } if(trade) {// No News, Trade enabled nstxt="No News, Waiting"; if(ObjectFind(0,"NS_Label")!=-1){ ObjectDelete(0,"NS_Label"); } }else{// waiting news , check news power color clrT=LowColor; if(NewsPWR>3) { nstxt= "Waiting Non-farm Payrolls News"; clrT = HighColor; }else{ if(NewsPWR>2) { nstxt= "Waiting High News"; clrT = HighColor; }else{ if(NewsPWR>1) { nstxt= "Waiting Midle News"; clrT = MidleColor; }else{ nstxt= "Waiting Low News"; clrT = LowColor; } } } // Make Text Label if(nextSigTime>0){ nstxt=nstxt+" "+TimeToString(nextSigTime,TIME_MINUTES); } if(ObjectFind(0,"NS_Label")==-1) { LabelCreate(StringConcatenate(nstxt),clrT); } if(ObjectGetInteger(0,"NS_Label",OBJPROP_COLOR)!=clrT) { ObjectDelete(0,"NS_Label"); LabelCreate(StringConcatenate(nstxt),clrT); } } nstxt="\n"+nstxt; /* End Check News */ if(trade && oppoz) {// No news and Trade Allowed Fun_New_Bar(); if(New_Bar) { Alert("Открыть позицию"); ManageTrade(); // Your trade functions } oppoz=false; } TextDisplay=TextDisplay+nstxt; Comment(TextDisplay); return; } novichok2018 2019.01.17 09:01 #7382 Alekseu Fedotov:置き換えてみてください をこのセリフで。 効いていると思います!もう20分もメッセージがない。13時のニュースにどう反応するか見ものです。 Aliaksei Karalkou 2019.01.17 09:44 #7383 Artyom Trishkin: 数値はNaN - Not a Number - 数字ではありません。Zカウントの計算で数値を正規 化してみるありがとうございます、助かりました。 MathCeil() が動作しないのは不思議です。NormalizeDouble() number helped - == Z-scoreイコール=-92233720368547.77 .フィギュアは凄いが、バランスはほとんど変わらない novichok2018 2019.01.17 11:09 #7384 Alekseu Fedotov:置き換えてみてください をこのセリフで。 おお、それはすごい!すべて設定通りに動作し、不具合はありませんでした。ありがとうございました。 私は、シンプルなソリューションとシンプルなコードが好きです。 また、全くの素人のために注意を払い、助けようとしてくれた皆さんに感謝します。 psyman 2019.01.17 11:14 #7385 Bidに価格マーカーを取り付け、正常に動作することを確認し、別のチャートに切り替えると、すぐに縦座標が15ピクセルほどずれることが確認できます。 戻ると、マーカーは「逃げ」てしまい、次のティックまで所定の位置になく、その後「母国へ」戻ってしまいます。これは何が原因なのでしょうか? //+------------------------------------------------------------------+ //| !_clr_indicator.mq5 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property indicator_chart_window string objname="Bid"; input color Bid_color = clrCrimson; int OnInit() { int x,y; double Bid = SymbolInfoDouble(Symbol(), SYMBOL_BID); int width = (int)ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0); //ширина графика ObjectCreate(0, objname, OBJ_LABEL,0, 0, 0); ObjectSetString(0, objname, OBJPROP_TEXT, DoubleToString(Bid, _Digits-1)); ObjectSetInteger(0, objname, OBJPROP_FONTSIZE, 12); ObjectSetInteger(0, objname, OBJPROP_COLOR, Bid_color); ObjectSetString(0, objname, OBJPROP_FONT, "Verdana"); ChartTimePriceToXY(0, 0, TimeCurrent(), Bid, x, y); ObjectSetInteger(0, objname, OBJPROP_XDISTANCE, width-60); Print("y=", y, " ", ObjectGetInteger(0,objname,OBJPROP_TIME,0)); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { int x2,y2; double Bid2 = SymbolInfoDouble(Symbol(), SYMBOL_BID); ChartTimePriceToXY(0, 0, TimeCurrent(), Bid2, x2, y2); ObjectSetInteger(0, objname, OBJPROP_YDISTANCE, y2); Print("x2=", x2, " y2=", y2, " ", " Bid=",Bid2); return(rates_total); } void OnDeinit(const int reason) { ObjectDelete(0,objname); } Alexey Viktorov 2019.01.17 11:36 #7386 psyman:Bidに価格マーカーを取り付け、正常に動作することを確認し、別のチャートに切り替えると、すぐに縦座標が15ピクセルほどずれることが確認できます。 戻ると、マーカーは「逃げ」てしまい、次のティックまで所定の位置になく、その後「母国へ」戻ってしまいます。これは何が原因なのでしょうか? なぜなら、チャートは 次のティックにしか再描画 されないからです。しかし、今、チャートの強制再描画を設定するのは危険です。MT5の前2つのビルドは、幼稚なブレーキではありませんでした。MT4ではどうなのかわからないので、確認したほうがいいですね。 psyman 2019.01.17 11:43 #7387 Alexey Viktorov:この状況は、次のティックにのみチャートが再描画 されることにより 解決することができます。しかし、無理やりチャートを描き直すのは危険です。MT5の前2つのビルドは、かなり複雑でした。MT4ではどうなっているのかわかりませんので、確認が必要です。これは結果論であり、何が原因で変化しているのかは不明です。 水平方向も同じで、一番嫌なのはマーカーが価格に重なってしまうことです。状況を理解するために、コードのほとんどをカットしています。 この状況を打開するにはどうしたらいいのか。 Ilya Prozumentov 2019.01.17 12:12 #7388 psyman:これは結果論で、何が原因でシフトしているのかは不明です。 水平方向も同じで、一番嫌なのはマーカーが価格に重なってしまうことです。状況を理解するために、コードのほとんどをカットしています。 この状況を打開するにはどうしたらいいのか。マーカー座標の更新も同様に、CHARTEVENT_CHART_CHANGE イベントで行ってみて ください。 if(id==CHARTEVENT_MOUSE_MOVE || id==CHARTEVENT_CHART_CHANGE) psyman 2019.01.17 14:24 #7389 Ilya Prozumentov:CHARTEVENT_CHART_CHANGE イベントと 同じ方法でマーカー座標を更新してみてください。 試してみると、マウスを動かさないとマークが戻りません。同じ松葉杖でも、手に持っているものが違うんです :-) また、CHARTEVENT_CHART_CHANGE のためのチャートの切り替えは、イベントではない。 この異常事態を克服する方法をどなたか考えてください。 Taras Slobodyanik 2019.01.17 14:50 #7390 psyman: 試してみると、マウスを動かさないとマークが戻りません。同じ松葉杖でも、手に持っているものが違うんです :-) また、CHARTEVENT_CHART_CHANGE のためのチャートの切り替えは、イベントではない。 この異常事態を克服する方法をどなたか考えてください。OnInitで変数の初期 化を行う(オブジェクトの再描画を含む)。 1...732733734735736737738739740741742743744745746...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
それを見極めるのは、作者次第です。OnTick()のコードを持ってくるのがベターです。
著者に連絡した。私は助けなかった。彼自身、どうしたらいいのかわからない。"ここでコンディションを確認して ください" "私はあなたを助けません"。
私は私のコードの部分に責任を持つかもしれませんが(!)、あなたのコードに責任を 持つことはできません」。
以下は、OnTick()のコードです。
置き換えてみてください
をこのセリフで。
効いていると思います!もう20分もメッセージがない。13時のニュースにどう反応するか見ものです。
数値はNaN - Not a Number - 数字ではありません。Zカウントの計算で数値を正規 化してみる
ありがとうございます、助かりました。
MathCeil() が動作しないのは不思議です。NormalizeDouble() number helped - == Z-scoreイコール=-92233720368547.77 .フィギュアは凄いが、バランスはほとんど変わらない
置き換えてみてください
をこのセリフで。
おお、それはすごい!すべて設定通りに動作し、不具合はありませんでした。ありがとうございました。
私は、シンプルなソリューションとシンプルなコードが好きです。
また、全くの素人のために注意を払い、助けようとしてくれた皆さんに感謝します。
Bidに価格マーカーを取り付け、正常に動作することを確認し、別のチャートに切り替えると、すぐに縦座標が15ピクセルほどずれることが確認できます。
戻ると、マーカーは「逃げ」てしまい、次のティックまで所定の位置になく、その後「母国へ」戻ってしまいます。これは何が原因なのでしょうか?
Bidに価格マーカーを取り付け、正常に動作することを確認し、別のチャートに切り替えると、すぐに縦座標が15ピクセルほどずれることが確認できます。
戻ると、マーカーは「逃げ」てしまい、次のティックまで所定の位置になく、その後「母国へ」戻ってしまいます。これは何が原因なのでしょうか?
なぜなら、チャートは 次のティックにしか再描画 されないからです。しかし、今、チャートの強制再描画を設定するのは危険です。MT5の前2つのビルドは、幼稚なブレーキではありませんでした。MT4ではどうなのかわからないので、確認したほうがいいですね。
この状況は、次のティックにのみチャートが再描画 されることにより 解決することができます。しかし、無理やりチャートを描き直すのは危険です。MT5の前2つのビルドは、かなり複雑でした。MT4ではどうなっているのかわかりませんので、確認が必要です。
これは結果論であり、何が原因で変化しているのかは不明です。
水平方向も同じで、一番嫌なのはマーカーが価格に重なってしまうことです。状況を理解するために、コードのほとんどをカットしています。
この状況を打開するにはどうしたらいいのか。
これは結果論で、何が原因でシフトしているのかは不明です。
水平方向も同じで、一番嫌なのはマーカーが価格に重なってしまうことです。状況を理解するために、コードのほとんどをカットしています。
この状況を打開するにはどうしたらいいのか。
マーカー座標の更新も同様に、CHARTEVENT_CHART_CHANGE イベントで行ってみて ください。
CHARTEVENT_CHART_CHANGE イベントと 同じ方法でマーカー座標を更新してみてください。
試してみると、マウスを動かさないとマークが戻りません。同じ松葉杖でも、手に持っているものが違うんです :-)
また、CHARTEVENT_CHART_CHANGE のためのチャートの切り替えは、イベントではない。
この異常事態を克服する方法をどなたか考えてください。
試してみると、マウスを動かさないとマークが戻りません。同じ松葉杖でも、手に持っているものが違うんです :-)
また、CHARTEVENT_CHART_CHANGE のためのチャートの切り替えは、イベントではない。
この異常事態を克服する方法をどなたか考えてください。
OnInitで変数の初期 化を行う(オブジェクトの再描画を含む)。