mql5言語の特徴、微妙なニュアンスとテクニック - ページ 11 1...456789101112131415161718...247 新しいコメント Vitaly Muzichenko 2017.02.28 17:32 #101 Leo59 です。 ありがとうございました。 注文は取引 注文である」ため、保留中の注文のみが「有効な注文」として分類され、「ポジション-買いおよび売り」は取引のための注文ではありません。それとも、私が「何かを見逃している」のでしょうか?注文はロシア語でオーダーです。注文を出すと、8つの うちどれでもいい。1, 2, 3, 4 -buy-stop, sell-stop, buy-limit, sell-limit -注文がトリガーされた後、ポジションが表示さ れます。5, 6 - 買いまたは売り - これらは注文ではありません。7, 8 - stopLoss と TakeProfit - これらは、証券会社の注文で、市場から退出するためのものです。ケース1、2、3、4-保留中5, 6 - 市場獲得)、すなわち市場で一定の位置を占めることは、戦争と同じで、司令官によって送られた前線で、誰もが自分の位置を持っています。 about developing mt4 expert Indicator line Color Gaps [Archive!] I'll write an Vasiliy Pushkaryov 2017.02.28 17:50 #102 Leo59 です。 ありがとうございます。 注文は取引 注文である」ため、「有効な注文」として分類できるのは保留中の注文のみであり、「ポジション-売買」は取引注文ではありません。それとも、私が「何かを見逃している」のでしょうか? また、リンク先の第1項「取引条件」でも ご確認いただけます。 fxsaber 2017.02.28 17:51 #103 ヴィタリー・ムジチェンコ5, 6 - buy or sell - これらはもはや注文ではありません。以下のコードでは、これらが実際の注文であることを示しています。 トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム mql5言語の特徴、微妙なニュアンスとコツ fxsaber さん 2017.02.25 16:30 // Триггер срабатывания SL/TP - работает только на демо/реале (не в тестере).void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result ){ if ((Trans.type == TRADE_TRANSACTION_ORDER_ADD) && PositionSelectByTicket(Trans.position) && OrderSelect(Trans.order) && (PositionGetInteger(POSITION_TYPE) == 1 - OrderGetInteger(ORDER_TYPE))) { const double Price = OrderGetDouble(ORDER_PRICE_OPEN); if (Price == PositionGetDouble(POSITION_TP)) Print("Position #" + (string)Trans.position + " - triggered TP."); else if (Price == PositionGetDouble(POSITION_SL)) Print("Position #" + (string)Trans.position + " - triggered SL."); }} MetaEditor build 1490 エラー、バグ、質問 Features of the mql5 Leo59 2017.02.28 17:56 #104 fxsaber 有効注文とは、TP/SL注文とマージンコール注文を除く、約定または取消待ちの取引注文の ことです。有効な注文は、買いおよび売りの場合があります。 ありがとうございました。 私の理解では、「有効な注文」とは、買いおよび/または売りのポジションと、設定された(ブローカーが受け付けた)保留中の注文のことを指します。ロングと ショートの ポジションを持ち、買い 指値と 売り指 値を設定している場合、OrdersTotal()は値=4を返しますよね? Vladimir Karputov 2017.02.28 18:03 #105 Leo59 です。 ありがとうございました。 私の理解では、「有効な注文」とは、買いおよび/または売りのポジションと、設定された(ブローカーが受け付けた)保留中の注文を指します。ロングと ショートの ポジションを持ち、買い 指値と 売り指 値を設定している場合、OrdersTotal()は値=4を返しますよね? OrdersTotal() は 2 件 (買いの指値注文と 売りの逆指値注文) を返し、PositionTotal() も 2 件 (買いと売りのポジション) を返します。 Leo59 2017.02.28 18:06 #106 ウラジーミル・カルプトフ いいえ。OrdersTotal() は 2 件 (これらは買い指値注文と 売り指値注文) を返し、PositionTotal() も 2 件 (買いポジションと売りポジション) を返します。))今、これがカッコいい!!!!関数OrdersTotal()は何を返すのですか? Maxim Khrolenko 2017.02.28 18:16 #107 Leo59 です。))今のはカッコイイ!!!!関数OrdersTotal()は何を返すのですか? ポジションとは、すでに売買が成立しているもの、または保留中の注文を 指し、注文とは、価格が一定の水準に達した場合にポジションを建てるための保留中の注文を指します。 Vladimir Karputov 2017.02.28 18:19 #108 Leo59 です。))今のはカッコイイ!!!!OrdersTotal() 関数は何を返すのですか?もうヘルプを読んでください :)勉強してください。//+------------------------------------------------------------------+//| OrdersTotalPositionsTotal.mq5 |//| Copyright © 2017, Vladimir Karputov |//| http://wmua.ru/slesar/ |//+------------------------------------------------------------------+#property copyright "Copyright © 2017, Vladimir Karputov"#property link "http://wmua.ru/slesar/"#property version "1.00"//---#include <Trade\PositionInfo.mqh>#include <Trade\OrderInfo.mqh> CPositionInfo m_position; // trade position object COrderInfo m_order; // pending orders object//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+void OnStart() {//--- int total=0; for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of open positions if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties { //if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic) Print("position ",total,": ",m_position.Symbol()," ",EnumToString(m_position.PositionType()), " ",DoubleToString(m_position.Volume(),2)," ",DoubleToString(m_position.PriceOpen(),8)); total++; } total=0; for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current orders if(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties { //if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic) Print("pending order ",total,": ",m_order.Symbol()," ",EnumToString(m_order.OrderType()), " ",DoubleToString(m_order.VolumeInitial(),2)," ",DoubleToString(m_order.PriceOpen(),8)); total++; } }//+------------------------------------------------------------------+ここでは、「取引」タブの状況を説明します。ご覧の通り、2つのオープンポジション(EURUSD buy 0.03とUSDCAD buy 0.02)と3つのローカルオーダー(USDJPY buy limit, USDJPY sell limit and EURUSD buy limit)が存在します。とスクリプトをプリントアウトしたものです。2017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) position 0: USDCAD POSITION_TYPE_BUY 0.02 1.327970002017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) position 1: EURUSD POSITION_TYPE_BUY 0.03 1.060880002017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) pending order 0: EURUSD ORDER_TYPE_BUY_LIMIT 0.03 1.058790002017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) pending order 1: USDJPY ORDER_TYPE_SELL_LIMIT 0.01 112.711000002017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) pending order 2: USDJPY ORDER_TYPE_BUY_LIMIT 0.01 111.74500000 ファイル: OrdersTotalPositionsTotal.mq5 5 kb Features of the mql5 初心者の方からの質問 MQL5 MT5 MetaTrader Questions from Beginners MQL5 Leo59 2017.02.28 18:23 #109 マキシム・フローレンコ 次の用語を採用することができます:ポジションとは、すでに売買されたもの、または手動で、または保留中の注文が トリガーされたもので、注文とは、価格が指定されたレベルに達した場合にポジションを開くための保留中の注文のことです。 すべては昔から認められていることで、ドキュメントを書く前に、Sergei Kovalevのチュートリアル(MQL4に組み込まれています)を読むといいかもしれません。このように、成行注文と未決済注文を分析するブロックを構築することができます。 for (int i=1; i<=OrdersTotal(); i++) //Цикл по всем ордерам,.. { //отражённым в терминале if(OrderSelect(i-1,SELECT_BY_POS)==true)//Если есть следующий { // Здесь должен выполняться .. // ..анализ характеристик ордеров } } //Конец тела цикла ループ文のヘッダに初期値i=1を指定し、ループの終了条件はi<=OrdersTotal()という式になる。関数 OrdersTotal() は、Terminal の Trade タブに表示されている成行注文および 保留注文の合計金額を返します。したがって、ループの反復回数は、取引に存在する注文の数と同じになります。 初心者の方からの質問 MQL4 MT4 MetaTrader Features of the mql5 [警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 Vitaly Muzichenko 2017.02.28 18:25 #110 Leo59 です。 すべては昔から認められていることで、ドキュメントを書く前に、Sergei Kovalevのチュートリアル(MQL4に組み込まれている)を読んでもおそらく損はないでしょう。このように、成行注文と未決済注文を分析するブロックを構築することができます。 ループ文のヘッダに初期値i=1を指定し、ループの終了条件はi<=OrdersTotal()という式になる。関数 OrdersTotal() は、Terminal の Trade タブに表示されている成行注文および 保留注文の合計金額を返します。したがって、ループ内の反復回数は、取引に存在する注文の数となります。アニールする必要はありません)これはMT4のコードで、注文とポジションの区分はなく、すべてが混在しています。 1...456789101112131415161718...247 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ありがとうございました。
注文は取引 注文である」ため、保留中の注文のみが「有効な注文」として分類され、「ポジション-買いおよび売り」は取引のための注文ではありません。それとも、私が「何かを見逃している」のでしょうか?
注文はロシア語でオーダーです。注文を出すと、8つの うちどれでもいい。
1, 2, 3, 4 -buy-stop, sell-stop, buy-limit, sell-limit -注文がトリガーされた後、ポジションが表示さ れます。
5, 6 - 買いまたは売り - これらは注文ではありません。
7, 8 - stopLoss と TakeProfit - これらは、証券会社の注文で、市場から退出するためのものです。
ケース1、2、3、4-保留中
5, 6 - 市場獲得)、すなわち市場で一定の位置を占めることは、戦争と同じで、司令官によって送られた前線で、誰もが自分の位置を持っています。
ありがとうございます。
注文は取引 注文である」ため、「有効な注文」として分類できるのは保留中の注文のみであり、「ポジション-売買」は取引注文ではありません。それとも、私が「何かを見逃している」のでしょうか?
5, 6 - buy or sell - これらはもはや注文ではありません。
以下のコードでは、これらが実際の注文であることを示しています。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
mql5言語の特徴、微妙なニュアンスとコツ
fxsaber さん 2017.02.25 16:30
void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest &Request, const MqlTradeResult &Result )
{
if ((Trans.type == TRADE_TRANSACTION_ORDER_ADD) &&
PositionSelectByTicket(Trans.position) && OrderSelect(Trans.order) &&
(PositionGetInteger(POSITION_TYPE) == 1 - OrderGetInteger(ORDER_TYPE)))
{
const double Price = OrderGetDouble(ORDER_PRICE_OPEN);
if (Price == PositionGetDouble(POSITION_TP))
Print("Position #" + (string)Trans.position + " - triggered TP.");
else if (Price == PositionGetDouble(POSITION_SL))
Print("Position #" + (string)Trans.position + " - triggered SL.");
}
}
有効注文とは、TP/SL注文とマージンコール注文を除く、約定または取消待ちの取引注文の ことです。有効な注文は、買いおよび売りの場合があります。
私の理解では、「有効な注文」とは、買いおよび/または売りのポジションと、設定された(ブローカーが受け付けた)保留中の注文のことを指します。
ロングと ショートの ポジションを持ち、買い 指値と 売り指 値を設定している場合、OrdersTotal()は値=4を返しますよね?
ありがとうございました。
私の理解では、「有効な注文」とは、買いおよび/または売りのポジションと、設定された(ブローカーが受け付けた)保留中の注文を指します。
ロングと ショートの ポジションを持ち、買い 指値と 売り指 値を設定している場合、OrdersTotal()は値=4を返しますよね?
いいえ。OrdersTotal() は 2 件 (これらは買い指値注文と 売り指値注文) を返し、PositionTotal() も 2 件 (買いポジションと売りポジション) を返します。
))今のはカッコイイ!!!!関数OrdersTotal()は何を返すのですか?
))今のはカッコイイ!!!!OrdersTotal() 関数は何を返すのですか?
もうヘルプを読んでください :)
勉強してください。
//| OrdersTotalPositionsTotal.mq5 |
//| Copyright © 2017, Vladimir Karputov |
//| http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2017, Vladimir Karputov"
#property link "http://wmua.ru/slesar/"
#property version "1.00"
//---
#include <Trade\PositionInfo.mqh>
#include <Trade\OrderInfo.mqh>
CPositionInfo m_position; // trade position object
COrderInfo m_order; // pending orders object
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
//---
int total=0;
for(int i=PositionsTotal()-1;i>=0;i--) // returns the number of open positions
if(m_position.SelectByIndex(i)) // selects the position by index for further access to its properties
{
//if(m_position.Symbol()==m_symbol.Name() && m_position.Magic()==m_magic)
Print("position ",total,": ",m_position.Symbol()," ",EnumToString(m_position.PositionType()),
" ",DoubleToString(m_position.Volume(),2)," ",DoubleToString(m_position.PriceOpen(),8));
total++;
}
total=0;
for(int i=OrdersTotal()-1;i>=0;i--) // returns the number of current orders
if(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties
{
//if(m_order.Symbol()==m_symbol.Name() && m_order.Magic()==m_magic)
Print("pending order ",total,": ",m_order.Symbol()," ",EnumToString(m_order.OrderType()),
" ",DoubleToString(m_order.VolumeInitial(),2)," ",DoubleToString(m_order.PriceOpen(),8));
total++;
}
}
//+------------------------------------------------------------------+
ここでは、「取引」タブの状況を説明します。
ご覧の通り、2つのオープンポジション(EURUSD buy 0.03とUSDCAD buy 0.02)と3つのローカルオーダー(USDJPY buy limit, USDJPY sell limit and EURUSD buy limit)が存在します。
とスクリプトをプリントアウトしたものです。
2017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) position 1: EURUSD POSITION_TYPE_BUY 0.03 1.06088000
2017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) pending order 0: EURUSD ORDER_TYPE_BUY_LIMIT 0.03 1.05879000
2017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) pending order 1: USDJPY ORDER_TYPE_SELL_LIMIT 0.01 112.71100000
2017.02.28 20:14:43.804 OrdersTotalPositionsTotal (EURUSD,H1) pending order 2: USDJPY ORDER_TYPE_BUY_LIMIT 0.01 111.74500000
次の用語を採用することができます:ポジションとは、すでに売買されたもの、または手動で、または保留中の注文が トリガーされたもので、注文とは、価格が指定されたレベルに達した場合にポジションを開くための保留中の注文のことです。
このように、成行注文と未決済注文を分析するブロックを構築することができます。
{ //отражённым в терминале
if(OrderSelect(i-1,SELECT_BY_POS)==true)//Если есть следующий
{
// Здесь должен выполняться ..
// ..анализ характеристик ордеров
}
} //Конец тела цикла
ループ文のヘッダに初期値i=1を指定し、ループの終了条件はi<=OrdersTotal()という式になる。関数 OrdersTotal() は、Terminal の Trade タブに表示されている成行注文および 保留注文の合計金額を返します。したがって、ループの反復回数は、取引に存在する注文の数と同じになります。
すべては昔から認められていることで、ドキュメントを書く前に、Sergei Kovalevのチュートリアル(MQL4に組み込まれている)を読んでもおそらく損はないでしょう。
このように、成行注文と未決済注文を分析するブロックを構築することができます。
ループ文のヘッダに初期値i=1を指定し、ループの終了条件はi<=OrdersTotal()という式になる。関数 OrdersTotal() は、Terminal の Trade タブに表示されている成行注文および 保留注文の合計金額を返します。したがって、ループ内の反復回数は、取引に存在する注文の数となります。
アニールする必要はありません)
これはMT4のコードで、注文とポジションの区分はなく、すべてが混在しています。