KimIVの便利な機能 - ページ 54

 

TakeProfitLastPos()関数です。

この関数は、最後のオープンポジションのTakeProfit 価格レベルまたは-1を 返します。TakeProfitLastPos() 関数には、次のオプション・パラメータがあります。

  • sy- 楽器の名前です。""- 任意のシンボル、NULL- 現在のシンボル。初期値は"" である。
  • op- 貿易業務。有効な値:-1OP_BUYOP_SELL。デフォルト値は、-1- 任意の取引です。
  • mn- 取引識別子、MagicNumber。デフォルト値-1- 任意のマジックを使用します。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 06.08.2008                                                     |
//|  Описание : Возвращает цену TakeProfit последней открытой позиций или -1.  |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
double TakeProfitLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   r=-1;
  int      i, k=OrdersTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()== sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if ( op<0 || OrderType()== op) {
            if ( mn<0 || OrderMagicNumber()== mn) {
              if ( t<OrderOpenTime()) {
                t=OrderOpenTime();
                r=OrderTakeProfit();
              }
            }
          }
        }
      }
    }
  }
  return( r);
}
この機能は、例えば、最後のオープンポジションのTakeProfitの価格水準を決定し、その水準で保留注文を発注するために使用することができます。
 
適切な時期に適切なロットをオープンするのはどうでしょうか?
 
MQL4で、保留中の注文の ロットサイズを変更する方法があれば教えてください。
 
sdgg >> :
MQL4で保留中の注文のロットサイズを変更する方法があるかどうかご存知ですか?

古いオーダーを削除して、必要なボリュームのオーダーを新規に作成する必要があります。

 
sdgg писал (а)>>
MQL4で保留中の注文のロットを変更する方法があるかどうか教えてください。

開発者は、問題を避けるために、わざとそうしたのではない。

 

2つの通貨ペアで取引するEAで、各通貨ペアの開始と終了ポジションを各チャートにマークするグラフィカルオブジェクトを作成 する方法を教えてください。 単一のチャート上にロードされたEAは、自動的にそのチャートにのみこれらのマークを作成します。 もしかしたら、多通貨EAで使うことを想定した機能があるのでは?

 
RGT >> :

2つの通貨ペアで取引するEAで、各通貨ペアの開始と終了ポジションを各チャートにマークするグラフィカルオブジェクトを作成 する方法を教えてください。 単一のチャート上にロードされたEAは、自動的にそのチャートにのみこれらのマークを作成します。 もしかしたら、多通貨EAで使うことを想定した機能があるのでは?

そのような機能はありません。オブジェクトはEAがアタッチされているチャート上でのみ作成・管理することができます。

 

TakeProfitLastClosePos()関数を使用します。

TakeProfit(利食い): 最後に決済したポジションの利食い 価格、または-1を 返します。TakeProfitLastClosePos() 関数には、次のオプション・パラメータがあります。

  • sy- 楽器の名前です。""- 任意のシンボル、NULL- 現在のシンボル。初期値は"" である。
  • op-貿易業務。有効な値:-1OP_BUYOP_SELL。デフォルト値は、-1- 任意の取引です。
  • mn- 取引識別子、MagicNumber。デフォルト値-1- 任意のマジックを使用します。
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 20.10.2008                                                     |
//|  Описание : Возвращает цену TakeProfit последней закрытой позиций или -1.  |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
double TakeProfitLastClosePos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   r=-1;
  int      i, k=OrdersHistoryTotal();

  if ( sy=="0") sy=Symbol();
  for ( i=0; i< k; i++) {
    if (OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()== sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if ( op<0 || OrderType()== op) {
            if ( mn<0 || OrderMagicNumber()== mn) {
              if ( t<OrderCloseTime()) {
                t=OrderCloseTime();
                r=OrderTakeProfit();
              }
            }
          }
        }
      }
    }
  }
  return( r);
}
 
KimIV >> :

TakeProfitLastClosePos()関数を使用します。

TakeProfit(利食い): 最後に決済したポジションの利食い価格、または-1を返します。TakeProfitLastClosePos()関数には、次のオプション・パラメータがあります。

  • sy - 楽器の名前です。"" - 任意のシンボル、NULL - 現在のシンボル。初期値は""である。
  • op - 貿易業務。有効な値:-1、OP_BUY、OP_SELL。デフォルト値は、-1 - 任意の取引です。
  • mn - 取引識別子、MagicNumber。デフォルト値 -1 - 任意のマジックナンバー。

ポジションを建ててから時間が経過すると、テイクプロフィットを変更するような機能はありますか?

 
drm1 писал(а)>>

ポジションを持った後、しばらくしてからテイクプロフィットを変更するような機能はありますか?

ModifyOrder()

そこで、以下にその使用例を紹介する...。