初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1124 1...111711181119112011211122112311241125112611271128112911301131...1503 新しいコメント Alexey Viktorov 2019.09.10 19:30 #11231 macleta: ありがとうございます!nddってなん ですか? ついていけなかった、全部入れ替えなかった。マクロなんです。 #define ndd(A) NormalizeDouble(A, _Digits) macleta 2019.09.10 20:20 #11232 Alexey Viktorov: 記録を取らず、すべてを交換しなかった。マクロなんです。 ありがとうございます(苦笑)。 astrologer Аполонов 2019.09.12 00:47 #11233 最後のオープンポジションを マジックナンバーで知る方法を教えてください。多分、最後のオープンポジションのロット値を返す関数があるのでしょうか?mql5で必要です。 Vladimir Karputov 2019.09.12 03:14 #11234 astrologer Аполонов: マジックナンバーで最後のオープンポジションを 見つける方法を教えてください。もしかしたら、最後のオープンポジションのロット値を返す関数があるかもしれません。mql5で必要です。 いくつかの方法がありますので、明確にしてください:取引口座のタイプはヘッジまたはネッティング、その場合は、ポジションについて知る必要があります:アドバイザーは、ポジションを開き、彼は最後のオープンポジションのパラメータを知る必要がありますか? Vladimir Karputov 2019.09.12 03:36 #11235 astrologer Аполонов: マジックナンバーで最後のオープンポジションを 知る方法を教えてください。多分、最後のオープンポジションのロット値を返す関数があるのでしょうか?mql5で必要です。 例1. //+------------------------------------------------------------------+ //| Trading engine 3.mq5 | //| Copyright © 2019, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" /* barabashkakvn Trading engine 3.042 */ #include <Trade\SymbolInfo.mqh> //--- CSymbolInfo m_symbol; // object of CSymbolInfo class //--- input parameters input ulong InpMagic = 200; // Magic number //--- //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- if(!m_symbol.Name(Symbol())) // sets symbol name { Print(__FILE__," ",__FUNCTION__,", ERROR: CSymbolInfo.Name"); return(INIT_FAILED); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- get transaction type as enumeration value ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- if transaction is result of addition of the transaction in history if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_ticket =0; long deal_order =0; long deal_time =0; long deal_time_msc =0; long deal_type =-1; long deal_entry =-1; long deal_magic =0; long deal_reason =-1; long deal_position_id =0; double deal_volume =0.0; double deal_price =0.0; double deal_commission =0.0; double deal_swap =0.0; double deal_profit =0.0; string deal_symbol =""; string deal_comment =""; string deal_external_id =""; if(HistoryDealSelect(trans.deal)) { deal_ticket =HistoryDealGetInteger(trans.deal,DEAL_TICKET); deal_order =HistoryDealGetInteger(trans.deal,DEAL_ORDER); deal_time =HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_time_msc =HistoryDealGetInteger(trans.deal,DEAL_TIME_MSC); deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE); deal_entry =HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC); deal_reason =HistoryDealGetInteger(trans.deal,DEAL_REASON); deal_position_id =HistoryDealGetInteger(trans.deal,DEAL_POSITION_ID); deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME); deal_price =HistoryDealGetDouble(trans.deal,DEAL_PRICE); deal_commission =HistoryDealGetDouble(trans.deal,DEAL_COMMISSION); deal_swap =HistoryDealGetDouble(trans.deal,DEAL_SWAP); deal_profit =HistoryDealGetDouble(trans.deal,DEAL_PROFIT); deal_symbol =HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_comment =HistoryDealGetString(trans.deal,DEAL_COMMENT); deal_external_id =HistoryDealGetString(trans.deal,DEAL_EXTERNAL_ID); } else return; ENUM_DEAL_ENTRY enum_deal_entry=(ENUM_DEAL_ENTRY)deal_entry; if(deal_symbol==m_symbol.Name() && deal_magic==InpMagic) { if(deal_type==DEAL_TYPE_BUY || deal_type==DEAL_TYPE_SELL) { if(deal_entry==DEAL_ENTRY_IN) { Print("Last DEAL IN volume: ",DoubleToString(deal_volume,2)); } } } } } //+------------------------------------------------------------------+ OnTradeTransaction では、次のようなタイプのトランザクションをキャッチします。 貿易取引取引追加 トランザクションを履歴に追加します。注文の執行や口座残高の取引の結果として行われます。 if(type==TRADE_TRANSACTION_DEAL_ADD) 私たちのシンボルであり、私たちのマジックであることを確認してください。 if(deal_symbol==m_symbol.Name() && deal_magic==InpMagic) BUYまたはSELLの案件を 探す。 if(deal_type==DEAL_TYPE_BUY || deal_type==DEAL_TYPE_SELL) を確認し、この取引は DEAL_ENTRY_IN。 市場参入 if(deal_entry==DEAL_ENTRY_IN) ファイル: Test.mq5 10 kb Vladimir Karputov 2019.09.12 03:48 #11236 astrologer Аполонов: マジックナンバーで最後に開いたポジションを 調べる方法を教えてください。もしかしたら、最後に開いたポジションのロット値を返す関数があるのでしょうか?mql5で必要です。 オプション2 - アイテムリストを回避する。 //+------------------------------------------------------------------+ //| Trading engine 3.mq5 | //| Copyright © 2019, Vladimir Karputov | //| http://wmua.ru/slesar/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2019, Vladimir Karputov" #property link "http://wmua.ru/slesar/" #property version "1.000" /* barabashkakvn Trading engine 3.042 */ #include <Trade\PositionInfo.mqh> #include <Trade\SymbolInfo.mqh> //--- CPositionInfo m_position; // object of CPositionInfo class CSymbolInfo m_symbol; // object of CSymbolInfo class //--- input parameters input ulong InpMagic = 200; // Magic number //--- //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- if(!m_symbol.Name(Symbol())) // sets symbol name { Print(__FILE__," ",__FUNCTION__,", ERROR: CSymbolInfo.Name"); return(INIT_FAILED); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- ulong last_time = 0; double last_volume = 0.0; for(int i=PositionsTotal()-1; i>=0; i--) 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()==InpMagic) { if(m_position.TimeMsc()>last_time) { last_time=m_position.TimeMsc(); last_volume=m_position.Volume(); } } if(last_volume>0.0) Print("Last POSITIONS volume: ",DoubleToString(last_volume,2)); } //+------------------------------------------------------------------+ //| TradeTransaction function | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- } //+------------------------------------------------------------------+ ポジションのリストに目を通す for(int i=PositionsTotal()-1; i>=0; i--) ミリ秒単位で最長ポジションのオープンタイムを探す TimeMsc ポジションをオープン した時間を1970年1月1日からのミリ秒単位で取得 します。 if(m_position.TimeMsc()>last_time) { last_time=m_position.TimeMsc(); last_volume=m_position.Volume(); } check - ボリュームが "0.0 "より大きい場合 - ポジションが検出されたことになります。 if(last_volume>0.0) Print("Last POSITIONS volume: ",DoubleToString(last_volume,2)); ファイル: Test.mq5 6 kb macleta 2019.09.13 00:54 #11237 Alexey Viktorov: ロスサイズについては、以下のような機能です。 SLをTPに置き換えるだけ どうやら利用可能な資金の割合として二重のリスクがあるようだ。1.5など、具体的な利益額をお金で設定するにはどうしたらいいですか?double RiskLots(double risk, int TP) { double RiskMony, Lot; double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE); double margin = SymbolInfoDouble(_Symbol, SYMBOL_MARGIN_INITIAL); double FreeMargin = AccountInfoDouble(ACCOUNT_MARGIN_FREE); long accountLeverage = AccountInfoInteger(ACCOUNT_LEVERAGE); RiskMony = floor(FreeMargin*risk/100); Lot = NormalizeDouble(RiskMony*_Point/NormalizeDouble(TP*_Point*tickValue, _Digits), 2); // return(Lot); } astrologer Аполонов 2019.09.13 06:01 #11238 Благодарю Vladimir Karputov: 例1. OnTradeTransaction では、次のようなタイプのトランザクションをキャッチします。 貿易取引取引追加 トランザクションを履歴に追加します。注文の執行や口座残高の取引の結果として行われます。 私たちのシンボルであり、私たちのマジックであることを確認してください。 は、それが買いか売りかを見て ください。 を確認し、この取引は DEAL_ENTRY_IN。 しじょうにゅうりょく Alexey Viktorov 2019.09.13 07:25 #11239 macleta: どうやら、利用可能な資金に占めるリスクの割合が2倍になっているようです。1.5など、具体的な利益額をお金で設定するにはどうしたらいいですか? さて、そのセリフはこうだ。 RiskMony = floor(FreeMargin*risk/100); 計算式の代わりに数字を入れるだけで、 ... BillionerClub 2019.09.13 13:40 #11240 どのように変換するには、マウスの位置が、中に、投げることなく? ChartTimeOnDropped 1...111711181119112011211122112311241125112611271128112911301131...1503 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ありがとうございます!nddってなん ですか?
ついていけなかった、全部入れ替えなかった。マクロなんです。
記録を取らず、すべてを交換しなかった。マクロなんです。
マジックナンバーで最後のオープンポジションを 見つける方法を教えてください。もしかしたら、最後のオープンポジションのロット値を返す関数があるかもしれません。mql5で必要です。
いくつかの方法がありますので、明確にしてください:取引口座のタイプはヘッジまたはネッティング、その場合は、ポジションについて知る必要があります:アドバイザーは、ポジションを開き、彼は最後のオープンポジションのパラメータを知る必要がありますか?
マジックナンバーで最後のオープンポジションを 知る方法を教えてください。多分、最後のオープンポジションのロット値を返す関数があるのでしょうか?mql5で必要です。
例1.
OnTradeTransaction では、次のようなタイプのトランザクションをキャッチします。
貿易取引取引追加
トランザクションを履歴に追加します。注文の執行や口座残高の取引の結果として行われます。
私たちのシンボルであり、私たちのマジックであることを確認してください。
if(deal_symbol==m_symbol.Name() && deal_magic==InpMagic)
BUYまたはSELLの案件を 探す。
を確認し、この取引は
DEAL_ENTRY_IN。
市場参入
マジックナンバーで最後に開いたポジションを 調べる方法を教えてください。もしかしたら、最後に開いたポジションのロット値を返す関数があるのでしょうか?mql5で必要です。
オプション2 - アイテムリストを回避する。
ポジションのリストに目を通す
ミリ秒単位で最長ポジションのオープンタイムを探す
TimeMsc
ポジションをオープン した時間を1970年1月1日からのミリ秒単位で取得 します。
if(m_position.TimeMsc()>last_time) { last_time=m_position.TimeMsc(); last_volume=m_position.Volume(); }
check - ボリュームが "0.0 "より大きい場合 - ポジションが検出されたことになります。
ロスサイズについては、以下のような機能です。
SLをTPに置き換えるだけ
例1.
OnTradeTransaction では、次のようなタイプのトランザクションをキャッチします。
貿易取引取引追加
トランザクションを履歴に追加します。注文の執行や口座残高の取引の結果として行われます。
私たちのシンボルであり、私たちのマジックであることを確認してください。
は、それが買いか売りかを見て ください。
を確認し、この取引は
DEAL_ENTRY_IN。
しじょうにゅうりょく
どうやら、利用可能な資金に占めるリスクの割合が2倍になっているようです。1.5など、具体的な利益額をお金で設定するにはどうしたらいいですか?
さて、そのセリフはこうだ。
計算式の代わりに数字を入れるだけで、 ...どのように変換するには、マウスの位置が、中に、投げることなく?
ChartTimeOnDropped