トレーディングにおける機械学習:理論、モデル、実践、アルゴトレーディング - ページ 1138

 
コンスタンチン・ニキーチン

私の観察では、1以上のシャープニングはまだうまくいきませんでした。はい、他の方のアカウント/チャートは、大きなインデックスは見ていません。私の勘違いかもしれませんが。

アレクセイ・ヴャジミキン

計算式の説明では確認方法がよくわからないのですが、例えば「ポジションを保有している時間の算術平均利益」はどのように算出するのでしょうか?

もしかしたら、数学的な小さな期待値の問題なのでしょうか?

とにかく、このインデックスが高ければ高いほど良いということに気がつきましたし、これは少なからず、メインのレポートは、私が理解しているこれらのインデックスを持つファイルに書き込まれます。

さて、尊敬する諸君に何と言えばいいのか...。

これらは、ブラックボックスや他人のライブラリなどを使用することによる副作用です。

私はあなたの研究のCSVで株式を公開することを提供することができ、私はあなたのモデルの正しいシャープ比が何であるかを教えてくれます、あなたは添付のコード(python)を自分で計算することができます。

import random

import csv

import matplotlib

import matplotlib.pyplot as plt


def rndWalk(length, start, var):

    rndwalk = []

    curent = start

    for _ in range(length):

        curent*= 1 + random.gauss(0,3) * var

        rndwalk.append(curent)

    return rndwalk


def ParseCsv(path, columnName):

    tab = csv.DictReader(open(path))

    price = []

    for row in tab: price.append(float(row[columnName]))

    return price


def diff(ts):

    return [ts[n] - ts[n - 1] for n in range(1, len(ts))]


def SharpRatio(PnL):

    ret = sum(PnL) / len(PnL)

    var = ((sum([(x - ret) ** 2 for x in PnL]) / len(PnL))) ** 0.5

    return len(PnL) ** 0.5 * ret / var


rw = rndWalk(10000,100,0.001)

sr = SharpRatio(diff(rw))

print(sr)


plt.plot(rw)

plt.show()


SharpRatioのコード自体は、わずか3行です。

def SharpRatio(PnL):

ret = sum(PnL) / len(PnL)

var = ((sum([(x - ret) ** 2 for x in PnL]) / len(PnL))** 0.5

戻り値 len(PnL) ** 0.5 * ret / var


PnLが「アンロード」、つまり取引と取引の間にギャップがある状態(もちろんこれは正しくありません)で使用され、そのためにスケーリングが行われていると推測できます。 私はこれが問題だと100ドルを賭けるつもりです。

 
pantural

皆さん、何と申し上げたらよいのでしょう...。

これらは、ブラックボックスやエイリアンライブラリなどを使用した場合の副作用です。

私はあなたの研究のCSVで株式を公開し、私はあなたのモデルの正しいシャープ比が何であるかを教えてくれます、あなたは添付のコード(python)を自分で計算することができますだけ提供できます。

シャープの比率を、時間単位、分単位であげるには?

 
アレクセイ・ヴャジミキン

時間単位、分単位で、どのようにエクイティを与えるのですか?

どっちでもいい、どっちでもいい

ちなみに、シャープの計算が誤っている兆候として、異なるスケールの株式が、通常は非常に近いはずのシャープ比の数値を著しく異ならせている場合があります。
 
pantural

気にしないで、両方やってみよう。

ちなみに、シャッフル計算が誤っている兆候として、異なるスケールでのエクイティで、通常は非常に近いはずのシャッフル比の数値が大きく異なる場合があります。

でも、もう少し後にしましょう。今、すべての機械がストーリーフィットに喘いでいますよ。)

 
pantural:

気にしないで、両方やってみよう。

ところで、シャープの推定が誤っている兆候として、異なるスケールの株式が、通常は非常に近いはずのシャープ比の数値を本質的に異なるものとして出していることがある。

分刻みでお伝えしていますし、テスターの 取引報告 書も添付しています。

確かにインジケータを少し改良したのは事実です。

シャープレシオは0.29となりました。

ファイル:
KS.zip  102 kb
 
Aleksey Vyazmikin:

分単位のバリアントを出して、テスターの取引報告書を同封しています。

でも、指標は少し改善しました。

シャープレシオは0.29となりました。

実質シャープ比=〜3.79

この数字を計算しようとした人の間違いは明らかで、帰国子女と変動の比率を系列の長さの平方根で 表すことを忘れてしまっただけです。

def SharpRatio(PnL):

PnL = [x for x in PnL if abs(x) > 0] とする。

ret = sum(PnL) / len(PnL)

var = ((sum([(x - ret) ** 2 for x in PnL]) / len(PnL))** 0.5

戻り値 len(PnL) ** 0.5 * ret / var


追記:SR=3.79は非常に楽観的です。もちろん、スウェットショップでなく、正しくテストされた場合です。

 
pantural

実質シャープ比=〜3.79

この数字を計算するアルゴリズムを作った人たちの間違いは明らかです。 彼らは愚かにも、帰国子女と変動の比率をシリーズ長の平方根でスケーリングすることを忘れてしまったのです。

def SharpRatio(PnL):

PnL = [x for x in PnL if abs(x) > 0] とする。

ret = sum(PnL) / len(PnL)

var = ((sum([(x - ret) ** 2 for x in PnL]) / len(PnL))** 0.5

戻り値 len(PnL) ** 0.5 * ret / var


追記:SR=3.79は非常に楽観的、もちろん(ある程度)汗をかかず、正しくテストすればの話ですが

再計算してくれてありがとうございます

本当にエラーなら、端末のグローバルエラーなので、専用スレッドで 報告した方がいいのかも?

フィッティングに関しては、私なりのアプローチがあります。木の葉を集めて、訓練したサンプルと未知のサンプルで履歴のパフォーマンスを調べ、両方のサンプルにプラスの効果があった場合は、次のグループへ移動して詳細な選択と分析を行います。これは一部あてはまりますが、このような「葉っぱ」が以前も今も機能していること、そして次に何が起こるか--誰にもわからないということを調整した上で、「葉っぱ」を使っています。

 
アレクセイ・ヴャジミキン

再計算してくれてありがとうございます

本当にエラーなら、端末のグローバルエラーなので、専用スレッドで 報告した方がいいのでは?

はい、間違いなくエラーです、報告されるべきです。

アレクセイ・ヴャジミキン

フィッティングに関しては、私なりのアプローチがあります。木の葉を集めて、訓練したサンプルと未知のサンプルで履歴のパフォーマンスを調べ、両方のサンプルにプラスの効果があった場合は、次のグループへ移動して詳細な選択と分析を行います。これはこれでアリなのだが、このような「シート」は以前も今も通用し、次に何が起こるかは誰にもわからないという調整も入っている。

調整はどう考えてもどこにでもあることで、問題はそれをいかに許容できるレベルまで減らすかです。

 
pantural

フィットはどう考えてもどこにでもあるもので、問題はそれをいかに許容範囲内に抑えるかということです。

無理でしょう。どんな最適化も、どんなチューニングも、どんなトレーニングも、フィットするものです。それを必然として受け入れて、仕事をしていくしかないのです。

ここでは、質問の仕方を変えなければならない。残念ながら一般的なレシピはないでしょうし、配合自体もシステムによって異なる可能性があります。

 
ユーリイ・アサウレンコ

無理でしょう。最適化、チューニング、トレーニングは、すべてフィッティングです。

ここで、質問の仕方を変えなければならない。残念ながら一般的なレシピ はないでしょうし、配合自体もシステムによって異なる可能性があります。

参照

調整が必要な数値は使用しない

理由: