MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1663

 
artem artem #:

MakarFX さん、ありがとうございます。これで、余計な非シグナル1順目はなくなりましたが、なぜかシグナル1順目(通常)が2ローソク早く入っています)))私は私のメッセージにテスターのスクリーンショットを添付しましたが、この最初の注文にもかかわらず - 最も重要なことが行われ、再び非常にありがとうございます)マジシャンがそれを得たと、私は外部変数を作り、私は特定の通貨ペアチャートに探検家を付けるだろうとき、私は個別に各ペアの番号を変更します。

オープニングを拝見します。

シンボルを制御していれば、マジックを変更する必要はない。

 
Nerd Trader #:

もう忘れた...と最初の頃はそうしていたのですが(ロックしたのは良いのですが)、条件方式が頼りなく思えたので、変更した順番をもっとわかりやすいもので表示して欲しかったです。

さて、前のティックでうまくいかなかった場合、新しいティックでは条件が変わってしまうので、新しいティックごとに条件を確認する必要があります。

そして、エラー処理を行うこと。

 
Nerd Trader #:

もう忘れていた...と、最初の頃はそうしていたのですが(コミットしたのはいいのですが)、条件の出し方が頼りなく思えたので、もっとわかり やすく順番が変わったことを示すものがほしかったです。

//+------------------------------------------------------------------+
if(OrderModify(OrderTicket(), OrderOpenPrice(), OrderStopLoss(), OrderTakeProfit(), 0))
   ObjectCreate(0,OrderTicket(),OBJ_ARROW_UP,0,Time[0],Bid);
//+------------------------------------------------------------------+
int NameObject()
  {
   int ticket=-1;
   for(int i=0;i<ObjectsTotal();i++)
     {
      ticket=StringToInteger(ObjectName(0,i,0));
     }
   return(ticket);
  }
//+----------------------------------------------------------------------------+
void GetTicketOrder()
  {
   int result=-1;
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
     {
      if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)) 
        {
         if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
           {
            if(OrderType() == OP_BUY || OrderType() == OP_SELL)
              {
               if(OrderTicket() == NameObject())
                  {
                     делай все что хочешь
                  }
              }
           }
        }
     }
  }
 
EVGENII SHELIPOV 入金 通貨のProfitに なった後、 オーダーグリッド全体がクローズ される。

Profitの 代わりにポイントが 付くようにコードを変更したいのですが、どうすればよいでしょうか?ありがとうございます。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает суммарный профит открытых позиций в пунктах         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int GetProfitOpenPosInPoint(string sy="", int op=-1, int mn=-1) {
  double p;
  int    i, k=OrdersTotal(), pr=0;

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy || sy=="") && (op<0 || OrderType()==op)) {
        if (mn<0 || OrderMagicNumber()==mn) {
          p=MarketInfo(OrderSymbol(), MODE_POINT);
          if (p==0) if (StringFind(OrderSymbol(), "JPY")<0) p=0.0001; else p=0.01;
          if (OrderType()==OP_BUY) {
            pr+=(MarketInfo(OrderSymbol(), MODE_BID)-OrderOpenPrice())/p;
          }
          if (OrderType()==OP_SELL) {
            pr+=(OrderOpenPrice()-MarketInfo(OrderSymbol(), MODE_ASK))/p;
          }
        }
      }
    }
  }
  return(pr);
}
 
artem artem #:

MakarFX さん、ありがとうございます。これで、余計な非シグナル1順目はなくなりましたが、なぜかシグナル1順目(通常)が2ローソク早く入っています)))テスターからのスクリーンショットをメッセージに添付しましたが、この最初の注文にもかかわらず - 最も重要なことが行われ、再びどうもありがとうございます)マジシャンがそれを得たので、私は外部変数を作り、私は特定の通貨ペアチャートにエスペルトを添付すると、私は個別に各ペアの番号を変更することになります。

テストされた期間と確認数は?
 
MakarFX #:

Makar さんの理解では、CalculiteProfit() 関数の代わりに試してみるべきでしょう。

 
EVGENII SHELIPOV #:

Makar さんの理解では、CalculiteProfit() 関数の代わりに試してみるべきでしょう。

で、これを変更する

int op = GetProfitOpenPosInPoint("", -1, Magic ); 
 
MakarFX #:
テストした期間と確認回数は?

MakarFXは、私が添付されたそのスクリーンショットで、EUR / USDでテスト - M 30 - すべてのティック - 01.08.21 03.09.21 - 26受注は(しかし、私は 4から8に定数を変更し、私はより多くのキャンドルで見ることにした)だった。

定数をローソク足4本に戻すと、同期間-35本の注文になりますが、最初の注文も2本早く入ってくるので

 
MakarFX #:

で、それを変更するのです。

マカー、最小オーダーと最大オーダーしかないのか、教えてください。

 
EVGENII SHELIPOV #:

マカー、最小オーダーと最大オーダーしかないのか、教えてください。

チケットや価格で「最小と最大」を意味するのでしょうか?