"ダミー "からの質問 - ページ 6

 
pusheax:

実際のアカウントでは、シンボル名に「.」や「FXF」など、さまざまなプレフィックスを付与しているDCもあります。

これらの接頭辞はどのように使えばよいのでしょうか?

そうしました。

#define DEF_SPEC "FXF"

string SymbolsTrade[] = {"AUDCAD "DEF_SPEC ...-動作しない

string SymbolsTrade[] = {"AUDCAD "+DEF_SPEC ...-そんなこともない

は、必要なAUDCADFXFの代わりにFXFが表示されるだけです。

どのように実装すればよいか教えてください。


まず、配列への列挙の記入はグローバルスコープでのみ可能なので、そこでは+は動作せず、文字列定数のみが動作します。

次に、静的配列は分散されないが、動的配列はenumで埋められないということですね。

最も簡単な方法は、動的配列を分配して埋める関数を書くことで、定数への定義の追加など、すべてを行うことができます。

 
Urain:

まず、配列への列挙はグローバルスコープでのみ可能なので、そこでは+は動作せず、文字列定数のみが動作します。

次に、静的配列が配布されていないこと、動的配列は列挙で埋めることができないことです。

最も簡単な方法は、動的配列を 分配して埋める関数を書くことで、定数による定義の追加など、すべてを行うことができます。

また、BC/BROKERに存在するすべての通貨ペアを検索し、その中の合成通貨を分析してみることもできます。

その後、任意の接頭辞を追加することを考慮して、通貨ペアの動的な配列を作成することができます。

私の記憶では、MT5のユニバーサルオプションの1つです。

 
Urain:

まず、配列への列挙はグローバルスコープでのみ可能なので、そこでは+は動作せず、文字列定数のみが動作します。

次に、静的配列が配布されていないこと、動的配列は列挙で埋めることができないことです。

最も簡単な方法は、動的配列を 分配して埋める関数を書くことで、定数への定義の追加など、すべてを行うことができます。

要するに、私の理解が正しければ、グローバルスコープで複合定数の静的な文字列配列を作成することはできない、ということですね?

 
uncleVic:

ソースコードで確認することができます。ダイバージェンスを求めるには、2つの方法があります。

1.bool CSignalMACD::ExtState(int ind) メソッドは、検索用のデータを準備します。

2.bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start) メソッドは、指定されたパラメータで市場モデルを検索します。

参考までに、ロシア語で書かれたメソッドのコメントをご紹介します。

bool CSignalMACD::ExtState(int ind)メソッドの場合。

メソッド bool CSignalMACD::CompareMaps(int map,int count,bool minimax,int start) の場合。

また、MACDシグナルを使用してExpert Advisorを作成 する際に、どのようにDivergence variantを指定するのでしょうか?参考文献には、この信号のいくつかのバリエーションが紹介されています。
 
strelec:
また、MACDシグナルを使用するExpert Advisorを作成 する際に、Divergence variantをどのように指定するのでしょうか。マニュアルには、いくつかの信号のバリエーションがあります。

すでに皆さんお気づきのように、どんなシグナルも 複数の相場パターンを検出することができます。パターンの 使用方法を制御するには、PatternsUsage(int value) メソッドを呼び出します。ビットが1 - モデルを使用、ビットが0 - モデルを使用しない(デフォルトではすべてのビットが1)。モデルだけでなく、ビットの番号も0から始まります。

したがって、ダイバージェンスだけを使いたい場合は、PatternsUsage(16);を使用する必要があります。なぜ16なのか?16は2進数10000b(つまりビット4が1、それ以外は0)です。そして、 モデル4「オシレーターと価格の乖離」 だけです。

ただ、「しかし」、「手動」で行う必要があります。

ウィザードが完了すると、ソースコードがエディタに表示されます。エディターでこんな場所を探してみよう。

//--- Creating filter CSignalMACD
   CSignalMACD *filter0=new CSignalMACD;
   if(filter0==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating filter0");
      ExtExpert.Deinit();
      return(-3);
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PeriodFast(Signal_MACD_PeriodFast);
   filter0.PeriodSlow(Signal_MACD_PeriodSlow);
   filter0.PeriodSignal(Signal_MACD_PeriodSignal);
   filter0.Applied(Signal_MACD_Applied);
   filter0.Weight(Signal_MACD_Weight);

を追加し、一行

filter0.PatternsUsage(16)。

を手に入れることができます。

//--- Creating filter CSignalMACD
   CSignalMACD *filter0=new CSignalMACD;
   if(filter0==NULL)
     {
      //--- failed
      printf(__FUNCTION__+": error creating filter0");
      ExtExpert.Deinit();
      return(-3);
     }
   signal.AddFilter(filter0);
//--- Set filter parameters
   filter0.PatternsUsage(16);
   filter0.PeriodFast(Signal_MACD_PeriodFast);
   filter0.PeriodSlow(Signal_MACD_PeriodSlow);
   filter0.PeriodSignal(Signal_MACD_PeriodSignal);
   filter0.Applied(Signal_MACD_Applied);
   filter0.Weight(Signal_MACD_Weight);

以上、今回はこの辺で。ご不明な点があれば、お気軽にお問い合わせください。

 
uncleVic:

すでに皆さんお気づきのように、どんなシグナルも 複数の相場パターンを検出することができます。パターンの 使用を制御するには、PatternsUsage(int value) メソッドを呼び出します。value はパターン使用のビットマップです(ビット番号とパターン番号は同じです)。ビットが1 - モデルを使用、ビットが0 - モデルを使用しない(デフォルトではすべてのビットが1)。モデル番号およびビットは0から始まります。

ですから、ダイバージェンスだけを使いたい場合は、PatternsUsage(16);を使用する必要があります。なぜ16なのか?16は2進数で10000b(つまりビット4が1、その他のビットが0)。そして、 モデル4「オシレーターと価格の乖離」 だけです。

ただ、「しかし」、「手動」で行う必要があります。

ウィザードが完了すると、ソースコードがエディタに表示されます。エディターでこんな場所を探してみよう。

を追加し、一行

filter0.PatternsUsage(16)。

ということです。

以上、今回はこの辺で。ご不明な点があれば、お気軽にお問い合わせください。

ありがとうございます。了解です。そして、さっそく質問が増えています。この発散のバリエーションでは、隣り合うピーク(谷)の間のどのような時間間隔が考慮されるのでしょうか?
 
strelec:
ありがとうございます。うまくいった。そして、さっそく質問が増えています。この発散のバリエーションでは、隣り合うトップ(トラフ)間のどのような時間間隔が考慮されるのでしょうか?
区間は解析していません。
 

私は、イベントに対応するために、専門家を持っています。

string event[10]=
{
"CHARTEVENT_KEYDOWN - событие нажатия клавиатуры, когда окно графика находится в фокусе",
"CHARTEVENT_OBJECT_CREATE — событие создания графического объекта",
"CHARTEVENT_OBJECT_CHANGE — событие изменения свойств объекта через диалог свойств",
"CHARTEVENT_OBJECT_DELETE — событие удаления графического объекта",
"CHARTEVENT_CLICK — cобытие щелчка мыши графике",
"CHARTEVENT_OBJECT_CLICK — событие щелчка мыши на графическом объекте, принадлежащего графику",
"CHARTEVENT_OBJECT_DRAG — событие перемещения графического объекта при помощи мыши",
"CHARTEVENT_OBJECT_ENDEDIT — событие окончания редактирования текста в поле ввода графического объекта LabelEdit",
"CHARTEVENT_CHART_CHANGE  — событие изменения графика",
"CHARTEVENT_CUSTOM+n — идентификатор пользовательского события, где n находится в диапазоне от 0 до 65535"
};
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   Print("id=(",id,") -- ",event[id],"  lparam=",lparam,"   dparam=",dparam,"   sparam=", sparam);
  }
//+------------------------------------------------------------------+

アクションに対応しないイベントが発生する。

チャート上のクリックとボタンのクリックを正確に一致させることができる

物議を醸すイベント id=9(CHARTEVENT_CUSTOM) は、例えば チャートが移動し、同様のイベントが10個程度発生したときに生成さ れるものです

CHARTEVENT_OBJECT_ENDEDIT イベントがチェックされていない。

残りはすべて不明です。説明文とイベント番号が一致しないか、手動でオブジェクトを作成したときにオブジェクト作成のイベントが正しく生成されない。

総じて、よろしくお願いします。

 
kPVT:

私は、イベントに対応するために、専門家を持っています。

アクションに対応しないイベントが発生する。

チャート上のクリックとボタンのクリックを正確に一致させることができる

物議を醸すイベント id=9(CHARTEVENT_CUSTOM) は、例えば チャートが移動し、同様のイベントが10個程度発生したときに生成さ れるものです

CHARTEVENT_OBJECT_ENDEDIT イベントがチェックされていない。

残りはすべて不明です。説明文とイベント番号が一致しないか、手動でオブジェクトを作成する際にオブジェクトの作成イベントが誤って生成されます。

すべてにおいて、助けてください。

すでに割り当てられている数値定数CHARTEVENT_XXXXXX...に数値対応を初期設定する。

問題はこれです。

event[id]

が必要です。

//--- нажатие мышкой на графическом объекте
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      Print("Нажатие кнопки мышки на объекте с именем '"+sparam+"'");
     }
//--- нажатие кнопки на клавиатуре
   if(id==CHARTEVENT_KEYDOWN)
     {
 
kPVT:

その他は不明です。説明文とイベント番号が一致しないか、手動でオブジェクトを作成したときに、オブジェクト作成などの イベントが正しく生成されない。

残念ながら、ご質問の内容は明確ではありません。具体的に何が問題なのか?