अध्याय 3.1 में एक मौद्रिक ट्रेडिंग टेम्पलेट दिखाया गया है, जो मौद्रिक रणनीति लिखने की कठिनाई को बहुत सरल बनाता है। हालांकि, मौद्रिक ट्रेडिंग का निपटान मौद्रिक से बहुत अलग है, इसलिए मौद्रिक ट्रेडिंग टेम्पलेट के आधार पर एक एकीकृत फ्यूचर्स ट्रेडिंग फ़ंक्शन है, जो अब सार्वजनिक है।
इस वीडियो को ट्विटर पर पोस्ट किया गया है।
इस तरह की मुद्राओं के लिए, यह पहले की तरह ही है, जैसे कि डिजिटल मुद्राओं के लिए।
पैरामीटरः
इस रणनीति का परीक्षण कोड हैः
function main() {
if (exchange.GetName() === 'Futures_OKCoin') {
var info = exchange.SetContractType("this_week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
var p = $.NewPositionManager();
p.OpenShort("this_week", 10, depth.Bids[0].Price - 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("this_week", depth.Bids[0].Price + 2, 5);
Log("cover ret:", ret);
//LogProfit(p.Profit());
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var depth = exchange.GetDepth();
p.OpenLong("this_week", 20, depth.Bids[0].Price + 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("this_week", depth.Bids[0].Price - 2, 10, PD_LONG);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var ret = p.Cover("this_week", depth.Bids[0].Price - 3, 10, PD_LONG);
Log("cover ret:", ret);
var ret = p.Cover("this_week", depth.Bids[0].Price + 3, 5, PD_SHORT);
Log("cover ret:", ret);
Log(exchange.GetPosition());
} else if (exchange.GetName() === 'Futures_BitVC') {
var info = exchange.SetContractType("week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
var p = $.NewPositionManager();
p.OpenLong("week", 500, depth.Bids[0].Price + 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("week", depth.Bids[0].Price - 2, 500);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var info = exchange.SetContractType("week");
Log("info 返回值:", info);
Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
var depth = exchange.GetDepth();
p.OpenShort("week", 600, depth.Bids[0].Price - 2);
Log(exchange.GetPosition());
Sleep(500 * 1000);
depth = exchange.GetDepth();
var ret = p.Cover("week", depth.Bids[0].Price - 2, 500, PD_SHORT);
Log("cover ret:", ret);
Log(exchange.GetPosition());
Log("-----------------------------测试分割线----------------------------------------");
var ret = p.Cover("week", depth.Bids[0].Price + 3, 100, PD_SHORT);
Log("cover ret:", ret);
//p.Cover("week", depth.Asks[0].Price - 3, 300, PD_LONG);
Log(exchange.GetPosition());
} else if(exchange.GetName() === 'huobi' || exchange.GetName() === 'OKCoin'){
Log($.GetAccount());
Log($.Buy(0.5));
Log($.Sell(0.5));
exchange.Buy(1000, 3);
$.CancelPendingOrders(exchanges[0]);
Log($.Cross(30, 7));
Log($.Cross([1,2,3,2.8,3.5], [3,1.9,2,5,0.6]));
}
}
उपयोगः
परीक्षण की रणनीतिः
function main(){
var p = $.NewPositionManager();
var i = 0;
exchanges[0].SetContractType("this_week");
var isFirst = true;
var ret = null;
while(true){
var depth = _C(exchanges[0].GetDepth);
var positions = _C(exchanges[0].GetPosition);
var len = positions.length;
if(isFirst === true && i % 3 === 0 && len === 0){
ret = p.OpenLong("this_week", 1 + (i % 3) + (i % 2), depth.Asks[0].Price);
isFirst = false;
}else if(isFirst === false){
ret = p.OpenShort("this_week", 1 + (i % 3) + (i % 2), depth.Bids[0].Price);
isFirst = true;
}else{
for(var j = 0 ; j < len; j++){
if(positions[j].Type === PD_LONG){
ret = p.Cover("this_week", depth.Bids[0].Price - 2, positions[j].Amount, PD_LONG);
}else if(positions[j].Type === PD_SHORT){
ret = p.Cover("this_week", depth.Asks[0].Price + 2, positions[j].Amount, PD_SHORT);
}
Log("ret:", ret);
}
}
Log("ret", ret, "---------------------#FF0000");
i++;
Sleep(1000 * 60 * 15);
}
}
अगर कोई सवाल है, तो कृपया लेखकों से संपर्क करें, बहुत धन्यवाद!
यंडिक्यों मैं JS के लिए डिजिटल मुद्रा व्यापार सूची नहीं मिल रहा है, और रणनीति में नहीं देखा है
मैं बुरा चाचा नहीं हूँ।$.Buy ((0.5) का उपयोग करने की कीमत क्या है?
अवैधक्या python के संस्करण में भी okx वायदा समर्थित है?
सरल-चुनकृपया बताएं कि ret का क्या अर्थ है? क्या यह अंग्रेजी में एक शब्द है? RECOVER T?
सरल-चुनकृपया पीवाई संस्करण कहां है?
यहफगPython का उपयोग करते हैं, क्या कोई Python संस्करण है?
आविष्कारक मात्रा - छोटे सपनेक्रिप्टोकरेंसी वायदा के लिए ट्रेडिंग कैटलॉग अनौपचारिक है, क्योंकि एक्सचेंजों को अक्सर स्टॉक इंटरफेस में देरी होती है, जिससे दोहराए जाने वाले ऑर्डर हो सकते हैं, इसलिए इसे सार्वजनिक रूप से रद्द कर दिया जाता है।
यंडिनमस्ते, यह एक वस्तु और वस्तु वायदा है, मैंने समूह में पूछा, जेएस डिजिटल मुद्रा वायदा सूची एक बग के कारण नहीं है
आविष्कारक मात्रा - छोटे सपने/upload/asset/16c4dcc69723e302152c.png इस स्थान पर
आविष्कारक मात्रा - छोटे सपनेइस तरह की एक तस्वीर में, हम देख सकते हैं कि क्या हुआ था।
आविष्कारक मात्रा - छोटे सपनेयह फिलहाल नहीं लिखा गया है, लेकिन कमोडिटी फ्यूचर्स के लिए एक फ्यूचर्स पायथन टेम्पलेट है, और मेरा जेएस वास्तव में कमोडिटी फ्यूचर्स के अनुरूप है।
अवैधक्या आप ओकेएक्स फ्यूचर्स के बारे में पाइथन टेम्पलेट के संदर्भ में जेएस का उपयोग नहीं करेंगे?
आविष्कारक मात्रा - छोटे सपनेपायथन में कोई वायदा कार्य नहीं है। कोई प्रत्यारोपण नहीं
आविष्कारक मात्रा - छोटे सपनेreturn का अर्थ है लौटाएँ, आमतौर पर एक फ़ंक्शन को अस्थायी रूप से संग्रहीत करने के लिए उपयोग किया जाता है जो लौटाता है।
सरल-चुनधन्यवाद धन्यवाद
आविष्कारक मात्रा - छोटे सपनेhttps://www.botvs.com/strategy/21104, जो कि JS के संस्करण से थोड़ा अलग हो सकता है, इसे JS के बाद पोर्ट किया गया है।
आविष्कारक मात्रा - छोटे सपनेपायथन संस्करण है, लेकिन इसका उपयोग अपेक्षाकृत कम किया जाता है।