//+----------------------------------------------------------------------------+ //| Возвращает тикет ближайшей к рынку позиции по цене открытия или 0 | //| Параметры: | //| sym - наименование инструмента ("" - текущий символ) | //| op - операция (-1 - любая позиция) | //| mn - MagicNumber (-1 - любой магик) | //+----------------------------------------------------------------------------+ int TicketNearPosOnOpen(string sym="", int op=-1, int mn=-1) { double di=10000, pp; int i, k=OrdersTotal(), t=0;
if (sym=="") sym=Symbol(); for (i=0; i<k; i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol()==sym && (op<0 || OrderType()==op)) { if (OrderType()==OP_BUY || OrderType()==OP_SELL) { if (mn<0 || OrderMagicNumber()==mn) { if (OrderType()==OP_BUY) pp=MarketInfo(sym, MODE_BID); if (OrderType()==OP_SELL) pp=MarketInfo(sym, MODE_ASK); if (di>MathAbs(OrderOpenPrice()-pp)) { di=MathAbs(OrderOpenPrice()-pp); t=OrderTicket(); } } } } } } return(t); }
詳しく教えてください!コードは用意されているのでしょうか?どのような拡張子になっているのですか?
はい、出来ました!拡張子がわからないのですが、どうすればわかるのでしょうか!?
はい、準備OKです!延長はわかりません。
MQL4コードベース
はい、準備OKです!延長はわかりません。
この ページの2番目の投稿にあるすべてのリンク、特にセクションを参照してください。
" TERMINAL "
MetaTrader 4にEAをインストールする方法を教えてください。
...
あなたの考える「...」を定義してください。 買値と売値が 同時に 最も近いものを...」ということですが、同時というのはどういうことですか?
この最後の行の return(t); を次のように置き換えてください。
ノーヘル
は,買値と売値に最も近い注文を選ぶため,もしかしたら同時にかなり正しくないかもしれないが,この関数は,どちらが近いかによって,買いと売りのどちらかを選択する
こんにちは。
エキスパートアドバイザーは、数十種類の通貨ペアで取引できるように設定されています(1つのペアウィンドウで)。Market Watchウィンドウにいずれかのペアが表示されないと、不具合が発生します。これらの通貨ペアが取引可能かどうか、あるいはマーケットウォッチに表示されていないだけなのか、プログラムで確認するにはどうすればよいですか?
異なるエラーが発生します
は役に立たなかった。
というのは、買値と売値に最も近い注文を選択するためで、もしかしたら同時にかなり正しくないかもしれませんが、この機能は、どちらが近いかによって、買いと売りのどちらかを選択するものです
この関数が返すものに、最後にこんな行があります。
はうまくいかなかった。
に最も近い買い注文と売り注文を選択するために、多分同時にかなり正しくないが、この機能は、どちらが最も近いかによって、買いまたは売りを選択します。
このように試してみてください。
買値と売値に 最も近いポジションを同時に選択する方法は?
//+----------------------------------------------------------------------------+
//| Возвращает тикет ближайшей к рынку позиции по цене открытия или 0 |
//| Параметры: |
//| sym - наименование инструмента ("" - текущий символ) |
//| op - операция (-1 - любая позиция) |
//| mn - MagicNumber (-1 - любой магик) |
//+----------------------------------------------------------------------------+
int TicketNearPosOnOpen(string sym="", int op=-1, int mn=-1) {
double di=10000, pp;
int i, k=OrdersTotal(), t=0;
if (sym=="") sym=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sym && (op<0 || OrderType()==op)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (mn<0 || OrderMagicNumber()==mn) {
if (OrderType()==OP_BUY) pp=MarketInfo(sym, MODE_BID);
if (OrderType()==OP_SELL) pp=MarketInfo(sym, MODE_ASK);
if (di>MathAbs(OrderOpenPrice()-pp)) {
di=MathAbs(OrderOpenPrice()-pp);
t=OrderTicket();
}
}
}
}
}
}
return(t);
}
それとも、現在の価格に近い2つのポジション(BuyとSellの両方)を選択するのでしょうか?
必要なものを教えていただければ、お手伝いさせていただきます :)
買値と売値に最も近いポジションを同時に選択するにはどうしたらよいですか?
DistMarketAndPos - マーケットと最も近いポジションの間の距離をpips単位で返します。