これは、すべての米国の株式を検索し、リスクと報酬の比率が良好で株式を見つけて購入しようとするデイトレーディングストックスキャナーとロボトレーダーであり、上昇傾向の開始時に販売してから販売します。または、利益目標、ストップロス、またはタイムアウトを満たしています。
config.ymlでalpacaキーを追加します。秘密、これらの値は環境変数としてで保存できます
リスク、報酬などを制御するためにconfig/config.yml内に追加の構成を見つけることができますBUNNY_
既に供給されている構成値は、紙取引口座で有益であるとテストされています。
これらの値を変更して自分の好みを満たしたい場合は、紙取引口座でそれらを試してください。
面白いことが値をいじるときにいつでも起こる可能性があるので、あなたがあなたのアカウントを爆破しないようにテストしてください!
前提条件:
パッケージをクローンまたはダウンロードして実行してgo run bunny.go
Alpacaは、このロボトレーダーが株式市場とやり取りするために使用するAPIの最初のAPI、0のコミッションブローカーです
func meetsRiskGoal ( stock * stock. Stock ) bool {
tradeRisk := viper . GetFloat64 ( "stop-loss-atr-ratio" ) * stock . Atr [ len ( stock . Atr ) - 1 ] / stock . Price . Peek ()
upperRisk := viper . GetFloat64 ( "risk" ) * ( 1 + viper . GetFloat64 ( "exposure-tolerance" ))
lowerRisk := viper . GetFloat64 ( "risk" ) * ( 1 - viper . GetFloat64 ( "exposure-tolerance" ))
return tradeRisk > lowerRisk && tradeRisk < upperRisk
}
func ( s * Stock ) IsReadyToBuy () bool {
return s . IsBelowTrend () && s . IsUpwardsTrend () && s . IsBuyingMacdCrossOver ()
}
func getOrderParameters ( s stock. Stock , a * io. Alpaca , budget float64 ) ( float64 , float64 , float64 , float64 , float64 ) {
quote := a . GetQuote ( s . Symbol )
exposure := budget * viper . GetFloat64 ( "risk" )
price := float64 ( quote . Last . AskPrice - ( quote . Last . AskPrice - quote . Last . BidPrice ) / 2 )
tradeRisk := viper . GetFloat64 ( "stop-loss-atr-ratio" ) * s . Atr [ len ( s . Atr ) - 1 ]
rewardToRisk := viper . GetFloat64 ( "risk-reward" )
stopLossMax := viper . GetFloat64 ( "stop-loss-max" )
takeProfit := price + ( rewardToRisk * tradeRisk )
stopLoss := price - tradeRisk
stopLimit := price - ( 1 + stopLossMax ) * tradeRisk
qty := math . Round ( exposure / tradeRisk )
//ensure we dont go over
for qty * price > budget {
qty = qty - 1
}
return price , qty , takeProfit , stopLoss , stopLimit
}
func ( s * Stock ) IsReadyToSell () bool {
return ! s . IsBelowTrend () && s . IsDownwardsTrend () && s . IsSellingMacdCrossUnder ()
}
プログラムが実行されている間、コンソールはシンボル、価格、利益を取る、停止損失、停止制限、および数量を含むすべての取引を記録します
2020/11/29 02:34:08 buying NHC:
total: 22332.509254
qty: 349.000000
maxProfit: 375.502682
maxLoss: 250.33512142059453
price: 63.989998
takeProfit: 65.065937
stopLoss: 63.272705
スナップショットディレクトリの内部には、購入した株式のグラフを示すHTMLページがあります。
彼らはそれが購入された時間と与えられた株式とともに名前が付けられます
すべてのものと同様に、常識とGPL-3.0ライセンス内の両方が、このプログラムの使用に関して合意された場合、このプログラムを使用する際に合意または表明された保証、保証、または責任はありません。
このプログラムは、収益性が高くバグがないように誠実に作られていますが、利益の約束はありません。ただし、リスクがあります。お金を失うリスク。マージンコールのリスク。バギーソフトウェアのリスク。
このプログラムは、特定の数学的技術指標を満たすすべての在庫をデイトレードするように設計されています。関係する勧告はなく、株式は潜在的に欠陥のある数字のコレクションと見なされ、その決定は潜在的に欠陥のある方程式のシリーズとしてです。重要なリスクがあることを理解することが重要です
また、このプログラムはデフォルトでマージンを使用します - そのリスクに不慣れな場合 - またはその追加のリスクを望んでいない場合は、構成の「マージンマルチャー」を1.00以下に設定するようにしてください
一般的な経験則として:失うことはできないお金と交換しないでください。推奨として - このコードを自分で読んで、それが何をし、どのように機能するかを理解してください。
改善したり安全に装備されたりする可能性のあるものを見た場合は、インシデントまたはPRを開いて、修正しましょう!