Dies ist ein Tageshandels-Aktienscanner und Robo-Trader, der alle US-Aktien durchsucht und versucht, Aktien mit einem guten Risiko-Ertrags-Verhältnis zu finden und zu kaufen, und die zu Beginn eines Aufwärtstrends stehen und sie dann als Abwärtstrend verkaufen, beginnt,. Oder es erfüllt sein Gewinnziel, Stopploss oder Timeout.
In der config.yml fügen Sie Ihren Alpaka -Schlüssel hinzu, geheimer Alternativ können diese Werte als Umgebungsvariablen bei gespeichert werden
Zusätzliche Konfigurationen finden Sie in config/config.yml, um das Risiko und die Belohnung zu steuern und gleichermaßen durch Umgebungsvariablen mit dem Präfix BUNNY_
überschrieben werden
Die bereits gelieferten Konfigurationswerte wurden auf Papierhandelskonten profitabel getestet.
Wenn Sie diese Werte ändern möchten, um Ihre eigenen Vorlieben zu erfüllen, stellen Sie sicher, dass Sie diese auf einem Papierhandelskonto verprügeln möchten.
Lustige Dinge können immer passieren, wenn Sie mit Werten spielen. Testen Sie also, dass Sie Ihr Konto nicht in die Luft sprengen!
Voraussetzungen:
Klonen oder Laden Sie das Paket herunter - und run go run bunny.go
Alpaca ist eine API-erste, 0-Kommissionsmaklerin, die von diesem Robo-Trader verwendet wird, um mit den Aktienmärkten zu interagieren
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 ()
}
Während des Programms wird die Konsole alle Geschäfte protokolliert, einschließlich Symbol, Preis, Gewinn, Stoppverlust, Stop -Limit und Qty
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
Innerhalb des Snapshots -Verzeichnisses gibt es HTML -Seiten, die die Grafiken der gekauften Aktien zeigen, auf die sie auf deren Entscheidung basiert
Sie werden mit der Zeit genannt
Wie bei allen Dingen, sowohl der gesunde Menschenverstand als auch innerhalb der GPL-3.0-Lizenz, der bei der Verwendung dieses Programms zu vereinbart wurde, gibt es keine Garantie, Garantie oder Haftung, die bei der Verwendung dieses Programms vereinbart oder zum Ausdruck gebracht wird.
Während dieses Programm in gutem Glauben profitabel und fehlerfrei ist, gibt es kein Gewinnversprechen. Es besteht jedoch das Risiko. Risiko, Geld zu verlieren. Risiko eines Margenanrufs. Risiko einer fehlerhaften Software.
Dieses Programm ist so konzipiert, dass sie alle Aktien, die bestimmte mathematische technische Indikatoren entsprechen, Tageskörper ausüben. Es ist kein Hinweis auf die Beratung und es sieht Aktien als Sammlung potenziell fehlerhafter Zahlen und seine Entscheidungen als eine Reihe potenziell fehlerhafter Gleichungen an. Es ist wichtig zu verstehen, dass ein erhebliches Risiko in einem erheblichen Risiko besteht
Dieses Programm verwendet auch standardmäßig die Marge - wenn auch nicht mit diesem Risiko vertraut - oder wenn Sie dieses zusätzliche Risiko nicht wünschen, stellen Sie sicher
Als allgemeine Faustregel: Handeln Sie nicht mit Geld, Sie können nicht verlieren. Als Empfehlung - lesen Sie diesen Code selbst durch, um zu verstehen, was er tut und wie er funktioniert.
Wenn Sie etwas sehen, das sich verbessert oder sich vorbewahren kann, öffnen Sie einen Vorfall oder einen PR und lassen Sie es uns reparieren!