[ARCHIVE]フォーラムを乱立させないために、どんなルーキーの質問でも。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 5. - ページ 302

 
hoz:

うーん、ドキュメントによると、caseの 定数を変数として使うことはできないみたいですね。何らかの対象定数、文字定数、文字式と書いてある。

文字列型の文字、つまり1文字(1文字以上だとコンパイラは悪態をつく)または数字を設定した場合のみ動作します。

他にはありません。
いくつかのターゲット定数、文字式、文字定数が書かれています。

整数定数のみ。
 
私のアドバイスを助けて、買いポジションを開く ための信号があり、しばらくすると別の信号またはいくつかの買いポジションがあり、それぞれが1キャンドルに持続する方法新しい順序と1だけを開くために各信号の時に作る、と前の命令を閉じることなくパックされていません。
 
tommy27:
助言してください、買いポジションを開くための信号があり、いくつかの時間後に別の信号または購入するいくつかの信号があり、それぞれが1キャンドルに持続する方法それぞれのような信号と1つだけ中に開いて新しい順序を作るために、以前の注文を閉じることなくパックされていない?
最後のポジションが何バー前に開かれたかを確認します。指定された値以上であれば、新しいポジションを開くことができます。
 
artmedia70:
最後のポジションが何バー前に開かれたかを確認します。これより多い場合は、新しいポジションを開くことができます。


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

ライブラリとの連携も勉強中です。Expert Advisorを書いているのですが、こんな関数があるんです。

//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}

インクルージョンに入れたら、すべて元通りに動くようになった。しかし、ライブラリに接続すると、Expert Advisorのコンパイル時にエラーが発生します。

'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (127, 8)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (127, 19)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (129, 8)
'GetMA' - function is not defined       E:\Insall'd soft' s\Forex\MetaTraderForProgramming\experts\Scalper_M1.mq4 (129, 19)
4 ошибок, 0 предупреждений.

なぜ、この機能はライブラリに表示されないのですか?

ライブラリはこの内容で、コンパイルは完璧です。

//+-------------------------------------------------------------------------------------+
//|                                                                  Scalper_M1_lbr.mq4 |
//|                                                                                 hoz |
//|                                                                                     |
//+-------------------------------------------------------------------------------------+
#property copyright "hoz"
#property link      ""
#property library

int i_fastMATF,
    i_fastMAPeriod,
    i_fastMAShift,
    i_fastMAMethod,
    i_fastMAApplied,
    i_fastMAIndex,
    i_slowMATF,
    i_slowMAPeriod,
    i_slowMAShift,
    i_slowMAMethod,
    i_slowMAApplied,
    i_slowMAIndex,
    i_filtrMATF,
    i_filtrMAPeriod,
    i_filtrMAShift,
    i_filtrMAMethod,
    i_filtrMAApplied,
    i_filtrMAIndex;
//+-------------------------------------------------------------------------------------+
//| Получаем машку с заданными параметрами                                              |
//+-------------------------------------------------------------------------------------+
double GetMA(int typeOfMA)
{
   switch (typeOfMA)
   {
      case 1:      return (iMA(NULL, i_fastMATF, i_fastMAPeriod, i_fastMAShift, i_fastMAMethod, i_fastMAApplied, i_fastMAIndex));
      case 2:      return (iMA(NULL, i_slowMATF, i_slowMAPeriod, i_slowMAShift, i_slowMAMethod, i_slowMAApplied, i_slowMAIndex));
      case 3:      return (iMA(NULL, i_filtrMATF, i_filtrMAPeriod, i_filtrMAShift, i_filtrMAMethod, i_filtrMAApplied, i_filtrMAIndex));
   }
}
 
皆さん、こんにちは。プログラミングの講義が本当に必要だ。余計な手間をかけずにダウンロードできる場所を教えていただけませんか?http://sdb.su/programmirovanie/page,17,782-mozzhechkov-a-a-upravlenie-robotami-i-robototexnicheskimi-sistemami.html でも、複雑すぎて私には合いません。
 
popovagalina:
皆さん、こんにちは。プログラミングの講義が本当に必要だ。余計な手間をかけずにダウンロードできる場所を教えていただけませんか?http://sdb.su/programmirovanie/page,17,782-mozzhechkov-a-a-upravlenie-robotami-i-robototexnicheskimi-sistemami.html でも、複雑すぎて私には合いません。
S.コヴァリョフの教科書はなぜダメなのか?上記とドキュメンテーション、TAをご覧ください。がんばってください。
 

こんにちは。

演算子OrdersTotal() が実際に数えるのは、すべての未決済注文か、Expert Advisor に割り当てられたシンボルに属する注文か、教えていただけませんか?

一般的なものであれば、USDCHFなどの未決済注文がある場合、EURUSDだけを計算することは可能でしょうか?

ありがとうございます。

 
ed3sss:

こんにちは。

演算子 OrdersTotal() が実際に数えるのは、すべての未決済注文か、Expert Advisor に割り当てられたシンボルに属する注文か、教えていただけませんか?

一般的なものであれば、USDCHFなどの未決済注文がある場合、EURUSDだけを計算することは可能でしょうか?

ありがとうございます。


すべて計算されます。シンボルなどにこだわりたい場合は、この機能を利用するとよいでしょう。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 28.11.2006                                                     |
//|  Описание : Возвращает количество ордеров.                                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int NumberOfOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ko=0, ot;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot>1 && ot<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) ko++;
        }
      }
    }
  }
  return(ko);
}
 
フクロウのシグナルは2つのインジケータから出ますが、最初のシグナルは1バー続いて消え、2番目のシグナルは同じバーか数バー後に出ます。フクロウに1回目の信号を記憶させ、何小節後でも2回目の信号が出るのを待たせる方法。