هذا هو ماسح ضوئي لتداول يوم التداول و Robo-Trader الذي يبحث في جميع الأسهم الأمريكية ومحاولات العثور على الأسهم وشرائها مع نسبة جيدة من المخاطر والتي هي في بداية الاتجاه الصعودي ، ثم بيعها عندما يبدأ الاتجاه الهبوطي ، أو تلبي هدف الربح ، أو توقف أو مهلة.
في config.yml ، أضف مفتاح الألبكة الخاص بك ، سراً بدلاً من ذلك ، يمكن تخزين هذه القيم كمتغيرات بيئة في
يمكن العثور على تكوينات إضافية داخل config/config.yml للتحكم في المخاطر ، والمكافأة ، وهكذا يمكن تجاوزها على قدم المساواة عن طريق متغيرات البيئة مع البادئة BUNNY_
تم اختبار قيم التكوين التي تم توفيرها بالفعل لتكون مربحة في حسابات تداول الورق.
إذا كنت ترغب في تغيير هذه القيم لتلبية تفضيلاتك الخاصة ، فيرجى التأكد من تجربتها في حساب تداول الورق.
يمكن أن تحدث أشياء مضحكة دائمًا عند العبث بالقيم ، لذا اختبر لضمان عدم تفجير حسابك!
المتطلبات المسبقة:
استنساخ أو قم بتنزيل الحزمة - وقم بتشغيل go run bunny.go
الألباكا هو وسيط عمولة من واجهة برمجة التطبيقات (API) الأولى ، والذي يستخدمه هذا التجوال الروبو للتفاعل مع أسواق الأسهم
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 ()
}
أثناء تشغيل البرنامج ، ستقوم وحدة التحكم بتسجيل جميع التداولات ، بما في ذلك الرمز والسعر والربح ووقف الخسارة وحد التوقف و 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
داخل دليل Snapshots ، ستكون هناك صفحات HTML التي توضح الرسوم البيانية للسهم الذي تم شراؤه والذي يعتمد على قراره
سيتم تسميتها في الوقت الذي تم شراؤه فيه والأسهم المقدمة
كما هو الحال مع كل شيء ، كل من الحس السليم وضمن ترخيص GPL-3.0 المتفق عليه عند استخدام هذا البرنامج ، لا يوجد ضمان أو ضمان أو مسؤولية متفق عليها أو التعبير عنها عند استخدام هذا البرنامج.
في حين أن هذا البرنامج مصنوع بحسن نية ليكون مربحًا وخاليًا من الأخطاء - لا يوجد وعد بالأرباح. ومع ذلك ، هناك خطر. خطر فقدان المال. خطر الهامش. خطر البرمجيات العربات التي تجرها الدواب.
تم تصميم هذا البرنامج لتجارة أي مخزون يلبي بعض المؤشرات الفنية الرياضية. لا يوجد استشاري مشارك ، وهو ينظر إلى الأسهم كمجموعة من الأرقام المعيبة المحتملة ، وقراراتها كسلسلة من المعادلات المعيبة المحتملة. من المهم أن نفهم أن هناك خطرًا كبيرًا في
يستخدم هذا البرنامج أيضًا الهامش افتراضيًا - إذا لم يكن مألوفًا لهذا الخطر - أو إذا لم يكن يريد هذا المخاطر الإضافية ، فيرجى التأكد
كقاعدة عامة للإبهام: لا تتاجر بالمال الذي لا يمكنك خسارته. كإرواء - اقرأ من خلال هذا الرمز بنفسك لفهم ما تفعله وكيف يعمل.
إذا رأيت شيئًا يمكن تحسينه أو حراسة آمنًا - يرجى فتح حادثة أو علاقات عامة ودعنا نصلحه!