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

 

興味のある方は、私がどんなファッションをしてきたか、チェックしてみてください。ジャガイモを漬けるために庭に行ってきます...。夕方から行きます...。

ZS.数列の中で最大回数発生する値を導き出しました。

ファイル:
 
KimIV писал (а)>>

興味のある方は、私がどんなファッションをしてきたか、チェックしてみてください。ジャガイモを漬けるために庭に行ってきます...。夕方から行きます...。

ZS. 数列の中で最大回数出現する値を推理してみた。

もちろん、面白い!ありがとうございます。テストすることになる。

 
KimIV писал (а)>>

興味のある方は、私がどんなファッションをしてきたか、チェックしてみてください。ジャガイモを漬けるために庭に行ってきます...。夕方から行きます...。

SZY. 数値列に最大回数出現する値を推論してみた。

また、実数の最頻値を計算するための誤差(ヒットインターバル)のようなものを追加し、それを調整することで、サンプリング精度をチューニングすることをお勧めします。

2 イダルゴ

統計解析をされている方( 今、私が 興味を持っているのはそれです)、その使用 感について教えていただけませんか?遠慮なく別スレッドを作成してください。この話題を応援していただけるとうれしいです。


 
sergeev писал (а)>>
また、実数のモードを計算するために、誤差(または別のヒット間隔)のようなものを導入し、それを調整することで、サンプリングの精度を調整することをお勧めします。

数式、図面、どうすればいいのかの説明...。:-)ご指摘のような方法がいくつかあることをご理解いただければと思います。バリアントについて説明してください。

また、数値の精度として、小数点以下の桁数であるdという パラメータが初めて用意された。

 

確かにd 値の精度はオプションですが、今回は10^(-d)の区間で検証された数値です。


// переменная exact определяет процент отклонения 
// элемента массива от требуемого числа e
// например для 40% exact=1.40; для 0% exact=1.0
int ArraySearchDouble(double& m[][], double e, double exact) 
{
    for (int i=0; i<ArrayRange(m, 0); i++) 
        if (m[i][1]<=e*exact && m[i][1]>=e/exact ) return(i);
    return(-1);
}
 
sergeev писал (а)>>

そうですね、d 値の精度はオプションですが、今回は区間10^(-d)で検証された数値があります。


浮動小数点数の場合は、スプレッド値をハードコードして使用するのがよいでしょう。

f1 + df > f2 > f1 - df ==> f1 == f2.または正規化を使用する。

あなたのコードには、ゼロに近い数字や、すべての負の数に対して問題があることは間違いありません。

コードを改訂する。

 

ああ、ちょっとネガを忘れてた、焦ってた。

// переменная exact определяет процент отклонения 
// элемента массива от требуемого числа e
// например для 40% exact=1.40; для 0% exact=1.0
int ArraySearchDouble(double& m[][], double e, double exact) 
{
    for (int i=0; i<ArrayRange(m, 0); i++) 
        if (MathAbs(m[i][1])<=MathAbs(e)*exact && MathAbs(m[i][1])>=MathAbs(e)/exact ) return(i);
    return(-1);
}

または



// переменная dExact определяет величину отклонения
// значения элемента массива от требуемого числа e
// например dExact=0.055
int ArraySearchDouble2(double& m[][], double e, double dExact) 
{
    for (int i=0; i<ArrayRange(m, 0); i++) 
        if (MathAbs(m[i][1])<=MathAbs(e)+dExact && MathAbs(m[i][1])>=MathAbs(e)-dExact) return(i);
    return(-1);
}
 
イゴールさん、こんにちは。支店の発展を見守ることができ、嬉しく思います。御社の注文設定機能を詳しく調べてみることにしました。正確には、そのブロック
のエラー処理についてです。
......
      err=GetLastError();
      if (err==128 || err==142 || err==143) {
        Sleep(1000*66);
        if (ExistOrders(sy, op, mn, ot)) {
          if (UseSound) PlaySound(NameFileSound); break;
        }
        Print("Error(",err,") set order: ",ErrorDescription(err),", try ",it);
        continue;
      }
      mp=MarketInfo(sy, MODE_POINT);
      pa=MarketInfo(sy, MODE_ASK);
      pb=MarketInfo(sy, MODE_BID);
      // Неправильные стопы
      if (err==130) {
        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(): Скорректированы ценовые уровни");
      }
      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 (pa==0 && pb==0) Message("SetOrder(): Проверьте в обзоре рынка наличие символа "+sy);
      // Блокировка работы советника
      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);
    }
  }
}

こんな疑問があります。

エラー131(ERR_INVALID_TRADE_VOLUME: Incorrect volume)を長い間、処理するのはなぜですか?

エラーなのか、それとも私が見逃しているのか?

 
ShestkoFF писал (а)>>
イゴールさん、こんにちは。この記事、とても楽しく拝見しました。今回、御社のオーダーセッティングの機能、正確にはそのエラーブロックについて詳しく調べてみることにしました。
エラー処理を行う。

こんな疑問があります。

エラー131(ERR_INVALID_TRADE_VOLUME: Incorrect volume)を長い間、処理するのはなぜですか?

エラーなのか、それとも私が見逃しているのか?

Vasilyさん、こんにちは。おっしゃるとおりです。私の不注意によるミスです。ご指摘ありがとうございました。エラー131は、エラー2、64、65、133と同様に、EAを無効化する必要があります。

 
まあ、もちろんブロックはしませんが。私なら、エラーをトップに送り、そこで対処を決めます。

この時点でEAをブロックしてしまうと、EAによるオープンポジションが残って しまう可能性があり、大変なことになります。