Este es un escáner de acciones de negociación diurno y Robo-Trader que busca en todas las acciones de los Estados Unidos e intenta encontrar y comprar acciones con una buena relación de riesgo-recompensa y que están al comienzo de una tendencia ascendente, y luego venderlas a medida que comienza una tendencia bajista, O cumple con su objetivo de ganancias, tapón o tiempo de espera.
En la clave config.yml agregue su tecla Alpaca, en secreto, alternativamente, estos valores se pueden almacenar como variables de entorno en
Se pueden encontrar configuraciones adicionales dentro de config/config.yml para controlar el riesgo, la recompensa, etc. igualmente estas pueden ser anulados por variables de entorno con el prefijo BUNNY_
Los valores de configuración ya suministrados se han probado como rentables en las cuentas de comercio en papel.
Si desea cambiar esos valores para cumplir con sus propias preferencias, asegúrese de probarlos en una cuenta de comercio en papel.
Las cosas divertidas siempre pueden suceder al jugar con los valores, ¡así que pruebe para asegurarse de no volar su cuenta!
Requisitos previos:
clon o descargar el paquete - y ejecutar go run bunny.go
Alpaca es un corredor de la Comisión API primero, 0 que utiliza este Robo-Trader para interactuar con los mercados de renta variable
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 ()
}
Mientras el programa se está ejecutando, la consola registrará todas las operaciones, incluidos símbolos, precios, obtenga ganancias, pérdida de pérdida, límite de parada y 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
Dentro del directorio de instantáneas habrá páginas HTML que muestran los gráficos de las acciones compradas en las que se basó en su decisión en
serán nombrados con el tiempo que se compró y las acciones dadas
Al igual que con todas las cosas, tanto el sentido común como dentro de la licencia GPL-3.0 acordaron el uso de este programa, no hay garantía, garantía o responsabilidad acordada o expresada al usar este programa.
Si bien este programa se hace de buena fe para que sea rentable y libre de errores, no hay promesa de ganancias. Sin embargo, hay riesgo. Riesgo de perder dinero. Riesgo de margen de llamas. Riesgo de software con buggy.
Este programa está diseñado para realizar cualquier acción que cumpla con ciertos indicadores técnicos matemáticos. No hay asesoramiento involucrado, y ve las acciones como una colección de números potencialmente defectuosos, y sus decisiones como una serie de ecuaciones potencialmente defectuosas. Es importante entender que existe un riesgo significativo en
Este programa también usa el margen por defecto, si no está familiarizado con ese riesgo, o si no desea ese riesgo adicional, asegúrese de establecer "margen multiplicador" en la configuración a 1.00 o menos
Como regla general: no se negocie con dinero que no puede perder. Como una recomendación: lea este código usted mismo para comprender lo que hace y cómo funciona.
Si ve algo que podría mejorarse o protegerse seguro, ¡abra un incidente o un PR y arreglemoslo!