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
}
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
}
double LastOpenPrice(intOrderType)
{
double OpenPrice;
datetime lastOpen; // First line addedfor ( 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
}
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 を使用できますか?
では、なぜチケット番号を返しているのですか?あなたがコピー&ペーストしているコードを読んで、それを理解し、学ぶ......
私はそれを使用して、次のことを行うには
if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)
{買いの 注文= OrderOpenPrice();}.
次に、もし( (( 買い注文 + 売り注文 )/2))<MarketInfo("EURUSD",MODE_BID) )
ポジションを閉じる
if(OrderSelect(LastOpenTicketForBuy(), SELECT_BY_POS)==true)
あなたの許可を得て少し変更
親愛なるqjolさん
本当にありがとうございます。でも、うまくいくかどうかまだわかりません(私の関数が少し難しいようです)。
最初の関数:
関数は、取得し、維持するために 買いのみの最終注文のオープンプライ ス
2- 最終注文の売り注文の 価格を取得し、保持する機能
3- 最終注文の 終値を 取得し、保持する機能( 買いまたは売りにかかわらず
4-取得し、最後の終値注文whatover購入または売却する前に、前の終値を 維持するための関数。
OK、これを試してみてください ... ...
1と2が実行されます ... ...
LastOpenPrice(OP_BUY)は最後の買いのオープンプライス です。
LastOpenPrice(OP_SELL)は直近の売りのオープンプライスです。
そして、この ... ... ... ... ... ...
には、3つの ... ...
ラプター
同じペア(同じマジック)に複数のオーダーがあると、何か足りないような気がするので、この方がいいと思います。
あなたの意見
ラプター
同じペア(と同じマジック)に複数のオーダーがある場合、何かが足りないと思いますので、この方法が良いと思います。
あなたの意見
の皆さん。
どうもありがとうございます。
なぜ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- 最終の終値注文の前の終値を 取得し、保持するための関数です。 // 私は最後のクローズドオーダーの前にクローズドオーダーを 取得したい場合は、買いまたは売り。
ありがとうございます