30 पंक्तियों के लिए एक सकारात्मक लाभ प्रणाली बनाने के लिए एक सरल और चरम समानांतर रणनीति
यह सही है! आपने सही सुना है कि यह 30 लाइनों का कोड है! केवल 30 लाइनों का कोड है, और मैं कोड को देखने की आदत डालता हूं, ताकि मुझे एक व्यापक समझ हो!
नीति पैरामीटर इस प्रकार हैं
| पैरामीटर | वर्णन करना | प्रकार | डिफ़ॉल्ट |
|---|---|---|---|
| FastPeriod | शॉर्टलाइन चक्र | संख्यात्मक प्रकार | 3 |
| SlowPeriod | बाजार में धीमी रेखा चक्र | संख्यात्मक प्रकार | 7 |
| EnterPeriod | बाजार अवलोकन अवधि | संख्यात्मक प्रकार | 3 |
| ExitFastPeriod | ऑफ-मार्केट रैपिड चक्र | संख्यात्मक प्रकार | 3 |
| ExitSlowPeriod | प्रस्थान चक्र | संख्यात्मक प्रकार | 7 |
| ExitPeriod | अवलोकन अवधि | संख्यात्मक प्रकार | 1 |
| PositionRatio | पदों का अनुपात | संख्यात्मक प्रकार | 0.8 |
| Interval | सर्वेक्षण अवधि (सेकंड) | संख्यात्मक प्रकार | 10 |
- आयात किया।
交易类库यह रणनीति बनाने में आसान है, और आपको इसे खरीदने या बेचने के लिए सूचीबद्ध करने की आवश्यकता नहीं है। - जब आप कोड पढ़ते हैं और एक अघोषित चर के साथ भ्रमित होते हैं, तो समूह में प्रतिक्रिया दें।
function main() {
var STATE_IDLE = -1;
var state = STATE_IDLE;
var opAmount = 0;
var initAccount = $.GetAccount();
Log(initAccount);
while (true) {
if (state === STATE_IDLE) {
var n = $.Cross(FastPeriod, SlowPeriod);
if (Math.abs(n) >= EnterPeriod) {
opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
if (obj) {
opAmount = obj.amount;
state = n > 0 ? PD_LONG : PD_SHORT;
Log("开仓详情", obj, "交叉周期", n);
}
}
} else {
var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
state = STATE_IDLE;
var nowAccount = $.GetAccount();
LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
}
}
Sleep(Interval*1000);
}
}
- इस नीति में केवल एक मुख्य फ़ंक्शन फ़ंक्शन main () है, कोई अन्य फ़ंक्शन मॉड्यूल नहीं है। मुख्य फ़ंक्शन में केवल एक चक्र है।
- मैंने इस रणनीति के कोड को नोट किया है और इसे QQ समूह में साझा किया है, जो कि शुरुआती छात्रों को पढ़ने में मदद करता है।
- यहाँ कोई आधिकारिक QQ समूह में शामिल नहीं है, कृपया शामिल होंः 309368835 आविष्कारक मात्रा ईए संचार (मूल BotVS) । रणनीति केवल दसियों पंक्तियों की कोड है, यह बहुत सरल है!
- हमारे पास जावास्क्रिप्ट भाषा के लिए कोई बुनियादी ज्ञान नहीं है, इसलिए हम यहां सरल भाषा में बात कर रहे हैं, ताकि कोई भी छात्र कोड को गलत न समझ सके।
चर घोषणाएँ
खोजशब्दों के साथvarउदाहरण के लिए,var name = “小明”
चक्र
while(循环条件){
// 将会重复执行的代码
}
यदि चक्र की शर्त सत्य है तो {} के भीतर कोड को बार-बार निष्पादित करें। यदि चक्र की शर्त झूठी है तो चक्र से बाहर निकलें।
शर्त शाखा
if (判断条件){
// 执行代码
} else {
// 执行代码
}
यह बहुत ही सरल है, इसका अनुवाद होता है यदि यह सच है, तो यह इस कोड को निष्पादित करता है
मूल्य निर्धारण
एक=उदाहरण के लिए,
name = “张三”;
नाम के लिए, यह तुलना के साथ भ्रमित करने के लिए आसान है
तुलना के लिए==दो समकक्ष,
उदाहरण“张三”==“李四”यह स्पष्ट है कि चंग सैम ली ची नहीं हैं।“张三”==“李四”क्या यह गलत है?
संबंधित एपीआई
नीति को प्रदर्शित करने से पहले, हम एपीआई और टेम्पलेट निर्यात फ़ंक्शंस का उपयोग करते हैं जो नीति में उपयोग किए जाते हैं। विस्तृत एपीआई प्रलेखन और टेम्पलेट सोर्स कोड का वर्णन आविष्कारक की मात्रा पर है।
- $.GetAccount फ़ंक्शनः एक्सचेंज खाते की जानकारी प्राप्त करने के लिए टेम्पलेट निर्यात फ़ंक्शन
- लॉग फ़ंक्शनः एपीआई, लॉग को जानकारी आउटपुट करने, मान प्रदर्शित करने आदि के लिए
- $.Cross फ़ंक्शन: एक टेम्पलेट फ़ंक्शन जिसका उपयोग औसत रेखाओं को पार करने के लिए किया जाता है
- $.Buy फ़ंक्शनः टेम्पलेट निर्यात फ़ंक्शन, खरीद कार्य के लिए
- $.Sell फ़ंक्शनः टेम्पलेट निर्यात फ़ंक्शन, बिक्री के लिए उपयोग किया जाता है
- LogProfit फ़ंक्शन: एपीआई, आउटपुट लाभ के लिए, फ़ंक्शन दूसरे पैरामीटर से अन्य जानकारी जोड़ सकता है
- Sleep फ़ंक्शन: API, जो प्रोग्राम को एक पल के लिए रोकता है, पैरामीटर की इकाई मिलीसेकंड होती है।
नीति कोड जावास्क्रिप्ट के पुस्तकालय फ़ंक्शंस, ऑब्जेक्ट विधियों का भी उपयोग करता है।
- Math.abs() फ़ंक्शन: पैरामीटर का निरपेक्ष मान लौटाता है
- Number ऑब्जेक्ट का toFixed() फंक्शन: पैरामीटर के अनुसार छोटे अंकों की संख्या को चौगुना या पंचगुना कर रखें। ध्यान दें कि फंक्शन स्ट्रिंग के रूप में लौटाता है
- parseFloat वैश्विक फ़ंक्शन: स्ट्रिंग पैरामीटर को फ़्लोट संख्या में लौटाता है.
जावास्क्रिप्ट के बारे में अधिक जानकारी के लिए जावास्क्रिप्ट नंबर ऑब्जेक्ट http://www.w3school.com.cn/jsref/jsref_obj_number.asp
इस तरह के कार्यक्रमों के लिए, हम अपने स्वयं के फ़्लोटोग्राम का उपयोग कर सकते हैं, जो हाथ से तैयार किए गए हैं, बिना किसी उपकरण के, बहुत शौकिया।
हमारी रणनीति के लिए कदम से कदम
सभी रणनीतिक कार्यक्रमों के प्रवेश द्वारों परmain()फ़ंक्शन, यानी रणनीति मुख्य फ़ंक्शन से शुरू होती है
पक्का प्रस्ताव
अब यह 30 लाइनों की सरल रणनीति पूरी हो गई है!
Running! रणनीति चल रही है, खरीदें और संचालित करें ☺☺☺
InventorQuantity के लिए धन्यवाद, इस तरह के सरल कोड प्रदान करने के लिए, InventorQuantity पर बहुत सारी ओपन सोर्स रणनीतियाँ हैं जिन्हें सीखने और सुधारने के लिए उपलब्ध है, और कई क्वांटिटेशन विशेषज्ञों के साथ प्रगति की जा सकती है।
官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。
वीडियो के साथ
http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html
संदर्भ
$.GetAccount 是FMZ 模板的导出函数(模板就是可复用的代码,参看API 文档上模板的描述)。 $.GetAccount是这个模板:https://www.fmz.com/strategy/10989 的导出函数。
上面的策略只是代码部分,没有策略参数设置,完整的策略可以在策略广场搜索30行均线策略。
就是2条均线,快线上穿慢线 一般是买入信号,上涨概率较大(程序自动买入操作)。 快线下穿慢线一般是卖出信号,下跌概率较大(程序自动卖出)。通过这样反复操作 在行情上升趋势中可以攫取利润。
- 1








