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فنکشن کو صرف ان پٹ کے طور پر آرڈر نمبر کی ضرورت ہوتی ہے۔

نوٹ کریں

  • مشروط آرڈرز کی صورتحال کو باقاعدگی سے چیک کرنے کی سفارش کی جاتی ہے تاکہ یہ یقینی بنایا جا سکے کہ وہ صحیح طریقے سے کام کر رہے ہیں۔
  • بعض اوقات مارکیٹ میں اتار چڑھاو بہت تیز ہوتا ہے، اور مشروط احکامات کو وقت پر عمل میں نہیں لایا جا سکتا ہے، ایسی صورت میں دستی پروسیسنگ ضروری ہے۔

چہارم مکمل ورک فلو کا انضمام

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