[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 634

 
artmedia70:

もうひとつ...

テスト時に、テンプレート(テンプレートはEAの名前がついていて、テスト時に自動で読み込まれる)から自動的に読み込まれる耽溺をチャートウィンドウからすべて削除しました。

テスターの日記には、カスタムインダルジェンスのロードに成功したことが常に書かれており、その直後に削除された記録が残っている。そして、それがテストの間ずっと続く...。

それは普通なのか、それとも悪いことなのか?

どうすれば直るのでしょうか?


お返事が遅くなりましたが、私自身もそのような状況に直面したことがあります。よくないですね :)

iCustom()でカスタムインジケータを 呼び出す際に、誤ってパラメータを渡し忘れてしまったのですが、このようなレコードが雑誌に載っています。コンパイラは、インジケータ名が正しいのでテスト中もこれらのエラーを追跡せず、MTはすべて正常にロードされたと書きますが、パラメータの数はチェックされず、パラメータの指定が間違っているため、インジケータにエラーが発生し、すぐにアンロードされます。テストの実行が遅く、ログも同じであることに気づきました。

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15: ロードに成功 しました。

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15: 削除 しました。

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15: ロードに成功 しました。

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15: 削除 しました。

調べてみると、私の不注意でこのような問題が発生しました。"オンザフライ "でインジケーターを付け外ししてみましたが、この時のログには「アニメーション」は見当たりませんでした。問題はiCustom()にあったので、念のためチェックしてみてください :)

 

ToLik_SRGV:

すべての問題はiCustom()にあったので、念のためチェックしてみてください :)

その通りです。それは、引数の数が間違っているためです。
 

保留中の注文の 有効期限を設定する方法についてアドバイスしてください。

なぜか私には使いたくないようで、ハンドブックにもあまり情報がありません。

例を挙げていただければ。

よろしくお願いします。

 
ToLik_SRGV:

遅ればせながら、おそらくですが、私自身もこのようなことに遭遇しました。これはまずいな :)

iCustom()でカスタムインジケータを呼び出す際に、誤ってパラメータを渡し忘れてしまったのですが、ジャーナルにそのようなレコードがあります。コンパイラは、インジケータ名が正しいのでテスト中もこれらのエラーを追跡せず、MTはすべて正常にロードされたと書きますが、パラメータの数はチェックされず、パラメータの指定が間違っているため、インジケータにエラーが発生し、すぐにアンロードされます。テストの実行が遅く、ログも同じであることに気づきました。

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15: ロードに成功し ました。

01:11:13 2000.01.03 02:00 EMMA_Update_2 EURUSD,M15: 削除し ました。

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15: ロードに成功し ました。

01:11:13 2000.01.03 02:01 EMMA_Update_2 EURUSD,M15: 削除し ました。

調べてみると、私の不注意でこのような問題が発生しました。"オンザフライ "でインジケーターを付け外ししてみましたが、この時のログには「アニメーション」は見当たりませんでした。問題はiCustom()にあったので、念のためチェックしてみてください :)

いや、遅くはない...。ちょうどいい、ありがとうございました。
 
kwadrad:

保留中の注文の有効期限を設定する方法についてアドバイスしてください。

なぜか私には使いたくないようで、ハンドブックにもあまり情報がありません。

例を挙げていただければ。

よろしくお願いします。

これです。それが私の仕事です...。

   double   tp,PriceOpn,PriceTake;
   string   sy=Symbol();
   double pa=MarketInfo(sy, MODE_ASK);
   double pb=MarketInfo(sy, MODE_BID);
   double po=MarketInfo(sy, MODE_POINT);

   Magic=511;
   Lots_New=NormalizeLot(Lots/2, False, NULL);
         
   PriceOpn  = NormalizePrice(pa+DistORD*po, NULL);
   PriceTake = NormalizePrice(pa+(DistORD+tp)*po, NULL);
 //------------------------------------------------------------------
   SetOrder(NULL, OP_BUYSTOP, Lots_New, PriceOpn, 0, PriceTake, Magic, TimeCurrent()+12*60); // 12 часов срок его жизни...
 //------------------------------------------------------------------
//==============================================================================================

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 02.08.2008                                                     |
//|  Описание : Установка ордера.                                              |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (NULL или "" - текущий символ)          |
//|    op - операция                                                           |
//|    ll - лот                                                                |
//|    pp - цена                                                               |
//|    sl - уровень стоп                                                       |
//|    tp - уровень тейк                                                       |
//|    mn - Magic Number                                                       |
//|    co - комментарий                                                        |
//|    ex - Срок истечения                                                     |
//+----------------------------------------------------------------------------+
void SetOrder(string sy, int op, double ll, double pp,
              double sl=0, double tp=0, int mn=0, string co="", datetime ex=0) {
  color    cl=IIFc(op==OP_BUYLIMIT || op==OP_BUYSTOP, clOpenBuy, clOpenSell);
  datetime ot;
  double   pa, pb, mp;
  int      err, it, ticket, msl;

  if (sy=="" || sy=="0") sy=Symbol();
  msl=MarketInfo(sy, MODE_STOPLEVEL);
  if (co=="") co=WindowExpertName()+" "+GetNameTF(Period());
  if (ex>0 && ex<TimeCurrent()) ex=0;
  for (it=1; it<=NumberOfTry; it++) {
    if (!IsTesting() && (!IsExpertEnabled() || IsStopped())) {
      Print("SetOrder(): Остановка работы функции");
      break;
    }
    while (!IsTradeAllowed()) Sleep(5000);
    RefreshRates();
    ot=TimeCurrent();
    ticket=OrderSend(sy, op, ll, pp, Slippage, sl, tp, co, mn, ex, cl);
    if (ticket>0) {
      if (UseSound) PlaySound(SoundSuccess); break;
    } else {
      err=GetLastError();
      if (err==128 || err==142 || err==143) {
        Sleep(1000*66);
        if (ExistOrders(sy, op, mn, ot)) {
          if (UseSound) PlaySound(SoundSuccess); break;
        }
        Print("Error(",err,") set order: ",ErrorDescription(err),", try ",it);
        continue;
      }
      if (UseSound) PlaySound(SoundError);
      mp=MarketInfo(sy, MODE_POINT);
      pa=MarketInfo(sy, MODE_ASK);
      pb=MarketInfo(sy, MODE_BID);
      if (pa==0 && pb==0) Message("SetOrder(): Проверьте в обзоре рынка наличие символа "+sy);
      Print("Error(",err,") set order: ",ErrorDescription(err),", try ",it);
      Print("Ask=",pa,"  Bid=",pb,"  sy=",sy,"  ll=",ll,"  op=",GetNameOP(op),
            "  pp=",pp,"  sl=",sl,"  tp=",tp,"  mn=",mn);
      // Неправильные стопы
      if (err==130) {
        // Корректировка ценовых уровней
        if (modeSetOrders==1) {
          Sleep(1000*5.3);
          switch (op) {
            case OP_BUYLIMIT:
              if (pp>pa-msl*mp) pp=pa-msl*mp;
              if (sl>pp-(msl+1)*mp) sl=pp-(msl+1)*mp;
              if (tp>0 && tp<pp+(msl+1)*mp) tp=pp+(msl+1)*mp;
              break;
            case OP_BUYSTOP:
              if (pp<pa+(msl+1)*mp) pp=pa+(msl+1)*mp;
              if (sl>pp-(msl+1)*mp) sl=pp-(msl+1)*mp;
              if (tp>0 && tp<pp+(msl+1)*mp) tp=pp+(msl+1)*mp;
              break;
            case OP_SELLLIMIT:
              if (pp<pb+msl*mp) pp=pb+msl*mp;
              if (sl>0 && sl<pp+(msl+1)*mp) sl=pp+(msl+1)*mp;
              if (tp>pp-(msl+1)*mp) tp=pp-(msl+1)*mp;
              break;
            case OP_SELLSTOP:
              if (pp>pb-msl*mp) pp=pb-msl*mp;
              if (sl>0 && sl<pp+(msl+1)*mp) sl=pp+(msl+1)*mp;
              if (tp>pp-(msl+1)*mp) tp=pp-(msl+1)*mp;
              break;
          }
          Print("SetOrder(): Скорректированы ценовые уровни");
          continue;
        }
        // Вход по текущим ценам
        if (modeSetOrders==2) {
          Print("SetOrder(): Вход по текущим ценам");
          if (op==OP_BUYLIMIT || op==OP_BUYSTOP) OpenPosition(sy, OP_BUY, ll, sl, tp, mn, co);
          if (op==OP_SELLLIMIT || op==OP_SELLSTOP) OpenPosition(sy, OP_SELL, ll, sl, tp, mn, co);
          break;
        }
      }
      // Блокировка работы советника
      if (err==2 || err==64 || err==65 || err==133) {
        gbDisabled=True; break;
      }
      // Длительная пауза
      if (err==4 || err==131 || err==132) {
        Sleep(1000*300); break;
      }
      // Слишком частые запросы (8) или слишком много запросов (141)
      if (err==8 || err==141) Sleep(1000*100);
      if (err==139 || err==140 || err==148) break;
      // Ожидание освобождения подсистемы торговли
      if (err==146) while (IsTradeContextBusy()) Sleep(1000*11);
      // Обнуление даты истечения
      if (err==147) {
        ex=0; continue;
      }
      if (err!=135 && err!=138) Sleep(1000*7.7);
    }
  }
}
 
artmedia70:

これです。それが私の仕事です...。




О.ありがとうございます。

理解してほしいのですが、これは開店から何分という時間軸ですか?

 
kwadrad:


О.ありがとうございます。

これは開店から分単位での時間枠と理解すべきでしょうか?

そう、12時間の寿命の例で言えば...。12*60分
 

OffTopに見えるかもしれませんが、エキスパート(20年前にSpectrumのアセンブラプログラミングの経験を考慮せず、プログラミング全般)を書く のが初めての私にとって、質問というより...です。ちょっと質問させてください。

2年間の履歴でEAをテストしているとき、非常に強いドローダウンがある月があることに気づきました。これは古参の方への質問ですが、このようなドローダウンに対処する方法として、どのようなものがあるか、また、最も効果的だと思われるものをアドバイスしてください。

私は自分の目から見て、今のところ2つの方法があると思っています。

1.ドローダウンが一定の割合を超えたら全取引を停止し、
各ポジションについて1.1。 損益分岐点以降はトレーリングストップをつなぎ、Ask/Bidから少し離れた位置にストップを固定し、少額の利益を確保した上で、価格を追ってストップを引き、一定ポイント上昇したら一部ポジションを決済(資金放出)します。
1.2.自己資本が一定の割合で上昇した後、ゆっくりと取引を開始する...。

2.逆に、メイントレードを無効にして、ハーフロットを使用しなければなりませんが、大量の注文で、損益分岐点の後に小さなトレーリングストップで厳密にトレンドに従わなければならないのです。


2番目の方法は、マージンを食うが、短期ポジションの場合、すぐに資金を追加できる...。

今のところ、このような正反対の方法は2つしかないと思っています。

同志の皆さん、いかがでしょうか?どんなことでも、一見すると "ナンセンス "なことでも、ご意見・ご感想をお待ちしています。

よろしくお願いします :)

 
テスターではデイリー以上のテストはできないのでしょうか?
 
artmedia70:
テスターではデイリー以上のテストはできないのでしょうか?


Ы

インターバンクのEAは準備されているのでしょうか?