ライブラリ: Symbol - ページ 9 123456789101112 新しいコメント Andrey Khatimlianskii 2020.03.28 12:00 #81 Stanislav Korotky:そして、興味深い疑問が生じた - 同じ問題は、スタックで観察されていない - つまり、スタック 内の価格がチャートと異なるように?あるユーザーは、BookEventベースのインデューサーとチャートが同期していないと私に文句を言ってきました。 スタックはMarket Watchに対応していなければなりません。したがって、スタックはチャートと異なる可能性があります。 fxsaber 2020.04.07 21:15 #82 fxsaber:その結果、テスターではターミナルで見たものを元のシンボルで再現することはできません。 これがターミナルで表示されるものです。 ディールは「空中」で行われます。インジケータは森に行く。ティック履歴の 区分のみ。 Igor Makanu 2020.07.04 22:01 #83 おそらく、新しいビルド2515が何か間違っているのだろう。 これがそのスクリプトだ: #property copyright "IgorM" #property link "https://www.mql5.com/ja/users/igorm" #property version "1.00" #property script_show_inputs input int History = 1 e5; input double Weierstrass_A = 0.33; input double Weierstrass_B = 1.5; input int Weierstrass_N = 10; input double Weierstrass_Koeff = 0.45; #include <fxsaber\Symbol.mqh> // https://www.mql5.com/ja/code/18855 //+------------------------------------------------------------------+ //| スクリプト番組開始機能| //+------------------------------------------------------------------+ void OnStart() { const SYMBOL SymbDB("W" + _Symbol); datetime dt_end = TimeCurrent(); if(!SymbDB.IsExist()) // シンボルが作成されていない場合は、終了する。 { Alert("Error create Weierstrass func, symbol = ", "W" + _Symbol); return; } SymbDB.Off(); SymbDB.CloneProperties(); // プロパティをコピー if(CustomRatesDelete(SymbDB.Name, 0, dt_end) == -1) { Alert("Error CustomRatesDelete , GetLastError = ", GetLastError()); return; } // 正規化のための係数を求める int fw_MAX = INT_MIN, fw_MIN = INT_MAX; for(int i = 4 * History; i >= 0; i--) { int wtmp = FuncWeierstrass(Weierstrass_A, Weierstrass_B, Weierstrass_N, i); if(wtmp > fw_MAX) fw_MAX = wtmp; if(wtmp < fw_MIN) fw_MIN = wtmp; } const int fw_knorm = fw_MAX - fw_MIN; // 目盛りを記録してチャートを作成する MqlTick ticks[]; ArrayResize(ticks, History * 4); for(int i = 4 * History - 1; i >= 0; i--) { int wtmp = FuncWeierstrass(Weierstrass_A, Weierstrass_B, Weierstrass_N, i); ticks[i].last = ticks[i].bid = ticks[i].ask = NormalizeDouble(1.0 + Weierstrass_Koeff * (2.0 * (wtmp - fw_MIN) / fw_knorm - 1), _Digits); ticks[i].bid -= _Point; ticks[i].time_msc = ticks[i].time = dt_end--; ticks[i].time_msc *= 1000; ticks[i].volume = 1; ticks[i].volume_real = 1.0; ticks[i].flags = TICK_FLAG_ASK | TICK_FLAG_BID; } CustomTicksAdd(SymbDB.Name, ticks); if(SymbDB.On()) // マーケット・ウォッチに含まれるもの ChartOpen(SymbDB.Name, PERIOD_M1); // 新しいシンボル・チャートを開く } //+------------------------------------------------------------------+ int FuncWeierstrass(const double Wa, const double Wb, const int WN, const int cnt) { int result = 0; for(int i = 0; i <= WN; i++) { result += (int)(MathPow(Wb, i) * MathCos(MathPow(Wa, i) * M_PI * cnt)); } return(result); } //+------------------------------------------------------------------+ すべてうまくいきますが、一度しか動きません。 再起動すると "Waiting for update "という黒い画面になり、カスタムシンボルを手で削除 すると治ります。 何が正しく動作していないのでしょうか? fxsaber 2020.07.04 22:10 #84 Igor Makanu:何が正しく動作していないのか? ライブラリか、ターミナルの新しいビルドか? わからない。TicksAddは使っていない。 Igor Makanu 2020.07.04 22:52 #85 fxsaber:私は知らない。TicksAddは使っていない。 私はそれがわかったと思う。 CustomTicksAdd(SymbDB.Name, ticks); に置き換えた。 CustomTicksReplace(SymbDB.Name,0,TimeCurrent()*1000,ticks); スクリプトを再起動すると、正常に動作するようになりました。ただ、マーケット概要ウィンドウにAsk/Bidシンボルの値が表示されませんが、致命的ではありません。 UPD: しかし、CustomTicksAddは、シンボルがマーケット・オーバービューに追加されたときに正しく機能します。 if(SymbDB.On()) // マーケット・ウォッチに含まれるもの { CustomTicksAdd(SymbDB.Name, ticks); ChartOpen(SymbDB.Name, PERIOD_M1); // 新しいシンボル・チャートを開く } Stanislav Korotky 2021.01.28 17:23 #86 MTで不快なバグに遭遇しました。何らかの理由でSYMBOL_TRADE_TICK_SIZEが 設定されないのです。デバッグによると、正しい値がプロパティに書き込まれます(例えば、EURUSDの場合、0.00001)が、シンボルを作成した後、0が格納されます。 これを修正した人はいますか?MTのバグなのでしょうか、それともシンボル・ライブラリの特異性なのでしょうか? Vladimir Karputov 2021.01.28 17:25 #87 Stanislav Korotky:MTで不快なバグに遭遇しました。何らかの理由でSYMBOL_TRADE_TICK_SIZEが 設定されないのです。デバッグによると、正しい値がプロパティに書き込まれています(例えば、EURUSDの場合は0.00001)が、シンボルを作成した後は0が格納されています。これを修正した人はいますか?MTのバグなのでしょうか、それともシンボルライブラリの特異性なのでしょうか? それとも、プロパティをポーリングした後に「0」が表示されるのでしょうか? fxsaber 2021.01.28 18:31 #88 Stanislav Korotky:MTで不快なバグに遭遇しました。何らかの理由でSYMBOL_TRADE_TICK_SIZEが 設定されないのです。デバッグによると、正しい値がプロパティに書き込まれています(例えば、EURUSDの場合は0.00001)が、シンボルを作成した後は0が格納されています。これを修正した人はいますか?MTのバグなのでしょうか、それともシンボルライブラリの特異性なのでしょうか? おそらく、フィールドを設定する順序によると思います。私はこのようにしています。 this.SetProperty(SYMBOL_DIGITS, this.Ticks.GetDigits()); this.SetProperty(SYMBOL_TRADE_CONTRACT_SIZE, 1 e5); // https://www.mql5.com/ru/forum/330333#comment_14608694 this.SetProperty(SYMBOL_TRADE_TICK_VALUE, 1); this.SetProperty(SYMBOL_TRADE_TICK_SIZE, this.GetProperty(SYMBOL_POINT)); Stanislav Korotky 2021.01.28 18:56 #89 fxsaber:おそらく、フィールドの割り当ての順番によると思う。私はこうしている。 私はClonePropertiesコールを使用しており、このような行があります(現在公開されているバージョンでは): ... CLONE(SYMBOL_TRADE_CONTRACT_SIZE) && CLONE(SYMBOL_TRADE_FACE_VALUE) && CLONE(SYMBOL_TRADE_LIQUIDITY_RATE) && CLONE(SYMBOL_TRADE_TICK_SIZE) && CLONE(SYMBOL_TRADE_TICK_VALUE) && ... ここでは、順序は少し異なりますが、正しい値が契約と他のプロパティに転送されます。 Stanislav Korotky 2021.01.28 19:13 #90 ClonePropertiesを呼び出した後、こんなくだらないことを書いた: Symb.CloneProperties(_Symbol); if(SymbolInfoDouble(_SymbolName, SYMBOL_TRADE_TICK_SIZE) == 0) { CustomSymbolSetDouble(_SymbolName, SYMBOL_TRADE_TICK_SIZE, SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE)); } これが通常の適用方法である。しかし、これはある種の松葉杖である。 123456789101112 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
そして、興味深い疑問が生じた - 同じ問題は、スタックで観察されていない - つまり、スタック 内の価格がチャートと異なるように?
あるユーザーは、BookEventベースのインデューサーとチャートが同期していないと私に文句を言ってきました。
スタックはMarket Watchに対応していなければなりません。したがって、スタックはチャートと異なる可能性があります。
その結果、テスターではターミナルで見たものを元のシンボルで再現することはできません。
これがターミナルで表示されるものです。
ディールは「空中」で行われます。インジケータは森に行く。ティック履歴の 区分のみ。
おそらく、新しいビルド2515が何か間違っているのだろう。
これがそのスクリプトだ:
すべてうまくいきますが、一度しか動きません。
再起動すると "Waiting for update "という黒い画面になり、カスタムシンボルを手で削除 すると治ります。
何が正しく動作していないのでしょうか?
何が正しく動作していないのか? ライブラリか、ターミナルの新しいビルドか?
わからない。TicksAddは使っていない。
私は知らない。TicksAddは使っていない。
私はそれがわかったと思う。
CustomTicksAdd(SymbDB.Name, ticks);に置き換えた。
スクリプトを再起動すると、正常に動作するようになりました。ただ、マーケット概要ウィンドウにAsk/Bidシンボルの値が表示されませんが、致命的ではありません。
UPD:
しかし、CustomTicksAddは、シンボルがマーケット・オーバービューに追加されたときに正しく機能します。
MTで不快なバグに遭遇しました。何らかの理由でSYMBOL_TRADE_TICK_SIZEが 設定されないのです。デバッグによると、正しい値がプロパティに書き込まれます(例えば、EURUSDの場合、0.00001)が、シンボルを作成した後、0が格納されます。
これを修正した人はいますか?MTのバグなのでしょうか、それともシンボル・ライブラリの特異性なのでしょうか?
MTで不快なバグに遭遇しました。何らかの理由でSYMBOL_TRADE_TICK_SIZEが 設定されないのです。デバッグによると、正しい値がプロパティに書き込まれています(例えば、EURUSDの場合は0.00001)が、シンボルを作成した後は0が格納されています。
これを修正した人はいますか?MTのバグなのでしょうか、それともシンボルライブラリの特異性なのでしょうか?
それとも、プロパティをポーリングした後に「0」が表示されるのでしょうか?
MTで不快なバグに遭遇しました。何らかの理由でSYMBOL_TRADE_TICK_SIZEが 設定されないのです。デバッグによると、正しい値がプロパティに書き込まれています(例えば、EURUSDの場合は0.00001)が、シンボルを作成した後は0が格納されています。
これを修正した人はいますか?MTのバグなのでしょうか、それともシンボルライブラリの特異性なのでしょうか?
おそらく、フィールドを設定する順序によると思います。私はこのようにしています。
おそらく、フィールドの割り当ての順番によると思う。私はこうしている。
私はClonePropertiesコールを使用しており、このような行があります(現在公開されているバージョンでは):
ここでは、順序は少し異なりますが、正しい値が契約と他のプロパティに転送されます。
ClonePropertiesを呼び出した後、こんなくだらないことを書いた:
これが通常の適用方法である。しかし、これはある種の松葉杖である。