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

 

こんにちは、助けてください。取引ロボット、EA、Expert Advisorが動作しない。可能な限りすべてダウンロードし、どのように機能するかを確認したかったのです。入金額が少ないと思ったが、デモ口座も同じだ。入金額が少ないと思ったが、デモ 口座でも同じ。

 
Lilia.solomko:

こんにちは、助けてください。取引ロボット、EA、Expert Advisorが動作しない。可能な限りすべてダウンロードし、どのように機能するかを確認したかったのです。入金額が少ないと思ったが、デモ口座も同じだ。入金額が少ないと思ったが、デモ 口座でも同じ。

ロボットが取引していないことをなぜ知っているのですか?ポジションを建てるために、取引戦略上必要な条件がすべて満たされていることを確認しましたか?それとも、ロボットを置いただけで、すぐに取引を開始しなかったのでしょうか?

 
Lilia.solomko:

こんにちは、助けてください。取引ロボット、EA、Expert Advisorが動作しない。可能な限りすべてダウンロードし、どのように機能するかを確認したかったのです。入金額が少ないと思ったが、デモ口座も同じだ。少額入金したつもりが、デモ 口座でも同じ。

2つのタブに何が書いてあるのかわからないのですが?


 
大きなロットから小さなロットへのクローズオーダー(文字列Symbol, int type, bool hand orders, int Magic)を作成するのを手伝ってください。
例:シンボル選択、タイプ、ハンドオーダーを考慮するかどうか、マジックナンバー。
 
Tigerfreerun:
大きなロットから小さなロットへのクローズオーダー(文字列 Symbol, int type, bool hand orders, int Magic)を作成するのを手伝ってください。
すなわち、シンボル選択、タイプ、ハンドオーダーが考慮されているかどうか、マジックナンバー。

はい、すぐにお使いいただけます。

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 11.12.2008                                                     |
//|  Описание : Закрытие позиций в порядке сортировки по размерам лотов.       |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента        (    ""       - любой символ,      |
//|                                             NULL      - текущий символ)    |
//|    op - операция                        (    -1       - любая позиция)     |
//|    mn - MagicNumber                     (    -1       - любой магик)       |
//|    sd - Направление сортировки лотов    (MODE_ASCEND  - возрастание,       |
//|                                          MODE_DESCEND - убывание)          |
//+----------------------------------------------------------------------------+
void ClosePosBySortLots(string sy="", int op=-1, int mn=-1, int sd=MODE_DESCEND) {
  double a[][2];                  // Массив лотов и тикетов
  int    i, k=OrdersTotal();      // Счётчик и количество ордеров
  int    p=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 (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (mn<0 || OrderMagicNumber()==mn) {
            p++;
            ArrayResize(a, p);
            a[p-1][0]=OrderLots();
            a[p-1][1]=OrderTicket();
          }
        }
      }
    }
  }

  // вдруг позиций нету, тогда и закрывать нечего
  if (p>0) {
    ArraySort(a, WHOLE_ARRAY, 0, sd);
    for (i=0; i<p; i++) {
      if (OrderSelect(a[i][1], SELECT_BY_TICKET)) {
        // проверим незакрытость на всякий случай,
        // может какая-то позиция уже закрылась по стопу/тейку
        if (OrderCloseTime()==0) ClosePosBySelect();
      }
    }
  }
}
 
Alekseu Fedotov:

はい、すぐにでも使えます。

使ってみたが、なぜかうまくいかない。
この関数のどこに閉じること自体があるのか、私が見る限りでは、別の関数への参照があるのでは?
 
Tigerfreerun:
使ってみたが、なぜかうまくいかない。
この関数の中で、閉じること自体はどこにあるのでしょうか?私が見る限りでは、別の関数への参照があります。

そう、そこにはステータスや結果のチェックなしに取引注文を 送るだけでなく、本格的なClosePosBySelect()関数があるのです。

サイト内を検索すると、kimさんのClosePosBySelect()関数へのリンクがあります。

 
Tigerfreerun:
使ってみたが、なぜかうまくいかない。
この関数のどこに閉じること自体があるのか、私が見る限りでは、別の関数への参照があるのでは?

この関数のヘッダーには、ウェブサイトのアドレスがあり、すべてのライブラリをダウンロードすることができます。

問題なく動作しています。

 

横棒を描いています。このインジケータは、座標に従って正しく線を引くのですが、ある時点で、新しいバーの 上に線が置かれ、異なる長さの多くのセグメントからなる任意の価格に、互いに重畳されます。宇宙人」の設定価格は、どのような条件にも当てはまらない。どこから来るのか、どうしたら防げるのか。

if(Line)
  {
   n_++;
   Setline(n_,Time[b_u_pbu],High[b_u_pbu],Time[b_u_pbu1],High[b_u_pbu],clrLime);
  }
//
void Setline(int sh,datetime tm,double pr,datetime tm1,double pr1,color clr)
  {
   ObjectCreate("-"+sh,OBJ_TREND,0,tm,pr,tm1,pr1,clr);
   ObjectSet("-"+sh,7,STYLE_SOLID);
   ObjectSet("-"+sh,10,false);
   ObjectSet("-"+sh,6,clr);
   ObjectSet("-"+sh,8,2);
  }
 
bij:

横棒を描いています。このインジケータは、座標に従って正しく線を引くのですが、ある時点で、新しいバーの 上に線が置かれ、異なる長さの多くのセグメントからなる任意の価格に、互いに重畳されます。宇宙人」の設定価格は、どの条件にも当てはまらない。どこから来るのか、どうしたら防げるのか。

セリフの名前が変わるので、セリフの数が多くなります。

そのような場合は、バーの開店時間を行名に含めるとよいでしょう。