初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1005

 

保留のものを置くために、このようにリクエストを送ります。しかし、取引終了時に失効するわけではありません。ORDER_TIME_SPECIFIED_DAYを 試しましたが、こちらもうまくいきません。何が問題なのか?

MqlTradeRequest  request = {0};
         request.action = TRADE_ACTION_PENDING;
         request.symbol = _Symbol;
         request.volume = Lot;
         request.price  = high(Quant_Bars); 
         request.sl     = sl;
         request.tp     = tp;
         request.type   = ORDER_TYPE_BUY_STOP; 
         request.expiration = ORDER_TIME_DAY;
         request.magic = magicN;
MqlTradeResult result = {0};

if (OrderSend (request,result))
    {
    Print ("Ордер успешно отправлен, ошибок нет =  ", GetLastError());
    } else
       {
        Print ("Не удалось отправить запрос, ошибка = ", GetLastError());
       }
 

TrendLineVisible関数 -標準の CCurveクラスから- これは回帰線ですか?

この線を切り取らずに、完全にチャート上に表示させるにはどうしたらよいのでしょうか?


 

という のはの位置はSelect または SelectByIndex メソッド によってのみ選択されるべきです

SelectByTicketメソッドも動作するのでしょ うか?

 

ArrayPrint関数について教えてください -配列の 最初の100個と最後の100個の要素を取得したい。

               ArrayPrint(arr_P_val_X,8,NULL,Calc_XY-100,100,ARRAYPRINT_INDEX);//Ожидаю получить 100 последних элементов, выдает первые
               ArrayPrint(arr_P_val_X,ARRAYPRINT_LIMIT);//Хочу получить 100 и 100 последний - выдает весь массив - что не так?

Calc_XY - 配列の要素数.

 

オープンしたばかりのトレードのチケットを取得するにはどうすればよいですか?
CTradeクラスとBuy()関数を使用した場合。

mt4では、OrderSend()関数で すぐにチケットが発行されます。



ポジションインデックスでポジションのチケットを出す機能はありますか?

それとも、最初にポジションを選択(セレクト)する必要があるのでしょうか?

 
multiplicator:

オープンしたばかりのトレードのチケットを取得するにはどうすればよいですか?
CTradeクラスとBuy()関数を使用する場合。

mt4では、OrderSend()関数で すぐにチケットが発行されます。



ポジションインデックスでポジションのチケットを出す機能はありますか?

それとも、最初にポジションを選択(セレクト)する必要があるのでしょうか?

Trans.type == TRADE_TRANSACTION_DEAL_ADD の OnTradeTransaction で、trans.position 構造にチケットを見つけることができます。

struct MqlTradeTransaction 
  { 
   ulong                         deal;             // Тикет сделки 
   ulong                         order;            // Тикет ордера 
   string                        symbol;           // Имя торгового инструмента 
   ENUM_TRADE_TRANSACTION_TYPE   type;             // Тип торговой транзакции 
   ENUM_ORDER_TYPE               order_type;       // Тип ордера 
   ENUM_ORDER_STATE              order_state;      // Состояние ордера 
   ENUM_DEAL_TYPE                deal_type;        // Тип сделки 
   ENUM_ORDER_TYPE_TIME          time_type;        // Тип ордера по времени действия 
   datetime                      time_expiration;  // Срок истечения ордера 
   double                        price;            // Цена  
   double                        price_trigger;    // Цена срабатывания стоп-лимитного ордера 
   double                        price_sl;         // Уровень Stop Loss 
   double                        price_tp;         // Уровень Take Profit 
   double                        volume;           // Объем в лотах 
   ulong                         position;         // Тикет позиции 
   ulong                         position_by;      // Тикет встречной позиции 
  };
 
フォーラムメンバー、モデレーター、アドミンなど、親愛なる皆様こんにちは。
MQL5でオープンポジションの利益合計を計算する方法について教えてください。MQL4では問題ありません。ここで怠けているわけではなく、実装の仕方がわからないからです。PositionGetDouble(POSITION_PROFIT) を使用すると、最初のオープンポジションに対してのみ利益が計算さ れます。 

しかし、MQL4では OrderProfit()すべての注文で利益を 表示して います。もしかしたら、何か見落としているかもしれない......。
ヘッジ口座の種類を指定するのを忘れていた
 
Ramiz Mavludov:
すみません、口座種別がヘッジであることを書き忘れていました。

あなたは緊急に、そして必ず、非識字撲滅コースに参加すべきです。mql5では、mql4と同様に、ポジション(mql4では注文)を操作する前に、ポジションを選択する必要があります。mql4と違い、mql5では位置を選択するための 3つの関数を覚えています。ドキュメントには、それらについてきちんと説明があります。その方法は...失礼にあたらないように。

 
Ramiz Mavludov:
申し訳ありません、指定するのを忘れていました、アカウントタイプのヘッジ

前 キャンドル・ブレイクダウン3 コード、関数CalculatePosition、合計利益

//+------------------------------------------------------------------+
//| Calculate positions Buy and Sell                                 |
//+------------------------------------------------------------------+
void CalculatePositions(int &count_buys,int &count_sells,double &profit)
  {
   count_buys=0;
   count_sells=0;
   profit=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()==m_magic)
           {
            profit+=m_position.Commission()+m_position.Swap()+m_position.Profit();
            if(m_position.PositionType()==POSITION_TYPE_BUY)
               count_buys++;

            if(m_position.PositionType()==POSITION_TYPE_SELL)
               count_sells++;
           }
//---
   return;
  }

このシンボルとマジックのすべてのポジションのトラバースの後、利益 変数は総利益を表示します。

 
Vladimir Karputov:

前 キャンドル・ブレイクダウン3 コード、関数CalculatePosition、合計利益

このシンボルとMagicのすべてのポジションのトラバースの後、profit 変数は総利益を含むことになります。

ウラジミールさん、ありがとうございました。

理由: