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

 
Europa:
実際には1つのポジションと1つの注文があるのに、なぜOrders_Total=1が表示されるのか、つまり理論的には1ではなく2が表示されるはずなのですが、教えていただけないでしょうか。

サイクルを最後から逆回しにしてみてください。

string Symb="EURUSD";
  for(i=OrdersTotal()+PositionsTotal()-1;i>=0;i--)
     {
      if(Symb==PositionGetSymbol(i)) Orders_Total++;
     }
     Alert(Orders_Total);
 
tol64:

サイクルを最後から逆回しにしてみてください。

役に立たなかった;(
 
Europa:
うまくいかなかった ;(

あ、ポジションチェックだけなんですね。

if(Symb==PositionGetSymbol(i)) Orders_Total++;
そこでポジションだけがカウントされる。
 
tol64:

あ、ポジションチェックだけなんですね。

そこで、ポジションだけがカウントされるのです。
SO!!!!本当にありがとうございました!!!
 
tol64:

リファレンスにはこう書かれている。

日付(年、月、日)、時間(時、分、秒)のいずれか、またはすべてを省略することができる。数値の範囲は 1970年1月1日から3000年12月31日までです。

D'2004.01.01 00:00' // 新年を迎えて
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12' //新年 D'1980.07.19 12:00:00' です。
D'01.01.2004' //同上 D'01.01.2004 00:00:00'
D'12:30:27' //D'[コンパイル日] 12:30:27' に相当する。
D' '//D''【コンパイル日】00:00:00'' に相当する。

...

それとも、私が誤解しているのでしょうか?

今後、このような疑問が生じないように、ヘルプを修正します。ありがとうございます。
 
Europa:
役に立たなかった;(

なぜ、フライとカツを足して、カツの数を決めているのですか?

オーダーは別カウント、ポジションも別カウント。PositionGetSymbol() は、シンボルによるポジションの存在のみを返し、注文については何も言いません。ポジションが1つしかないので、1が出ます。しかも、ループパラメータが許容値(PositionsTotal)を超えてしまうので、まだ運がいいのか何でも ありになってしまいますね。

追伸:もうお返事いただいていたのですね、遅ればせながら。

 
グラフィカルなオブジェクトに選択可能なプロパティを与える内部関数やプロパティが見つかりませんでした(デフォルトでは、オブジェクトはマウスで選択する可能性なしにプログラム的に描画されます)。明らかに、問題は、追加のライブラリや他のウィザードリーなしで、グラフィカルオブジェクトにこのようなプロパティを普通に与えることが可能かどうかということです。
 
x100intraday:
グラフィックオブジェクトに選択可能なプロパティを与える内部関数やプロパティは見つからず(デフォルトではマウスで選択しなくてもオブジェクトはプログラムで描画されます)、付属のグラフィックライブラリにのみ見つかりました。明らかに、問題は、追加のライブラリや他のウィザードリーなしで、グラフィカルオブジェクトにこのようなプロパティを普通に与えることが可能かどうかということです。

ObjectSetInteger

withprop_id=OBJPROP_SELECTABLE

 
Valmars:

ObjectSetInteger

withprop_id=OBJPROP_SELECTABLE

ありがとうございました。
 
bool ExtFunc (string str, int P, int i)
  {
   if (high[i] < high[i-1]) return(false);
   return(true);   
  }

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 i=0;
   if ExtFunc("s",60,i) == 1)
     Buffer[i] = high[i];
  }

OnCalculateでは、インデックスによるhighのような配列要素を簡単に使用 することができますね。この配列のインデックス要素にExtFuncでアクセスすることも可能でしょうか?関数を呼び出すとき、配列の引数を参照で渡すか、ポインタで渡すか、あるいは他の何かで渡すべきでしょうか?今のところ、OnCalculateからの 配列引数を持つ私の関数呼び出しの同じ行に関するエラーメッセージは、"'high' - パラメータ変換は許可されていません "と"'high' - 定数変数は参照として渡すことはできません "になんとか抑えています。絶望的なのか、解決策はあるのか。

これまでOnCalculateでは、highを別の配列にコピー することに頼っていました。

ArrayCopy(CopyOfHigh,high,0,0,WHOLE_ARRAY);
を作成し、ExtFunc で HighArray を直接使用する代わりに CopyOfHigh を使用します。