2
ध्यान केंद्रित करना
319
समर्थक

व्यवहार में कार्यप्रवाह: इक्विटी प्रतिशत ऑर्डर और स्वचालित लाभ-प्राप्ति और हानि-रोक उपायों को आसानी से प्रबंधित करें

में बनाया: 2025-11-12 10:58:07, को अपडेट: 2025-11-15 12:45:08
comments   0
hits   219

व्यवहार में कार्यप्रवाह: इक्विटी प्रतिशत ऑर्डर और स्वचालित लाभ-प्राप्ति और हानि-रोक उपायों को आसानी से प्रबंधित करें

1 परिचय

नमस्कार दोस्तों, मुझे हाल ही में वर्कफ़्लो उपयोग के बारे में दोस्तों से बहुत सारी प्रतिक्रिया मिली है, और सबसे अधिक पूछा जाने वाला प्रश्न है…अधिकार का प्रतिशतऔरस्टॉप लॉससेटअप संबंधी मुद्दों के संबंध में, कई लोग पूछते हैं: “मुझे पता है कि मुझे जोखिम को नियंत्रित करने की आवश्यकता है, लेकिन मैं खाते के धन के आधार पर ऑर्डर की मात्रा की गणना कैसे करूँ? साथ ही, मैं पोजीशन खोलने के बाद स्टॉप-लॉस और टेक-प्रॉफिट ऑर्डर को स्वचालित रूप से कैसे सेट करूँ ताकि सिस्टम हमारे लिए जोखिम का प्रबंधन कर सके?”

आज, हम इन व्यावहारिक आवश्यकताओं पर ध्यान देंगे और इन्वेंटर्स क्वांटिफिकेशन प्लेटफॉर्म से वास्तविक कोड का उपयोग करते हुए, विस्तार से बताएंगे कि इन दो मुख्य कार्यों को कैसे कार्यान्वित किया जाए।


II. इक्विटी प्रतिशत के आधार पर ऑर्डर प्लेसमेंट का विस्तृत विवरण

व्यवहार में कार्यप्रवाह: इक्विटी प्रतिशत ऑर्डर और स्वचालित लाभ-प्राप्ति और हानि-रोक उपायों को आसानी से प्रबंधित करें

2.1 इक्विटी प्रतिशत ऑर्डर प्लेसमेंट क्या है?

अधिकार का प्रतिशतइसका मतलब यह है कि ऑर्डर की संख्या निश्चित नहीं है, बल्कि खाते में कुल धनराशि के एक निश्चित प्रतिशत के आधार पर गणना की जाती है।

उदाहरण के लिए

  • खाते में 10,000 USDT हैं
  • जोखिम अनुपात को 5% पर सेट करें (जोखिम अनुपात = 0.05).
  • सिस्टम एक पोजीशन खोलने के लिए 500 USDT के कोटे का उपयोग करेगा।

मुख्य लाभ

  1. जोखिम को नियंत्रित करेंखाते में शेष राशि चाहे जो भी हो, प्रत्येक लेनदेन के लिए जोखिम एक निश्चित प्रतिशत होता है।
  2. उच्च पूंजी उपयोग दरजब खाते की धनराशि बदलती है, तो ऑर्डर की मात्रा स्वचालित रूप से समायोजित हो जाती है - धनराशि बढ़ने पर ऑर्डर की मात्रा बढ़ जाती है और धनराशि घटने पर तदनुसार घट जाती है।
  3. अत्यधिक अनुकूलनीयविभिन्न पूंजी आकारों के लिए उपयुक्त खाते

2.2 पूर्ण गणना तर्क और कोड कार्यान्वयन

चरण 1: खाता जानकारी प्राप्त करें

// 1. 获取账户信息
const accountInfo = exchange.GetAccount();
if (!accountInfo) {
    return [{ 
        json: { 
            success: false, 
            error: "获取账户信息失败" 
        } 
    }];
}

const availBalance = accountInfo.Balance; // 可用余额
Log("账户可用余额:", availBalance);

प्रमुख बिंदुBalanceयह फ़ील्ड उपलब्ध शेष राशि को दर्शाता है, जो गणना का आधार है।


चरण दो: बाजार की जानकारी प्राप्त करना

// 2. 获取市场信息
const symbol = $vars.coin + '_USDT.swap' || 'ETH_USDT.swap';
const allMarkets = exchange.GetMarkets();
const marketsInfo = allMarkets[symbol];

if (!marketsInfo) {
    return [{ 
        json: { 
            success: false, 
            error: `未找到交易对信息: ${symbol}` 
        } 
    }];
}

कोर पैरामीटर विवरण

  • CtValअनुबंध अंकित मूल्य (उदाहरण के लिए, ETH सतत अनुबंध का अंकित मूल्य 0.01 ETH है)
  • MinQtyन्यूनतम ऑर्डर मात्रा
  • MaxQtyअधिकतम ऑर्डर मात्रा
  • AmountPrecisionमात्रा परिशुद्धता
  • PricePrecisionमूल्य सटीकता

विशेष ध्यानयह सुनिश्चित कर लें कि जिस मुद्रा का आप व्यापार करना चाहते हैं, वह एक्सचेंज पर मौजूद है या नहीं।


चरण 3: वर्तमान मूल्य प्राप्त करें

// 3. 获取当前价格
const ticker = exchange.GetTicker(symbol);
if (!ticker) {
    return [{ 
        json: { 
            success: false, 
            error: "获取价格信息失败" 
        } 
    }];
}

const currentPrice = ticker.Last; // 最新成交价
Log("当前价格:", currentPrice);

चरण 4: अनुबंधों की संख्या की गणना करें

// 4. 计算合约张数
const riskRatio = $vars.riskRatio || 0.05; // 默认 5% 风险比例

// 步骤 1:计算风险金额
const riskAmount = availBalance * riskRatio;

// 步骤 2:计算币种数量
let coinQuantity = riskAmount / currentPrice;

// 步骤 3:转换为合约张数(因为期货交易用的是合约张数)
let contractQuantity = coinQuantity / marketsInfo.CtVal;

// 步骤 4:精度处理(确保下单数量符合交易所要求)
contractQuantity = _N(contractQuantity, marketsInfo.AmountPrecision);

Log("计算步骤:");
Log("- 风险金额:", riskAmount);
Log("- 币种数量:", coinQuantity);
Log("- 合约面值:", marketsInfo.CtVal);
Log("- 原始合约张数:", coinQuantity / marketsInfo.CtVal);
Log("- 精度处理后:", contractQuantity);

गणना सूत्रों का सारांश

合约张数 = (账户余额 × 风险比例 ÷ 当前价格) ÷ 合约面值

चरण 5: प्रतिबंधों की जाँच करें

// 5. 检查限制
if (contractQuantity < marketsInfo.MinQty) {
    return [{ 
        json: { 
            success: false, 
            error: `计算数量${contractQuantity}小于最小要求${marketsInfo.MinQty}`,
            calculatedQuantity: contractQuantity,
            minQty: marketsInfo.MinQty
        } 
    }];
}

if (contractQuantity > marketsInfo.MaxQty) {
    Log("数量超过最大限制,使用最大值:", marketsInfo.MaxQty);
    contractQuantity = marketsInfo.MaxQty;
}

Log("最终下单数量:", contractQuantity);

शुरुआती लोगों द्वारा की जाने वाली सामान्य गलतियाँ

  • ❌ न्यूनतम ऑर्डर मात्रा की जांच न करने के परिणामस्वरूप ऑर्डर विफल हो गया।
  • ❌ अनुचित परिशुद्धता हैंडलिंग के कारण एक्सचेंज द्वारा ऑर्डर अस्वीकार कर दिया जाता है।
  • ❌ अनुबंध अंकित मूल्य पर विचार नहीं किया गया, गणना त्रुटि।

अगर ऊपर दी गई सेटिंग्स गलत हैं, तो ऑर्डर फेल होने की सूचना दिखाई देगी। शुरुआती लोगों को इस बात पर खास ध्यान देने की ज़रूरत है।


III. लाभ लेने और स्टॉप लॉस सेटिंग्स का विस्तृत विवरण

व्यवहार में कार्यप्रवाह: इक्विटी प्रतिशत ऑर्डर और स्वचालित लाभ-प्राप्ति और हानि-रोक उपायों को आसानी से प्रबंधित करें

3.1 लाभ लेने और स्टॉप-लॉस का मुख्य तर्क

बहुत से लोग मुनाफ़ा कमाने और स्टॉप-लॉस की दिशा को लेकर भ्रमित रहते हैं। आइए इसे स्पष्ट करते हैं:

होल्डिंग्स का प्रकार लाभ लेने का कार्य स्टॉप लॉस ऑपरेशन
एकाधिक आदेश कीमतें बढ़ने पर पोजीशन बंद करने के लिए बेचें जब कीमतें गिरें तो पोजीशन बंद करने के लिए बेचें।
लघु स्थिति कीमतें गिरने पर पोजीशन बंद करने के लिए खरीदें कीमतें बढ़ने पर स्थिति को बंद करने के लिए खरीदें

प्रमुख बिंदुलाभ-प्राप्ति और स्टॉप-लॉस दोनोंसमापन ऑपरेशनदिशा, स्थिति की दिशा के विपरीत होनी चाहिए।


3.2 सशर्त एकल मापदंडों का विस्तृत विवरण

आविष्कारक मंच पर, उपयोग करेंCreateConditionOrderस्टॉप-लॉस और टेक-प्रॉफिट स्तर निर्धारित करने के लिए फ़ंक्शन:

वर्तमान में, FMZ प्लेटफॉर्म लाइव ट्रेडिंग में CreateConditionOrder सशर्त ऑर्डर का समर्थन करता है, लेकिन बैकटेस्टिंग अभी तक उनका समर्थन नहीं करता है।

  • CreateConditionOrder(symbol, side, amount, condition)
  • GetConditionOrder(id)
  • GetConditionOrders(symbol)
  • CancelConditionOrder(id)
  • GetHistoryConditionOrders(symbol, since, limit)
exchange.CreateConditionOrder(
    symbol,           // 交易对
    closeDirection,   // 平仓方向:closebuy 或 closesell
    positionSize,     // 平仓数量
    {
        "ConditionType": ORDER_CONDITION_TYPE_SL,  // 止损类型
        "SlTriggerPrice": stopLossPrice,           // 触发价格
        "SlOrderPrice": executionPrice             // 执行价格
    },
    "止损单"          // 订单备注
);

पैरामीटर विवरण

  • ऑपरेशन का प्रकार(closeDirection):

    • लंबे पदों को बंद करने के लिए उपयोग किया जाता हैclosebuy
    • शॉर्ट पोजीशन को बंद करने के लिए उपयोग किया जाता हैclosesell
  • ConditionType

    • ORDER_CONDITION_TYPE_SLझड़ने बंद
    • ORDER_CONDITION_TYPE_TPलाभ लेने के
  • ट्रिगरप्राइसजब यह मूल्य पहुँच जाए तो ऑर्डर सक्रिय करें।

  • ऑर्डर मूल्य (निष्पादन मूल्य)सक्रियण के बाद लेनदेन इसी मूल्य पर पूरा हो जाएगा।

सूचना:वर्तमान में, सशर्त आदेश केवल लाइव ट्रेडिंग में ही समर्थित हैं, और कस्टोडियन को अपडेट करने की आवश्यकता है।


3.3 स्टॉप-लॉस और टेक-प्रॉफिट कीमतों की गणना

कोड में, हम खुलने की दिशा के आधार पर गतिशील रूप से गणना करते हैं:

const stopLossPercent = 0.02;   // 2% 止损
const takeProfitPercent = 0.04; // 4% 止盈

if (openSide == 'openShort') {
    // 空仓:止损价格上涨,止盈价格下跌
    stopLossPrice = _N(entryPrice * (1 + stopLossPercent), pricePrecision);
    takeProfitPrice = _N(entryPrice * (1 - takeProfitPercent), pricePrecision);
} else {
    // 多仓:止损价格下跌,止盈价格上涨
    stopLossPrice = _N(entryPrice * (1 - stopLossPercent), pricePrecision);
    takeProfitPrice = _N(entryPrice * (1 + takeProfitPercent), pricePrecision);
}

Log("入场价格:", entryPrice);
Log("止损价格:", stopLossPrice);
Log("止盈价格:", takeProfitPrice);

3.4 सशर्त विवरणों का प्रबंधन और निगरानी

सशर्त कथनों को सेट करने के बाद, हमें उनका प्रबंधन और निगरानी भी करनी होगी:

// 查询条件单状态
const slOrder = exchange.GetConditionOrder(stopLossOrderId);
const tpOrder = exchange.GetConditionOrder(takeProfitOrderId);

Log("止损单状态:", slOrder.Status);
Log("止盈单状态:", tpOrder.Status);
Log("状态说明: 0=活跃, 1=已触发, -1=不存在");

राज्य प्रबंधन तर्क

if (slStatus == 1 && tpStatus == 0) {
    // 止损被触发,取消止盈单
    Log("🛑 止损单已触发,取消止盈单");
    exchange.CancelConditionOrder(takeProfitOrderId);
    _G('status', 'finished');
    
} else if (tpStatus == 1 && slStatus == 0) {
    // 止盈被触发,取消止损单
    Log("🎯 止盈单已触发,取消止损单");
    exchange.CancelConditionOrder(stopLossOrderId);
    _G('status', 'finished');
    
} else if (slStatus == 0 && tpStatus == 0) {
    // 两个单都还活跃,继续监控
    Log("⏳ 止盈止损单都活跃,继续监控");
}

महत्वपूर्ण कार्य

  • आविष्कारक मंच प्रदान करता हैGetConditionOrderयह फ़ंक्शन आपको सभी सशर्त आदेशों की वर्तमान स्थिति देखने की अनुमति देता है।
  • यदि एक तरफ लाभ लेने या हानि रोकने का आदेश दिया जाता है, तो विपरीत दिशा में सशर्त आदेश को तुरंत रद्द कर दिया जाना चाहिए।
  • इसका उपयोग किया जा सकता हैCancelConditionOrderफ़ंक्शन को इनपुट के रूप में केवल ऑर्डर नंबर की आवश्यकता होती है।

ध्यान दें

  • यह सुनिश्चित करने के लिए कि सशर्त आदेश सही ढंग से कार्य कर रहे हैं, उनकी स्थिति की नियमित रूप से जांच करने की सिफारिश की जाती है।
  • कभी-कभी बाजार में उतार-चढ़ाव बहुत तेजी से होता है, और सशर्त आदेश समय पर निष्पादित नहीं हो पाते, ऐसी स्थिति में मैन्युअल प्रसंस्करण आवश्यक होता है।

IV. संपूर्ण वर्कफ़्लो का एकीकरण

4.1 लेनदेन स्थिति प्रबंधन

प्रदर्शन कार्यप्रवाह में, हम संपूर्ण लेनदेन चक्र को प्रबंधित करने के लिए स्टेट मशीन का उपयोग करते हैं:

const savestatus = _G('status');

// 初始化状态
if (!savestatus) {
    _G('status', 'unfinished');
}

तीन राज्य

  1. unfinishedअभी तक कोई पद रिक्त नहीं है; पद खोलने की प्रक्रिया पूरी होनी चाहिए।
  2. monitorपोजीशन खोल दी गई है और स्टॉप-लॉस और टेक-प्रॉफिट ऑर्डर निर्धारित कर दिए गए हैं; अब निगरानी चरण में हैं।
  3. finishedलेन-देन पूर्ण हो गया, स्थिति रीसेट करने की तैयारी चल रही है।

4.2 पूर्ण लेनदेन प्रक्रिया

स्टॉप-लॉस और टेक-प्रॉफिट ऑर्डर के साथ इक्विटी प्रतिशत ऑर्डर को एकीकृत करके, हमारे पास एक पूर्ण ट्रेडिंग वर्कफ़्लो है:

प्रवाह चार्ट

计算下单数量 → 执行开仓 → 设置止盈止损 → 监控持仓 → 交易完成

कोड कार्यान्वयन

// 状态1: 执行开仓
if (positionData.status == 'unfinished') {
    // 1. 开仓下单
    const openOrder = exchange.CreateOrder(symbol, dir, -1, positionSize);
    
    // 2. 等待订单成交
    Sleep(3000);
    const openOrderInfo = exchange.GetOrder(openOrder);
    
    // 3. 订单成交后设置止盈止损
    if (openOrderInfo.Status == ORDER_STATE_CLOSED) {
        const stopLossOrderId = exchange.CreateConditionOrder(...);
        const takeProfitOrderId = exchange.CreateConditionOrder(...);
        
        // 4. 保存订单ID并切换到监控状态
        _G('stopLossOrderId', stopLossOrderId);
        _G('takeProfitOrderId', takeProfitOrderId);
        _G('status', 'monitor');
    }
}

// 状态2: 监控止盈止损
if (positionData.status == 'monitor') {
    // 检查条件单状态,处理触发情况
    // ...
}

// 状态3: 交易完成
if (positionData.status == 'finished') {
    _G('status', 'unfinished'); // 重置状态,准备下次交易
}

पूरी प्रक्रिया के लाभ

  • यह व्यक्तिगत लेनदेन के जोखिम को नियंत्रित करता है (इक्विटी प्रतिशत के माध्यम से)।
  • इसके अलावा, मुनाफे की सुरक्षा और नुकसान को सीमित करने के लिए स्वचालित स्टॉप-लॉस और टेक-प्रॉफिट ऑर्डर का उपयोग किया जाता है।
  • संपूर्ण प्रक्रिया को प्रोग्रामेटिक रूप से क्रियान्वित किया जाता है, जिससे मानवीय हस्तक्षेप कम होता है और लेन-देन की स्थिरता में सुधार होता है।

V. जोखिम नियंत्रण के लिए सर्वोत्तम अभ्यास

5.1 पैरामीटर सेटिंग अनुशंसाएँ

जोखिम अनुपात

  • शुरुआती सुझाव: 2-3%
  • अनुभवी: 5-10%
  • लालची मत बनो और इसे बहुत अधिक मत रखो।अपनी जोखिम सहनशीलता के अनुसार सेट करें

लाभ-प्राप्ति और हानि-समाप्ति अनुपात

  • स्टॉप लॉस: 1-3% (मुद्रा अस्थिरता के अनुसार समायोजित करें)
  • लाभ लें: 2-6% (आमतौर पर स्टॉप लॉस का 1.5-2 गुना)।
  • विभिन्न मुद्राओं की विशेषताओं के अनुसार इसे उचित रूप से निर्धारित करना आवश्यक है।

5.2 परीक्षण और सत्यापन

पूर्ण परीक्षण चेकलिस्ट

  • ✅ क्या गणना की गई मात्रा सही है?
  • ✅ क्या स्टॉप-लॉस और टेक-प्रॉफिट मूल्य उचित हैं?
  • ✅ क्या सशर्त आदेश सही ढंग से ट्रिगर किया गया है?
  • ✅ क्या राज्य स्विचिंग सही है?
  • ✅ क्या असामान्य परिस्थितियों से निपटना पर्याप्त है?

परीक्षण प्रक्रिया

  1. सबसे पहले, परीक्षण वातावरण में सभी तर्कों को सत्यापित करें।
  2. छोटी सी पूंजी का उपयोग करके लाइव ट्रेडिंग परीक्षण आयोजित करें।
  3. यह सुनिश्चित करने के बाद ही औपचारिक धन का निवेश करें कि कोई समस्या नहीं है।

याद करना: पूरी तरह से परीक्षण के बाद ही इसे लाइव ट्रेडिंग में डाला जाना चाहिए; यह मात्रात्मक व्यापार का एक मौलिक सिद्धांत है।


VI. निष्कर्ष

ठीक है, इक्विटी प्रतिशत ऑर्डर प्लेसमेंट और स्टॉप-लॉस/टेक-प्रॉफिट सेटिंग्स पर आज की चर्चा यहीं समाप्त होती है। यह वर्कफ़्लो जोखिम नियंत्रण को स्वचालित निष्पादन के साथ जोड़ता है, जिससे हमारा व्यापार और अधिक मानकीकृत हो जाता है। हालाँकि, हर किसी की ट्रेडिंग शैली और जोखिम सहनशीलता अलग-अलग होती है, इसलिए अपनी परिस्थितियों के अनुसार मापदंडों को समायोजित करना याद रखें। यदि आपको उपयोग के दौरान कोई समस्या आती है, या मात्रात्मक व्यापार के बारे में कोई अन्य प्रश्न हैं, तो कृपया परामर्श और चर्चा के लिए हमसे बेझिझक संपर्क करें। आइए, साथ मिलकर अन्वेषण करें और सुधार करें।

स्रोत कोड संदर्भ: https://www.fmz.com/strategy/516459