[アーカイブ!】どんなルーキーの質問でも、フォーラムを散らかさないように。プロフェッショナルの皆さん、通り過ぎないでください。あなたなしではどこにも行けない - 2. - ページ 248

 
Bicus:

それは何ですか?歴史のすべての秩序を貫いているんですね。ループの本体は、日付などでどうにか制限できることは明らかです。

私が質問したのは、テスターの履歴に直近の数件のクローズした注文だけを保存する、つまり実際の履歴で行われているような仕掛けはないだろうかということです。

実際の歴史でも、同じような仕組みになっています。アカウント履歴の全オーダーが検索されます。

履歴が修正されない。このアカウントでは、新しいイベントでのみ更新することができます。

 
artmedia70:

もうつまらないような...。初歩的なことだよ、ワトソン。

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int start()
{
if (ObjectFind("MyPriceLine")<0) ObjectCreate("MyPriceLine", OBJ_HLINE, 0, 0, Ask+20*Point) ;
ObjectSet("MyPriceLine", OBJPROP_PRICE1, Ask+20*Point);
return(0);
}

//+------------------------------------------------------------------+
待ちに待ったお返事ありがとうございます私の問題を解決するのに役立つのか、理解できないのですが?Askの上と下、同じEAから同時に線を描か せるにはどうしたらいいですか?
 
globad:
待ちに待ったお返事ありがとうございましたこれが私の問題解決につながるとは思えないのですが?Askの上と下、同じEAから同時に線を描かせるにはどうしたらいいですか?
線に違う 名前をつける。
 
Vovo4ka:

みんなは、条件は次のとおりです。3強気のキャンドルは、その後 "買収 "があります...私は買うために同様に販売する位置を開いた...ここでエラーがあるコードです?

どこが間違いなのか?
 
sergeev:
どうしたんですか?

履歴を見ると開くはずなのに、ポジションが 開かない......黙ったままエラーも出ない
 
トレードオープンを、例えば1時間に1回以下にするにはどうしたらいいのでしょうか?
 
artmedia70:
線に違う 名前をつける。

なんとなく......?

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int start()
{
if (ObjectFind("MyPriceLine1")<0) ObjectCreate("MyPriceLine1", OBJ_HLINE, 0, 0, Ask+20*Point) ;
ObjectSet("MyPriceLine1", OBJPROP_PRICE1, Ask+20*Point);
if (ObjectFind("MyPriceLine2")>0) ObjectCreate("MyPriceLine2", OBJ_HLINE, 0, 0, Ask-20*Point) ;
ObjectSet("MyPriceLine2", OBJPROP_PRICE1, Ask-20*Point);
return(0);
}
//+------------------------------------------------------------------+
 
Vovo4ka:
どうやったら1時間に1回しか取引できないようにできる?

例えば、こんな風に。

//+----------------------------------------------------------------------------+
datetime SecondsAfterOpenLastPos(string sy, int op, int mn) 
{
   datetime t;
   int      i, k=OrdersTotal();

   if (sy=="0") sy=Symbol();
   for (i=0; i<k; i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if (OrderSymbol()!=sy)        continue;
         if (OrderType()!=op)          continue; 
         if (OrderMagicNumber()!=mn)   continue; 
         if (t<OrderOpenTime()) t=OrderOpenTime();
         }
      }
  return(TimeCurrent()-t);
}
//+----------------------------------------------------------------------------+

このように呼びかけます。

if (SecondsAfterOpenLastPos(NULL, OP_SELL, Magic)>=(Period()*3)*60) {
   // --- код, если прошло три минуты и более с момента открытия ... 
   // ... последней позиции Sell  с магиком Magic  на текущем символе ---
   }
分単位を時間単位に変えてほしい・・・。:)
 
globad:

なんとなく......?

聞かずにテスターで確認...。:)
 
globad:

なんとなく......?

if (ObjectFind("MyPriceLine1")<0) ObjectCreate("MyPriceLine1", OBJ_HLINE, 0,0, Ask+20*Point);
                                     ObjectSet("MyPriceLine1", OBJPROP_PRICE1, Ask+20*Point);
if (ObjectFind("MyPriceLine2")>0) ObjectCreate("MyPriceLine2", OBJ_HLINE, 0,0, Ask-20*Point);
                                     ObjectSet("MyPriceLine2", OBJPROP_PRICE1, Ask-20*Point); 
ObjectFindは 、行がまだ作成されていない場合は-1を返すので、2番目のifにObjectFind("MyPriceLine2")<0も 記述する必要があります