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

 
tommy27:
ありがとうございます。Closeとアドバイス通り 、やってみましたが、
結果が更新されるのは新しいバーが表示されたときだけで、ティック毎の変化を確認・記録したい のです。

EAがループしていない場合、結果は毎ティック ごとに変化する
 

皆さん、ありがとうございます。

//+------------------------------------------------------------------+
//|                                                        Delta.mq4 |
//|                                                          tommy27 |
//|                                                  tommy27@mail.ru |
//+------------------------------------------------------------------+
#property copyright "tommy27"
#property link      "tommy27@mail.ru"

double 
       StartPrice1,
       Delta1,
       Price00;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   Price00 = 5000;
StartPrice1 =  iClose(0,0,0);
//StartPrice1 = Close[0];
Delta1 = MathAbs (Price00 - StartPrice1);
//if (Delta1>1000) Delta1=0;
Comment (Delta1);
Print ("Raznica= ",Delta1);
//----
   return(0);
  }
//+------------------------------------------------------------------+

しかし、メインのコードはバーの閉鎖時にしかカウントされないので、調べてみます。

 
PapaYozh:

EAがループしていない場合、結果は毎ティックごとに変化する
ありがとうございます。
 
OrderSelect() には 2 つのオプションがあります。
MODE_TRADES - 注文は、未決済注文と保留注文の中から選択されます。
MODE_HISTORY - 注文は、決済済み注文と削除済み注文の中から選択されます。

- MODE_TRADESはOrdersTotal()、MODE_HISTORYはOrdersHistoryTotal() 使用されるという理解で合っていますか?
- なぜ、そのようなものが必要なのでしょうか?
ありがとうございました。
 
chief2000:
OrderSelect() には 2 つのオプションがあります。 MODE_TRADES - 注文は、未決済注文と保留注文の中から選択されます。 MODE_HISTORY - 注文は、決済済み注文と削除済み注文の中から選択されます。- MODE_TRADESはOrdersTotal()



、MODE_HISTORYはOrdersHistoryTotal() 使用されるという理解で合っていますか?- なぜ、そのようなものが必要なのでしょうか?ありがとうございました。


正しく理解しているのですね。

2つ目の質問は明確ではありません。注文の位置で選択する場合、注文の 総数を知る必要があります

 
PapaYozh:


正しく理解しているのですね。

2つ目の質問は明確ではありません。注文の位置で選択する場合、注文の総数を知る必要があります

これらのパラメータ(MODE_TRADESとMODE_HISTORY)は両方ともSELECT_BY_POの場合にのみ使用されますが、これらを完全に削除することもできます(MT4のデフォルトを使用 -OrdersTotal() と OrdersHistoryTotal() にそれぞれ使用します)。
主義主張の問題ではなく、私にとってのメインは、最初の質問の答えでした。
ありがとうございました。
 

アルス、過去10分間に価格が20pips以上上昇した場合は買い、過去10分間に価格が20pips以上下降した場合は売り。

また、問題なければ、現在の価格が 前のバーの最大値よりいくらか高ければ買いを、現在の価格が前のバーの最小値よりいくらか低ければ売りを開始します。

P.S. 買いと売りを開くコードはすでにボードにあるので、記述する必要はないのですが......。それよりも、上記の開封条件の正しい書き方に興味があるのですが...。

 
oDin48:

アルス、過去10分間に価格が20pips以上上昇した場合は買い、過去10分間に価格が20pips以上下降した場合は売り。

レベルがクロスした瞬間に正確にオープンするのか、10分後にオープンするのか?)


そして、面倒でなければ、現在の価格が前のバーの高値より少し高ければ買いをオープン、現在の価格が前のバーの安値より少し低ければ売りをオープンします。

extern int level = 10; //в пунктах

....
int start()
{
...

   RefreshRates();

   if(Bid>High[1]+level*Point)
   {
      //BUY
   }

   if(Bid<Low[1]-level*Point)
   {
      //SELL
   }
...
}
 

アルス、まさにクロスするときに時間を確認し、時間帯に該当すればトレードを行う。

ありがとうございます。これから試してみます。

 
oDin48:

alsuさん、まさにクロスした時に時間を確認し、時間帯で落ちたらトレードをすることです。

このようなバリエーションでは、過去10分間のティック履歴を覚えて おく必要があります...コードは些細なことではありません。