EMA اشارے کی بنیاد پر کراس مارکیٹ طویل اور مختصر رجحان راتوں رات پوزیشن کی حکمت عملی

EMA MA
تخلیق کی تاریخ: 2024-11-12 10:49:00 آخر میں ترمیم کریں: 2024-11-12 10:49:00
کاپی: 2 کلکس کی تعداد: 483
1
پر توجہ دیں
1617
پیروکار

EMA اشارے کی بنیاد پر کراس مارکیٹ طویل اور مختصر رجحان راتوں رات پوزیشن کی حکمت عملی

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

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

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

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

  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)