[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 648

 
やっぱりダメなんだ...。おぼつかない私に、もう少し詳しく教えてください。 えーと...コードの前に何を書けばいいのか?どんな変数?関数を呼び出すことができない...。この問題を解決する方法をいくつか書いたのか、それとも一つの方法なのか?私はこれが好きなんです...。
 
r772ra:

こんなこともできるんだ...。
NewBar はバーの最初のティックにのみ真を与えるので、そのようなバリアントは正しく動作しません。正しく動作させるためには、FunNewBar(); if(!NewBar) return; という行を、取引開始の条件と、開始が成功した後の条件の中に置く必要があります。
 
alsu:
NewBarはバーの最初のティックにのみtrueを与えるので、このバリアントは正しく動作しないでしょう。正しく動作させるためには、FunNewBar(); if(!NewBar) return; の行を取引開始条件の内側と、取引開始が成功した後に配置する必要があります。
もっとも、こちらもかなり正しいとは言えないでしょうけど。要するに、r772raの 変種は修正されなければなりません。 より良い解決策は、根本的に異なるアプローチ、例えば、履歴で最後に開いた注文の 時刻を見て、現在のバーの時刻と比較することです - それははるかに信頼性が高くなります。
 
alsu:
全く正しいとは言えないだろうが。要するに、r772raの 変種は修正されるべきで、例えば、履歴の最後の注文の開始時刻を見て、現在のバーの時刻と比較するなど、根本的に異なるアプローチを使用する方が良いでしょう - それははるかに信頼性が高くなります。

こんな感じです。

int BarOfLastOrder(int magic)
{
   int i,ot=OrdersTotal();
   
   for(i=ot-1; i>=0; i--);
   {
      OrderSelect(i,SELECT_BY_POS);
      if(OrderMagicNumber()==magic) return(iBarShift(0,0,OrderOpenTime()));
   }
   
   return(-1);
}

int start()
{

   ........

   int bar_of_last_order = BarOfLastOrder(magic); // указать магик, который использует советник

   switch(bar_of_last_order)
   {
      case 0:
         //последний ордер открыт на текущем баре
         ...
         break;
      case -1:
         //ордеров нет
         // здесь break не ставим, если ситуация "нет ордеров" и "последний ордер открыт не на текущем баре" нужно обрабатывать одинаково
         // в противном случае написать обработку и break;
      default:
         //последний ордер открыт не на текущем баре
         ...
         break;
   }

   .........

}
 
ありがとうございました。試してみるか...。
 
7sintez:
ありがとうございました。試してみるか...。
コードに手を加える
 
alsu:
コードに手を加える
アハッ!!!これから何とかしようと思っているのですが・・・。
 

やったーーーーーーーーーーーーやり遂げた

{
static datetime New_Time=0;
New_Bar=false とする。
if(New_Time!=Time[0])とする。
{
New_Time=Time[0]です。
New_Bar=true とする。
}
}

 
7sintez:
本当にありがとうございました!!!オープンからマイナス1本目のバーにシグナルを出せばうまくいくのでしょうか?

 
皆さん、本当にありがとうございました。まだ使っていないコードは、メモ帳にコピーしておきました時間があるときに調べてみます!何度も何度もフレンズありがとうございます。