นี่คือสแกนสแกนหุ้นการซื้อขายวันและ Robo-Trader ที่ค้นหาหุ้นสหรัฐทั้งหมดและพยายามค้นหาและซื้อหุ้นที่มีอัตราส่วนความเสี่ยงที่ดีและนั่นคือจุดเริ่มต้นของแนวโน้มที่สูงขึ้นแล้วขายพวกเขาตามแนวโน้มการเริ่มขึ้น หรือตรงตามเป้าหมายกำไร Stoploss หรือหมดเวลา
ใน config.yml เพิ่มคีย์ Alpaca ของคุณความลับอีกวิธีหนึ่งค่าเหล่านี้สามารถเก็บไว้เป็นตัวแปรสภาพแวดล้อมได้ที่
การกำหนดค่าเพิ่มเติมสามารถพบได้ภายใน config/config.yml เพื่อควบคุมความเสี่ยงรางวัลและอื่น ๆ สิ่งเหล่านี้สามารถแทนที่ด้วยตัวแปรสภาพแวดล้อมด้วย Prefix BUNNY_
ค่าการกำหนดค่าที่ให้ไว้แล้วได้รับการทดสอบว่าทำกำไรได้ในบัญชีการซื้อขายกระดาษ
If wanting to change those values to meet your own preferences, please ensure to trial them in a paper trading account.
สิ่งที่ตลกสามารถเกิดขึ้นได้เสมอเมื่อยุ่งกับค่าดังนั้นทดสอบเพื่อให้แน่ใจว่าคุณจะไม่ระเบิดบัญชีของคุณ!
สิ่งที่ต้องทำล่วงหน้า:
โคลนหรือดาวน์โหลดแพ็คเกจ - แล้วเรียกใช้ go run bunny.go
Alpaca is an API first, 0 commission broker that is used by this robo-trader to interact with equity markets
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 ตกลงที่จะใช้โปรแกรมนี้ไม่มีการรับประกันการรับประกันหรือความรับผิดที่ตกลงหรือแสดงเมื่อใช้โปรแกรมนี้
ในขณะที่โปรแกรมนี้ทำโดยสุจริตว่าจะทำกำไรและปราศจากข้อผิดพลาด - ไม่มีสัญญาของผลกำไร อย่างไรก็ตามมีความเสี่ยง ความเสี่ยงในการสูญเสียเงิน ความเสี่ยงของการโทรมาร์จิ้น ความเสี่ยงของซอฟต์แวร์บั๊กกี้
โปรแกรมนี้ได้รับการออกแบบมาเพื่อการซื้อขายหุ้นใด ๆ ที่ตรงกับตัวบ่งชี้ทางเทคนิคทางคณิตศาสตร์บางอย่าง ไม่มีคำแนะนำที่เกี่ยวข้องและมันมองว่าหุ้นเป็นชุดของตัวเลขที่มีข้อบกพร่องที่อาจเกิดขึ้นและการตัดสินใจของมันเป็นชุดของสมการที่มีข้อบกพร่องที่อาจเกิดขึ้น สิ่งสำคัญคือต้องเข้าใจว่ามีความเสี่ยงที่สำคัญ
โปรแกรมนี้ยังใช้มาร์จิ้นโดยค่าเริ่มต้น - หากไม่คุ้นเคยกับความเสี่ยงนั้น - หรือหากไม่ต้องการความเสี่ยงเพิ่มเติมโปรดตรวจสอบให้แน่ใจว่าได้ตั้งค่า "margin -multiplier" ในการกำหนดค่าเป็น 1.00 หรือน้อยกว่า
ตามกฎทั่วไปของหัวแม่มือ: อย่าแลกเปลี่ยนเงินที่คุณไม่สามารถสูญเสียได้ ในฐานะที่เป็นคำแนะนำ - อ่านรหัสนี้ด้วยตัวคุณเองเพื่อทำความเข้าใจว่ามันทำอะไรและทำงานอย่างไร
หากคุณเห็นบางสิ่งที่สามารถปรับปรุงหรือรักษาความปลอดภัย - โปรดเปิดเหตุการณ์หรือการประชาสัมพันธ์และแก้ไขมันกันเถอะ!