सिक्का फेंकने की रणनीति

लेखक:मक्का, दिनांकः 2020-04-21 17:39:52
टैगः

पूरी तरह से टी देव का सार्वजनिक नाम, टायर देव की विशेष रणनीति द्वारा अनुवादित यह वीडियो एक बार फिर से दिखाई देने वाला है। कृपया अधिक मात्रा में दुनिया को देखें और अधिक रणनीतिक स्रोत प्राप्त करें! और अपने लिए एक विज्ञापन भी है। पब्लिकन पत्रिका "चीनी बीन्स का मात्रात्मक जर्नल" ऑनलाइन क्वांटिफाइड बैंकरों को हर दिन सार्वजनिक रूप से दंडित करें। और अधिक लाभ, और अधिक आप के लिए आते हैं!


एक अच्छी अस्थिरता दर के साथ, बीटीसी के साथ जीतने के लिए दौड़ना इतना आसान है! ओरिजिनल, ओजोन, ओजोन, हजारों की मात्रा में दुनिया 3 दिन पहले क्लोनिंग क्वांटिफाइंग रणनीतियों का अनुसंधान और विकास वास्तव में एक दो-तरफा है, जो कि शुरुआती लोगों के लिए बहुत मुश्किल है, न केवल क्लोनिंग क्लोनिंग स्तर पर कोड है, बल्कि क्लोनिंग स्तर पर रणनीतिक तार्किक सोच भी मुश्किल है। दोनों महत्वपूर्ण हैं और किसी भी तरह से पक्षपातपूर्ण नहीं हैं।

नमस्कार, हजारों मात्रात्मक मित्रों!

इस लेख का दूसरा संस्करण है, और हम आपको यह बताने के लिए आमंत्रित करने के लिए बहुत सम्मानित हैं कि हम कैसे उपयोग कर सकते हैं?

भगवान पारंपरिक मात्रा निवेश संस्थान से आते हैं, कभी भी सिक्का गोला एक्सचेंज के कारोबार में गहराई से शामिल थे, मात्रा के क्षेत्र में समृद्ध अनुभव और अनूठी अंतर्दृष्टि है। भगवान इस अंक में विचारों की प्रेरणा, कोडिंग कार्यान्वयन और व्यक्तिगत जागरूकता आदि को शामिल किया गया है, यह नहीं कहा जा सकता है कि सूखी सामग्री से भरा है, हजारों खुद को देखने के बाद भी लाभान्वित महसूस करते हैं, वास्तव में बहुत सराहना और धन्यवाद भगवान, दृढ़ता से सभी को पढ़ने की सलाह देते हैं!

नीचे दिए गए ताली बज रहे हैं, कृपया आप सभी को अस्थिरता की रणनीति के बारे में बताएं।

01

अग्रलेख

नमस्कार, आज मुझे बहुत सौभाग्य प्राप्त हुआ है कि मैंने अपने लेख को हजारों की संख्या में क्वांटिफाइड किया है, और साथ ही टी बॉस (एक हजार में से एक) के निमंत्रण के लिए धन्यवाद। पहली बार टी बॉस को लेख लिखने के लिए, पूरी स्वतंत्रता के साथ, काम के बाद अतिरिक्त समय, गुणवत्ता और त्रुटियों को उधार लेने के लिए, कृपया लेख में सही और शामिल करें, धन्यवाद।

टी मालिक कहते हैं कि एक मात्रात्मक लिखें, और कुछ भी नहीं देने के लिए दायरे, वास्तव में पता नहीं है कि कहाँ से लिखना है. तो अपने पसंदीदा विषयों से शुरू करें। मात्रात्मक संकेतकों और रणनीतियों (जो सहायक भी हो सकते हैं) को स्वचालित किया जा सकता है, बेशक, अंत में हम एक पुराने और पुराने कहावत जोड़ना चाहते हैंः निवेश जोखिम भरा है, बाजार में प्रवेश करने के लिए सावधान रहना चाहिए, रणनीति केवल लोगों को विचार और सबक प्रदान करने के लिए है, लाभ और हानि का लाभ उठाना है। इस रणनीति का उपयोग करने के लाभ और हानि का मेरे और हजारों की संख्या में मात्रा में दुनिया के सभी प्रमुख सार्वजनिक विषयों से कोई लेना-देना नहीं है।

इस तरह के एक बयान के बाद, हम नीचे दिए गए प्रश्नों के साथ शुरू करते हैं।

02

एक सरल अस्थिरता रणनीति

जो लोग मुझे जानते हैं, वे जानते हैं कि मैं व्यक्तिगत रूप से अल्फा खेलना पसंद नहीं करता हूं, मैं बीटा पर अधिक भरोसा करता हूं और बीटा पर अधिक अध्ययन करता हूं। और क्यों, e.........mmmmm, मुझे नहीं पता कि आप क्या जवाब देते हैं, आप अपना दिमाग भरें। यदि आप रुचि रखते हैं, तो आप निजी संदेश भेज सकते हैं, इस सार्वजनिक अंक के लेखक को टिप्पणी करें, तर्क स्पष्ट रूप से विशिष्ट है, लेखक खुद आपको एक छोटा लाल पैकेज भेजेंगे।

मात्रात्मक रणनीतियों का अनुसंधान और विकास वास्तव में एक दो-तरफा है, जो लोग अभी-अभी प्रवेश कर रहे हैं, उनके लिए यह बहुत मुश्किल है, न केवल टैक्टिकिकिक स्तर पर कोड है, बल्कि रणनीतिक तार्किक सोच भी मुश्किल है। दोनों महत्वपूर्ण हैं और किसी भी तरह से पक्षपातपूर्ण नहीं हैं। आज आपको जो रणनीति दी गई है, वह वास्तव में कई साल पहले हुआटेई के एक शोध पत्र से प्रेरित है, हम ध्यान से देखते हैं।

इस रणनीति एल्गोरिथ्म ने लॉजिस्टिक्स के मूल्य के निश्चित चक्रों के लिए उतार-चढ़ाव के लिए रोलिंग रिटर्न के उतार-चढ़ाव के सिद्धांत का उपयोग किया है। इस उतार-चढ़ाव के आधार पर, निश्चित चक्रों के लिए रोलिंग अधिकतम और न्यूनतम मूल्य का पता लगाया जाता है, उच्चतम मूल्य ऊपर की ओर, न्यूनतम नीचे की ओर, ऊपर की ओर और नीचे की ओर।

विशिष्ट ग्राफिक विज़ुअलाइज़ेशन इंटरफेस के लिए नीचे दिए गए पीपीटी को देखें. यह ग्राफिक खुद को Pyecharts के साथ चित्रित किया गया है।

img

वास्तव में, यह रणनीति वह रणनीति है जो मैंने पहले व्यापक ईटीएफ के लिए इस्तेमाल की थी, और निश्चित रूप से सूचकांक चुनने के लिए शेयरों की खरीद और बिक्री के लिए भी इस्तेमाल की गई थी, फिर सीधे सिक्के के घेरे में स्थानांतरित कर दी गई थी।

img

नीचे दिए गए चित्र में वर्ष के लिए समीक्षा के परिणाम दिखाए गए हैं, जिनमें से कुछ कोड लॉजिक स्क्रीनशॉट नीचे दिए गए हैंः

img

उपरोक्त वास्तव में डेटा पढ़ने के बाद, पांडा के माध्यम से सूचक डेटा गणना है।

img

गणना पूरी होने के बाद, pd.to_csv () फ़ंक्शन के माध्यम से डेटा आउटपुट और ऊपर दिए गए स्क्रीनशॉट में उपयोग किए गए pyecharts का दृश्य आउटपुट किया जा सकता है (नोटः मैं पुराने संस्करण के pyecharts का उपयोग करता हूं) ।

सभी रणनीतियाँ, विज़ुअलाइज़ेशन और परफॉरमेंस इंडिकेटर कोड, या तो बात करते हैं या नहीं।

03

क्वांटिफाइंग

पहले, एक अच्छा रणनीति खुले तौर पर डर नहीं है, और यह एक युद्ध स्तर के खिलाफ हथियारों के विकास है, जो जीवन या मौत का फैसला करेगा, इसलिए मैं और कुछ अन्य संस्थाओं या व्यक्तियों को, तथाकथित रणनीति रहस्यों से भी डर नहीं है, क्योंकि मेरे विचार में सीटीए कोई रहस्य नहीं है। यह केवल हर किसी के बारे में सोचा और अप्रत्याशित विचार है। दूसरा, यह संस्करण अपने आप में सबसे पुराना संस्करण है, इस आधार पर कई संस्करणों को भी उन्नत किया गया है, जैसे कि अन्य निर्णयों और बाधाओं को जोड़ने की शर्तें, आदि, और निश्चित रूप से अन्य नस्ल चक्र पैरामीटर समायोजन शामिल हैं।

दूसराः बहुत से लोग, चाहे वे नए हों या पुराने खिलाड़ी, प्रेरणा के स्रोतों की आवश्यकता होती है, जिसमें शेयरों के कारक खनन, समय की रणनीति के विचार आदि शामिल हैं, जो अक्सर विषयगत अनुभव, शोध पत्र, सर्कल के भीतर संचार के आदान-प्रदान आदि से प्राप्त होते हैं, बाजार में कुछ खरीदी गई रणनीतियों को बाहर नहीं करते हैं और फिर पढ़ते हैं और समझते हैं, अपनी जोखिम सहन क्षमता और विशिष्ट आवश्यकताओं के अनुसार संशोधन करते हैं।

अंत में, संक्षेप में, मात्रात्मकता एक विदेशी वस्तु थी, प्रोग्रामेटिक लेनदेन मात्रात्मकता का एक उपसमूह है, और पहले से ही अपने स्वयं के विश्वविद्यालय के समय (लगभग 2009) में, जब टीबी, पिरामिड आदि प्रोग्रामेटिकता में शामिल थे, और अगर यह आज भी जारी है, तो यह कहा जा सकता है कि इस भाग के शुरुआती भविष्यवक्ताओं को 10 साल हो गए हैं, जिसमें अभी भी वॉल स्ट्रीट की दीवारों से लौटे उच्च आवृत्ति रणनीतियों और प्रणालियों को शामिल नहीं किया गया है। इसलिए, चीन में मात्रात्मक रणनीति या प्रोग्रामेटिक रणनीति कुछ समय से चल रही है, लेकिन वर्तमान बाजार हिस्सेदारी और प्रतिभागियों और नीतिगत समर्थन में, मात्रात्मकता अभी भी बहुत छोटा हिस्सा है, हालांकि कई विश्लेषणों और रणनीतियों के मॉडल से भरे शोध से पता चलता है कि कुछ लोग इस छोटे दिमाग वाले तर्क को पसंद करते हैं।

अंत में, अपने विशेषज्ञता पर भरोसा करने और लेख के लिए आमंत्रित करने के लिए हजारों लोगों के लिए धन्यवाद। किसी को भी कोड और रणनीति के बारे में कोई विशिष्ट समस्या है, तो कृपया मुझे या टी-डेन को निजी रूप से ईमेल करें, मैं टी-डेन समूह में भी हूं।

अंत में, एक बार फिर से धन्यवाद, बहुत बढ़िया व्याख्या के लिए!

जो लोग अभी तक क्वांटिफाइड चर्चा समूह में शामिल नहीं हुए हैं, वे जल्दी से जुड़ें और सीखने के लिए सामग्री प्राप्त करें!

हज़ारों की तादाद में!

img

वीटेक ने साफ कर दिया इस सार्वजनिक नंबर पर ध्यान दें


/*backtest
start: 2020-01-20 00:00:00
end: 2021-01-19 23:59:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_BitMEX","currency":"XBT_USD","fee":[0.008,0.1]}]
args: [["st",0.1]]
*/

// 初始化
exchange.SetContractType('XBTUSD')
_CDelay(100)
// 止盈止损
var TP_status = false // 是否触发追踪止盈 
var TP_HH = 0
var TP_LL = 0
var B = 1

// 获取交易所信息
function UpdateInfo() {
    account = exchange.GetAccount()
    pos = exchange.GetPosition()
    records = exchange.GetRecords()
    ticker = exchange.GetTicker()
}

// 定制本次盈亏
function Onept() {
    // 更新用户信息
    UpdateInfo()
    // 如果现在余额 大于 之前的余额, 那么 盈利次数+1, 且pt_1设为现在余额
    if (account.Stocks - pt_1 > 0) {
        pt_times = pt_times + 1
        Log('这回赚钱啦~~~~ (^U^)ノ~YO', account.Stocks - pt_1)
        B = 1
        pt_1 = account.Stocks
    }
    // 如果现在余额 小于 之前的余额, 那么 亏损次数+1, 且pt_1设为现在余额
    if (account.Stocks - pt_1 < 0) {
        st_times = st_times + 1
        Log('这回亏掉了.... /(ㄒoㄒ)/~~', account.Stocks - pt_1)
        B = B * 1.618
        pt_1 = account.Stocks
    }
}

// 画线
function PlotMA_Kline(records) {
    $.PlotRecords(records, "K")
}

// 追踪止盈 初始%, 追踪U
function TP() {
    var TP_first_long = pos[0].Price + tp_first * ticker.Last
    var TP_trailing_long = TP_HH - trailing_tp * ticker.Last
    var TP_first_short = pos[0].Price - tp_first * ticker.Last
    var TP_trailing_short = TP_LL + trailing_tp * ticker.Last
    // 当多仓时, 现价大于开仓+初始止赢价 -> 触发追踪止盈 
    if ((pos[0].Type == 0) && (ticker.Last > TP_first_long)) {
        // Log('当多仓时, 现价大于开仓+初始止赢价 -> 触发追踪止盈', TP_HH)
        TP_status = true
        // 触发追踪止盈, 未初始化开仓最大价格 -> 开仓后最大价格更新为现价
        if (TP_status === true && TP_HH == 0) {
            Log('触发追踪止盈, 未初始化开仓最大价格 -> 开仓后最大价格更新为现价', TP_HH)
            TP_HH = ticker.Last
        }
        // 触发追踪止盈, 已有开仓后最大价格, 现价大于开仓后最大价格 -> 开仓后最大价格更新为现价
        else if (TP_status === true && TP_HH != 0 && ticker.Last > TP_HH) {
            Log('触发追踪止盈, 已有开仓后最大价格, 现价大于开仓后最大价格 -> 开仓后最大价格更新为现价', TP_HH)
            TP_HH = ticker.Last
        }
        // 触发追踪止盈, 已有开仓后最大价格, 现价小于 (开仓后最大价格减 - 回撤USD) -> 开空平仓止盈
        else if (TP_status === true && TP_HH != 0 && ticker.Last < TP_trailing_long) {
            Log('触发追踪止盈, 已有开仓后最大价格, 现价小于 (开仓后最大价格减 - 回撤USD) -> 开空平仓止盈', TP_HH)
            exchange.SetDirection("closebuy")
            exchange.Sell(ticker.Buy, pos[0].Amount, "在" + ticker.Last + "止赢平多仓!! 开仓价格: " + pos[0].Price + "数量: " + pos[0].Amount)
            $.PlotFlag(new Date().getTime(), 'Sell', 'PT_BK' + ticker.Sell)
            Onept()
            TP_status = false
            TP_HH = 0
        }
    }
    // 当空仓时, 现价小于开仓-初始止赢价 -> 触发追踪止盈
    else if ((pos[0].Type == 1) && (ticker.Last < TP_first_short)) {
        // Log('当空仓时, 现价小于开仓-初始止赢价 -> 触发追踪止盈', TP_LL)
        TP_status = true
        // 触发追踪止盈, 未初始化开仓最大价格 -> 开仓后最小价格更新为现价
        if (TP_status === true && TP_LL == 0) {
            Log('触发追踪止盈, 未初始化开仓最大价格 -> 开仓后最小价格更新为现价', TP_LL)
            TP_LL = ticker.Last
        }
        // 触发追踪止盈, 已有开仓后最小价格, 现价小于开仓后最小价格 -> 开仓后最小价格更新为现价
        else if (TP_status === true && TP_LL != 0 && ticker.Last < TP_LL) {
            Log('触发追踪止盈, 已有开仓后最小价格, 现价小于开仓后最小价格 -> 开仓后最小价格更新为现价', TP_LL)
            TP_LL = ticker.Last
        }
        // 触发追踪止盈, 已有开仓后最小价格, 现价大于 (开仓后最小价格减 + 回撤USD) -> 开多平仓止盈
        else if (TP_status === true && TP_LL != 0 && ticker.Last > TP_trailing_short) {
            Log('触发追踪止盈, 已有开仓后最小价格, 现价大于 (开仓后最小价格减 + 回撤USD) -> 开多平仓止盈', TP_LL)
            exchange.SetDirection("closesell")
            exchange.Buy(ticker.Sell, pos[0].Amount, "在" + ticker.Last + "止赢平空仓!! 开仓价格: " + pos[0].Price + "数量: " + pos[0].Amount)
            $.PlotFlag(new Date().getTime(), 'Buy', 'PT_SK' + ticker.Sell)
            Onept()
            TP_status = false
            TP_LL = 0
        }
    }
}

// 止损 %
function Stoploss() {
    // 当多仓时, 现价小于开仓-止损价, 做空平多
    if ((pos[0].Type == 0) && (ticker.Last < pos[0].Price - st * ticker.Last)) {
        Log('当多仓时, 现价小于开仓-止损价, 做空平多')
        exchange.SetDirection("closebuy")
        exchange.Sell(ticker.Buy, pos[0].Amount, "在" + ticker.Last + "止损平多仓!! 开仓价格: " + pos[0].Price + "数量: " + pos[0].Amount)
        $.PlotFlag(new Date().getTime(), 'Sell', 'ST_BK' + ticker.Buy)
        Onept()
    }
    // 当空仓时, 现价大于开仓+止损价, 做多平空
    else if ((pos[0].Type == 1) && (ticker.Last > pos[0].Price + st * ticker.Last)) {
        Log('当空仓时, 现价大于开仓+止损价, 做多平空')
        exchange.SetDirection("closesell")
        exchange.Buy(ticker.Sell, pos[0].Amount, "在" + ticker.Last + "止损平空仓!! 开仓价格: " + pos[0].Price + "数量: " + pos[0].Amount)
        $.PlotFlag(new Date().getTime(), 'Buy', 'ST_SK' + ticker.Sell)
        Onept()
    }
}

// 计算凯利公式 仓位
function PriceAmount() {
    // 赢可以赢多少 
    y = tp_first
    // 输会输多少 
    s = st
    //赔率
    b = y / s
    // 赢的概率
    if (total_times < 10) {
        p = 0.382
    } else {
        p = pt_times / total_times
    }
    // 输的概率
    q = 1 - p
    // 凯莉公式
    f = (b * p - q) / b
    // 限制B最大值
    if (B > 16.18) {
        B = 16.18
    }
    //Amount = _N(Math.abs(f) * account.Stocks * ticker.Last * B, 0)
    Amount = _N(0.618 * account.Stocks * ticker.Last, 0)
    //Log(Amount)
}

// 交易逻辑
function onTick() {
    // 获取均匀分布 0-9 随机数
    ToTheMoon = Math.floor(Math.random() * 10)
    // 无仓位时
    if (pos.length == 0) {
        // Long 
        if (ToTheMoon > 5) {
            exchange.SetDirection("buy")
            exchange.Buy(ticker.Sell, Amount)
            $.PlotFlag(new Date().getTime(), 'Buy', 'BK' + ticker.Sell)
            total_times = total_times + 1
        }
        // Short 
        if (ToTheMoon < 4) {
            exchange.SetDirection("sell")
            exchange.Sell(ticker.Buy, Amount)
            $.PlotFlag(new Date().getTime(), 'Sell', 'SK' + ticker.Buy)
            total_times = total_times + 1
        }
    }
        // 多仓时
    if (pos.length > 0 && pos[0].Type == 0) {
        // 平多 
        if (ToTheMoon < 1) {
            exchange.SetDirection("closebuy")
            exchange.Sell(ticker.Buy, pos[0].Amount)
            $.PlotFlag(new Date().getTime(), 'Sell', 'PBK')
            Onept()
        }
    }
    // 空仓时
    if (pos.length > 0 && pos[0].Type == 1) {
        // 平空 
        if (ToTheMoon > 8) {
            exchange.SetDirection("closesell")
            exchange.Buy(ticker.Sell, pos[0].Amount)
            $.PlotFlag(new Date().getTime(), 'Buy', 'PSK')
            Onept()
        }
    }
}


function main() {
    UpdateInfo()
    // 统计
    pt_1 = account.Stocks
    total_times = 0
    pt_times = 0
    st_times = 0
    while (1) {
        UpdateInfo()
        PriceAmount()
        onTick()
        PlotMA_Kline(records)
        if (pos.length > 0) {
            TP()
        }
        if (pos.length > 0) {
            Stoploss()
        }
        LogStatus("总余额: " + _N(ticker.Last * account.Stocks, 2), " 下单量: " + Amount, " 下单倍数: " + B, " ToTheMoon: " + ToTheMoon, " 下单量比: " + _N(Amount * 100 / _N(ticker.Last * account.Stocks, 2), 2), "% 胜率: " + _N(p * 100, 2), "%", total_times, pos)
    }
}

अधिक

अलक्या इसे बिनान संस्करण में बदला जा सकता है?