巨大な牛の人工知能のコースにつまずいたが、誰にでも助けることが共有できませんでした。チュートリアルは、フィクションを見ているよう、唯一のゼロベース、ユーザーフレンドリーな、と非常にユーモラスではありません!私は他の人に、あまりにも悪いと思います。チュートリアルリンク:https://www.cbedai.net/qtlyx
彼のブログ上Backtrader著者は、非常に興味深い記事を書きました。CSDNはbacktraderコード上からこの男を見つけ、それは読みやすさを向上させるために書き直し、私はそれがとても面白いと思います。
このような元のコードの何か:
def __init__(self):
...
self.ma1 = bt.indicators.SMA(self.datas[0],
period=self.p.period
)
self.ma2 = bt.indicators.SMA(self.datas[1],
period=self.p.period
)
これは、平均的な戦略を動かし、おそらく1ペアを見て、初期化セクション、です。その後、我々は、ビジネス・ロジックを見て:
if (self.ma1[0]-self.ma1[-1])/self.ma1[-1]>(self.ma2[0]-self.ma2[-1])/self.ma2[-1]:
if (self.ma1[0]-self.ma1[-1])/self.ma1[-1]<=(self.ma2[0]-self.ma2[-1])/self.ma2[-1]:
ここでは、ビットの平均を見つけました。戦略は、価格の平均移動する2つの大きさを比較することです。実際には、例、平均ダブルウェア上の性質は、トレンド以下の戦略が何であるかは差を身に着けていません。もちろん、backreader作者の意図は間違いなく研究戦略ではなく、コードを改善する方法。
本当に、私は本当に賞賛backtraderアーキテクチャ、ほとんどの戦略を書いている時点でbacktraderが提供する、と考えることができますまた、このインターフェースのライターに提供されていない場合、その農家はコード分析であることを任意でよいです。
Backtraderの作者は少しプログラミングの習慣を嫌い、その後、独自の同等の文言を与えます:
def __init__(self):
...
# Let's create the moving averages as before
ma1 = bt.ind.SMA(self.data0, period=self.p.period)
ma2 = bt.ind.SMA(self.data1, period=self.p.period)
# Use line delay notation (-x) to get a ref to the -1 point
ma1_pct = ma1 / ma1(-1) - 1.0 # The ma1 percentage part
ma2_pct = ma2 / ma2(-1) - 1.0 # The ma2 percentage part
self.buy_sig = ma1_pct > ma2_pct # buy signal
self.sell_sig = ma1_pct <= ma2_pct # sell signal
def next(self):
...
# Not yet ... we MIGHT BUY if ...
if self.buy_sig:
...
...
# Already in the market ... we might sell
if self.sell_sig:
...
実際には、ここにあなたの考え方や遅延演算子()役割の行に良いショーのbacktraderを得ました。実際には、initメソッドの内部プログラミングにおいて、FPGAは感じ、平行ウェルの感覚のビットをプログラミングします。