orderopenpriceが開かれた後の最高値を取得するにはどうしたらよいですか? - ページ 3

 

では、なぜチケット番号を返しているのですか?あなたがコピー&ペーストしているコードを読んで、それを理解し、学ぶ......

私はそれを使用して、次のことを行うには

if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)
{買いの 注文= OrderOpenPrice();}.

次に、もし( (( 買い注文 + 売り注文 )/2))<MarketInfo("EURUSD",MODE_BID) )

ポジションを閉じる

 
Hand:


if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)


あなたの許可を得て少し変更

if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_TICKET)==true)
 

親愛なるqjolさん

本当にありがとうございます。でも、うまくいくかどうかまだわかりません(私の関数が少し難しいようです)。

最初の関数:

関数は、取得し、維持するために 買いのみの最終注文のオープンプライ

double LastOpenForBuy(){ datetime lastTime = 0 ; int lastTicket = - 1 ; // None open. 
int magi.number= 0 ; double orderforbuy;
for ( int pos = OrdersTotal ()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber () == magic.number // my magic number
&& OrderSymbol () == Symbol () // and my pair.
&& OrderType ()==OP_BUY )
{ orderforbuy = OrderOpenprice ();
lastTicket = OrderTicket (); }
return (orderforbuy);}

if(OrderSelect(LastOpenForBuy(), SELECT_BY_TICKET)==true)
{ order for buy= OrderOpenPrice();}

// then something like// // if ( (( order for buy+ order for sell)/2))<MarketInfo("EURUSD",MODE_BID) )

//close the position

     私が必要とするものです:1-関数を取得し、維持する。 買いのみの最後の注文のオープン価格 
2- 最終注文の売り注文の 価格を取得し、保持する機能
3- 最終注文の 終値を 取得し、保持する機能( 買いまたは売りにかかわらず
4-取得し、最後の終値注文whatover購入または売却する前に、前の終値を 維持するための関数
 

OK、これを試してみてください ... ...

1と2が実行されます ... ...

LastOpenPrice(OP_BUY)は最後の買いのオープンプライス です。

LastOpenPrice(OP_SELL)は直近の売りのオープンプライスです。

double LastOpenPrice(int  OrderType)
   { 
 
   double OpenPrice;                         

   for ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
      if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber() == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol() == Symbol()  // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType() == OrderType )
         {
         OpenPrice = OrderOpenprice();
         break;
         }
   return (OpenPrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}
 

そして、この ... ... ... ... ... ...

には、3つの ... ...

double LastClosePrice()
   { 
 
   double ClosePrice;                         

   for ( int pos = OrdersHistoryTotal()- 1 ; pos >= 0 ; pos--)
      if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY)            // Only my CLOSED  orders 
      && OrderMagicNumber() == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol() == Symbol()  // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType() < OP_BUYLIMIT )
         {
         ClosePrice = OrderCloseprice();
         break;
         }
   return (ClosePrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}
 
No.4の 意味がよくわからないのですが。
 

ラプター

同じペア(同じマジック)に複数のオーダーがあると、何か足りないような気がするので、この方がいいと思います。

double LastOpenPrice(int OrderType)
   { 
 
   double OpenPrice;                         
   datetime lastOpen; // First line added

   for ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
      if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
      && OrderMagicNumber() == magic.number // my magic number       //  <-------  what Magic Number do you use when you place a trade ?  it must match  ! !
      && OrderSymbol() == Symbol()  // and my pair.                  //            magic.number  should be a Globally defined variable that has your Magic Numer  
      && OrderType() == OrderType
      && OrderOpenTime() > lastOpen) // Second line added
         {
         OpenPrice = OrderOpenprice();
         break;
         }
   return (OpenPrice);                                             //  <-------  this returns the Order Open Price  NOT the ticket
}

あなたの意見

 
マジックナンバーとシンボルに一致する最初の注文が、当該EAとシンボルの最後の注文になりますね?
 
不明
 
qjol:

ラプター

同じペア(と同じマジック)に複数のオーダーがある場合、何かが足りないと思いますので、この方法が良いと思います。

あなたの意見


の皆さん。

どうもありがとうございます。

なぜLastOpenPrice(OP_BUY)とLastOpenPrice(OP_SELL)を使いたいかというと、以下のような条件で使いたいからです。

if ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0.0090 // そのためには、最後の注文が買いで開かれたことと、最後の注文が売りで開かれたことを保持する必要があります。

-----

for double LastClosePrice() // if (OrderType() == OP_BUY || OP_SELL) instead *** OrderType() < OP_BUYLIMIT*** to get the last close whatover buy or sell を使用できますか?

----

4番関数の場合。

4- 最終の終値注文の前の終値を 取得し、保持するための関数です // 私は最後のクローズドオーダーの前にクローズドオーダーを 取得したい場合は、買いまたは売り。

ありがとうございます