エラー、バグ、質問 - ページ 136

 
Renat:
Expert Advisor から作成されたインジケータは、明示的に削除するか、Expert Advisor が終了するまでアンロードされません。

お忙しい中、ご返信ありがとうございました。

これは、テスター用のコードと本番用のコードを分けずに済むということで、大きな変化です。

 
Renat:

インジケーターが1時間に1回必要な場合、どのようにリソースを節約するのがベストかアドバイス。

標準的な指標を何十個も残して、ティックごとに ぶら下がるようにしたり

使用後はIndicatorRelease(indicator_handle)でアンロードし、1時間後に再度ロードしてください。

しかし、2つ目のバリエーションでは、テスト時間が長くなってしまいます。

また、1枚のマスクをロードするのに必要な平均遅延時間はどのくらいでしょうか?

 
Urain:

インジケーターが1時間に1回必要な場合、リソースを節約する最善の方法についてアドバイスします。

標準的なインジケータを何十個も置いて、それぞれのティックにぶら下げたり

一番いいのはおろさないこと(指標は本当に「1時間に1回」ほとんど必要ない)、ですが。

  1. 64ビットへの移行に伴い、メモリサイズを大きくする、または
  2. れきしをへらす
ローディングの正確な時間は、いくつかの要因に左右されるため、一概には言えません。インジケーターをアンロードすることで 問題を起こさない方がよいでしょう。インジケーターの作成と再計算の非同期処理により、問題が発生する可能性があります。
 
Urain:

インジケーターが1時間に1回必要な場合、リソースを節約する最善の方法についてアドバイスします。

標準的な指標を何十個も残して、ティックごとにぶら下がるようにしたり

使用後はIndicatorRelease(indicator_handle)でアンロードし、1時間後に再度ロードしてください。

しかし、2つ目のバリエーションでは、テスト時間が長くなってしまいます。

また、1枚のマスクをロードするのに必要な平均遅延時間はどのくらいでしょうか?

タイマーを他の用途に使用しない場合は、必要な間隔でデータを送信するようにしてください。
 

質問

私はオフセット設定を全く使っていないのですが、たまたまalligatorで説明を見て、考え始めました... :)

ワニの設定の一つを説明します。

ティースシフト

[価格チャートに対する赤線の移動量。ラインのシフトは純粋に表示のための視覚的なものであり、インジケーターバッファの 値はシフトなしで保存されることを覚えておく必要があります。CopyBuffer() 関数でバッファ値を取得する場合、オフセット値は影響しない。

MAの説明には記載されていませんが、誤りだと思いますし、すべて同様です。

ma_shift

[価格チャートに対するインジケータの相対的な移動量。

黄色いバーディーがいる画像では、価格はシフトすることなくMAを越えています。ここでは、例えば、前のバーの終値の価格がMAよりも高く、現在のバーの開口部の価格が開かれていることが明らかである。

しかし、緑の鳥がいるところで、どうして同じことがわかるのだろう。すなわち、価格がシフトしながらMAを視覚的にクロスしたとき

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5
 
こんにちは、私はEURUSDの Ask価格を取得するスクリプトを書きました。
#include <Trade\SymbolInfo.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  CSymbolInfo SymInfo;
  Alert(SymInfo.Ask());
  }
0を返します - バインドする必要があると思います。
CSymbolInfo SymInfo;
をチャートシンボルに指定したいのですが、クラスシンボルをどのように指定すればよいのかわかりません。
 
kirill190982:
こんにちは、私はスクリプトを書いた - EURUSDのアスク価格を取得すると、0を返す - 私は、バインドする必要があると思います。
をチャートシンボルに指定したいのですが、クラスシンボルをどのように指定すればよいのかわかりません。
まず、授業の 内容を確認しましょう。この問題を解決するには、このクラスのメソッドNameRefreshRates を使用する必要があります。
 
Interesting:
まず、授業の 内容を熟知することが大切です。シンボルにリンクする場合、まずクラスの "Name" メソッドを使用する必要があります。
//+------------------------------------------------------------------+
//|                                                   SymbolInfo.mqh |
//|                      Copyright © 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//|                                              Revision 2010.02.22 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Class CSymbolInfo.                                               |
//| Appointment: Class for access to symbol info.                    |
//+------------------------------------------------------------------+
class CSymbolInfo
  {
protected:
   string                      m_name;               // symbol name
   MqlTick                     m_tick;               // structure of tick;
.....
//--- ask parameters
   double            Ask() const                      { return(m_tick.ask); 
クラス内のAskはMqlTick構造で決定されると理解しています。
#include <Trade\SymbolInfo.mqh>
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
  string Megasymbol=Symbol();
  CSymbolInfo SymInfo;
  SymInfo.Name(Megasymbol);
  Alert(SymInfo.Ask());
  }
が、結果はゼロ。
 
kirill190982:
クラス内のAskはMqlTick構造 体で定義されていると理解していますが、両方の方法で試してみましたが、やはり0でした

次のことを行ってください。

SymInfo.Name("EURUSD");
SymInfo.RefreshRates();
Print(SymInfo.Ask());
 
Interesting:

こんな風に試してみてはいかがでしょうか?

ありがとうございました。