وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ای ایم اے فلٹر کے ساتھ کراس مارکیٹ اوور نائٹ پوزیشن کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-11-12 10:49:00
ٹیگز:ای ایم اےایم اے

img

یہ حکمت عملی ای ایم اے کے تکنیکی اشارے پر مبنی ایک کراس مارکیٹ اوور نائٹ پوزیشن کی حکمت عملی ہے ، جس کا مقصد مارکیٹ بند ہونے سے پہلے اور مارکیٹ کھولنے کے بعد تجارتی مواقع کو حاصل کرنا ہے۔ حکمت عملی درست وقت کنٹرول اور تکنیکی اشارے فلٹرنگ کے ذریعے مختلف مارکیٹ ماحول میں ذہین تجارت کو حاصل کرتی ہے۔

حکمت عملی کا جائزہ

یہ حکمت عملی بنیادی طور پر مارکیٹ بند ہونے سے پہلے مخصوص اوقات میں داخل ہوکر اور اگلے دن کی مارکیٹ کھلنے کے بعد مخصوص اوقات میں باہر نکل کر منافع حاصل کرتی ہے۔ رجحان کی تصدیق کے لئے ای ایم اے اشارے کے ساتھ مل کر ، یہ متعدد عالمی منڈیوں (امریکہ ، ایشیاء ، یورپ) میں تجارتی مواقع تلاش کرتی ہے۔ یہ حکمت عملی بغیر نگرانی کے آپریشن کے لئے خودکار تجارتی فعالیت کو بھی مربوط کرتی ہے۔

حکمت عملی کا اصول

  1. ٹائم کنٹرول: مختلف مارکیٹ ٹریڈنگ اوقات کی بنیاد پر بند ہونے سے پہلے مقررہ اوقات میں داخل ہونا اور کھولنے کے بعد مقررہ اوقات میں باہر نکلنا
  2. ای ایم اے فلٹرنگ: داخلہ سگنل کی توثیق کے لئے اختیاری ای ایم اے اشارے استعمال کریں
  3. مارکیٹ کا انتخاب: امریکی ، ایشیائی اور یورپی منڈیوں کے لئے تجارتی وقت کی موافقت کی حمایت کریں
  4. اختتام ہفتہ تحفظ: اختتام ہفتہ کے خطرات سے بچنے کے لئے جمعہ کے اختتام سے پہلے پوزیشن کو بند کرنے کے لئے مجبور کریں

حکمت عملی کے فوائد

  1. کثیر مارکیٹ موافقت: مختلف مارکیٹ کی خصوصیات کے مطابق تجارت کے اوقات کی لچکدار ایڈجسٹمنٹ
  2. جامع رسک کنٹرول: ہفتے کے آخر میں پوزیشن بند کرنے کے تحفظ کا طریقہ کار بھی شامل ہے
  3. اعلی آٹومیشن کی سطح: خودکار تجارتی انٹرفیس انضمام کی حمایت کرتا ہے
  4. لچکدار پیرامیٹرز: تجارتی اوقات اور تکنیکی اشارے کے پیرامیٹرز کی تخصیص
  5. ٹریڈنگ لاگت پر غور: کمیشن اور سلائیپج کی ترتیبات شامل ہیں

حکمت عملی کے خطرات

  1. مارکیٹ میں اتار چڑھاؤ کا خطرہ: راتوں رات کی پوزیشنوں میں فرق کا خطرہ ہوسکتا ہے
  2. وقت پر انحصار: مارکیٹ کے وقت کے انتخاب سے متاثرہ حکمت عملی کی تاثیر
  3. تکنیکی اشارے کی حدود: واحد ای ایم اے اشارے میں تاخیر ظاہر ہوسکتی ہے تجاویز: سٹاپ نقصان کی حد مقرر کریں، توثیق کے لئے مزید تکنیکی اشارے شامل کریں

حکمت عملی کی اصلاح کی ہدایات

  1. مزید تکنیکی اشارے کے مجموعے شامل کریں
  2. اتار چڑھاؤ فلٹرنگ میکانزم متعارف کروانا
  3. داخلہ اور باہر نکلنے کے وقت کے انتخاب کو بہتر بنائیں
  4. موافقت پذیر پیرامیٹر ایڈجسٹمنٹ کی فعالیت شامل کریں
  5. خطرہ کنٹرول ماڈیول کو بہتر بنائیں

خلاصہ

یہ حکمت عملی عین مطابق وقت کے کنٹرول اور تکنیکی اشارے فلٹرنگ کے ذریعے ایک قابل اعتماد راتوں رات ٹریڈنگ سسٹم حاصل کرتی ہے۔ حکمت عملی کے ڈیزائن میں عملی ضروریات پر جامع طور پر غور کیا گیا ہے ، جس میں کثیر مارکیٹ موافقت ، رسک کنٹرول ، اور خودکار تجارتی عناصر شامل ہیں ، جس سے عملی قدر کا مظاہرہ ہوتا ہے۔ مسلسل اصلاح اور بہتری کے ذریعے ، اس حکمت عملی میں لائیو ٹریڈنگ میں مستحکم منافع حاصل کرنے کی صلاحیت ہے۔


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

// This strategy, titled "Overnight Market Entry Strategy with EMA Filter," is designed for entering long positions shortly before 
// the market closes and exiting shortly after the market opens. The strategy allows for selecting between different global market sessions (US, Asia, Europe) and 
// uses an optional EMA (Exponential Moving Average) filter to validate entry signals. The core logic is to enter trades based on conditions set for a specified period before 
// the market close and to exit trades either after a specified period following the market open or just before the weekend close. 
// Additionally, 3commas bot integration is included to automate the execution of trades. The strategy dynamically adjusts to market open and close times, ensuring trades are properly timed based on the selected market. 
// It also includes a force-close mechanism on Fridays to prevent holding positions over the weekend.

//@version=5
strategy("Overnight Positioning with EMA Confirmation - Strategy [presentTrading]", overlay=true, precision=3, commission_value=0.02, commission_type=strategy.commission.percent, slippage=1, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)

// Input parameters
entryMinutesBeforeClose = input.int(20, title="Minutes Before Close to Enter", minval=1)
exitMinutesAfterOpen = input.int(20, title="Minutes After Open to Exit", minval=1)
emaLength = input.int(100, title="EMA Length", minval=1)
emaTimeframe = input.timeframe("240", title="EMA Timeframe")
useEMA = input.bool(true, title="Use EMA Filter")

// Market Selection Input
marketSelection = input.string("US", title="Select Market", options=["US", "Asia", "Europe"])

// Timezone for each market
marketTimezone = marketSelection == "US" ? "America/New_York" :
                 marketSelection == "Asia" ? "Asia/Tokyo" :
                 "Europe/London"  // Default to London for Europe

// Market Open and Close Times for each market
var int marketOpenHour = na
var int marketOpenMinute = na
var int marketCloseHour = na
var int marketCloseMinute = na

if marketSelection == "US"
    marketOpenHour := 9
    marketOpenMinute := 30
    marketCloseHour := 16
    marketCloseMinute := 0
else if marketSelection == "Asia"
    marketOpenHour := 9
    marketOpenMinute := 0
    marketCloseHour := 15
    marketCloseMinute := 0
else if marketSelection == "Europe"
    marketOpenHour := 8
    marketOpenMinute := 0
    marketCloseHour := 16
    marketCloseMinute := 30

// 3commas Bot Settings
emailToken = input.string('', title='Email Token', group='3commas Bot Settings')
long_bot_id = input.string('', title='Long Bot ID', group='3commas Bot Settings')
usePairAdjust = input.bool(false, title='Use this pair in PERP', group='3commas Bot Settings')
selectedExchange = input.string("Binance", title="Select Exchange", group='3commas Bot Settings', options=["Binance", "OKX", "Gate.io", "Bitget"])

// Determine the trading pair based on settings
var pairString = ""
if usePairAdjust
    pairString := str.tostring(syminfo.currency) + "_" + str.tostring(syminfo.basecurrency) + (selectedExchange == "OKX" ? "-SWAP" : "") 
else
    pairString := str.tostring(syminfo.currency) + "_" + str.tostring(syminfo.basecurrency)

// Function to check if it's a trading day (excluding weekends)
isTradingDay(t) =>
    dayOfWeek = dayofweek(t, marketTimezone)
    dayOfWeek >= dayofweek.monday and dayOfWeek <= dayofweek.friday

// Function to get the timestamp for market open and close times
getMarketTimes(t) =>
    y = year(t, marketTimezone)
    m = month(t, marketTimezone)
    d = dayofmonth(t, marketTimezone)
    marketOpenTime = timestamp(marketTimezone, y, m, d, marketOpenHour, marketOpenMinute, 0)
    marketCloseTime = timestamp(marketTimezone, y, m, d, marketCloseHour, marketCloseMinute, 0)
    [marketOpenTime, marketCloseTime]

// Get the current time in the market's timezone
currentTime = time

// Calculate market times
[marketOpenTime, marketCloseTime] = getMarketTimes(currentTime)

// Calculate entry and exit times
entryTime = marketCloseTime - entryMinutesBeforeClose * 60 * 1000
exitTime = marketOpenTime + exitMinutesAfterOpen * 60 * 1000

// Get EMA data from the specified timeframe
emaValue = request.security(syminfo.tickerid, emaTimeframe, ta.ema(close, emaLength))

// Entry condition with optional EMA filter
longCondition = close > emaValue or not useEMA

// Functions to create JSON strings
getEnterJson() =>
    '{"message_type": "bot", "bot_id": "' + long_bot_id + '", "email_token": "' + emailToken + '", "delay_seconds": 0, "pair": "' + pairString + '"}'

getExitJson() =>
    '{"action": "close_at_market_price", "message_type": "bot", "bot_id": "' + long_bot_id + '", "email_token": "' + emailToken + '", "delay_seconds": 0, "pair": "' + pairString + '"}'

// Entry Signal
entrySignal = isTradingDay(currentTime) and currentTime >= entryTime and currentTime < marketCloseTime and dayofweek(currentTime, marketTimezone) != dayofweek.friday

// Exit Signal
exitSignal = isTradingDay(currentTime) and currentTime >= exitTime and currentTime < marketCloseTime

// Entry Logic
if strategy.position_size == 0 and longCondition
    strategy.entry("Long", strategy.long, alert_message=getEnterJson())

// Exit Logic
if  strategy.position_size > 0
    strategy.close("Long", alert_message=getExitJson())

// Force Close Logic on Friday before market close
isFriday = dayofweek(currentTime, marketTimezone) == dayofweek.friday
if  strategy.position_size > 0  // Close 5 minutes before market close on Friday
    strategy.close("Long", comment="Force close on Friday before market close", alert_message=getExitJson())

// Plotting entry and exit points
plotshape( strategy.position_size == 0 and longCondition, title="Entry", text="Entry", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape( strategy.position_size > 0, title="Exit", text="Exit", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

// Plot EMA for reference
plot(useEMA ? emaValue : na, title="EMA", color=color.blue)


متعلقہ

مزید