
اس حکمت عملی کا بنیادی نظریہ یہ ہے کہ ایشیائی ڈسک کی اونچائی اور نچلی سطح کو توڑنے کے طور پر استعمال کیا جائے ، یوروپین اور امریکی ڈسک کھولنے کے چند گھنٹوں کے اندر اندر ، اگر قیمت ایشیائی ڈسک کی اونچائی کو توڑ دیتی ہے تو ، اور ایشیائی ڈسک کی نچلی سطح کو توڑنے پر ، خالی ہوجائیں۔ جبکہ اسٹاپ نقصان اور اسٹاپ کو ترتیب دیں ، اور خطرے پر قابو پالیں۔ اس حکمت عملی میں روزانہ صرف ایک ہی تجارت کی جاتی ہے ، اور ایک ہی وقت میں زیادہ سے زیادہ کھلی پوزیشن 100000 ہے۔
یہ حکمت عملی ایشیائی شیٹ کی اونچائی اور نچلی سطح کو توڑنے کے نقطہ کے طور پر استعمال کرتی ہے اور یوروپی اور امریکی شیٹ کی رجحانات کی زیادہ واضح قسم پر استعمال کے لئے موزوں ہے۔ تاہم ، فکسڈ پوائنٹ اسٹاپ نقصانات کی روک تھام اور معیاری توڑنے والے داخلے کے طریقوں میں بھی کچھ حدود ہیں۔ کچھ متحرک اور رجحان ساز اشارے متعارف کرانے سے اس حکمت عملی کو بہتر بنایا جاسکتا ہے تاکہ بہتر نتائج برآمد ہوسکیں۔
/*backtest
start: 2024-02-27 00:00:00
end: 2024-03-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Asia Session", overlay=true)
var hourSessionStart = input(19, "Asia session start hour", minval=0, maxval=23)
var hourSessionStop = input(1, "Asia session end hour", minval=0, maxval=23)
var offsetHours = input(3, "Offset hours after Asia session end")
var float hi = na
var float lo = na
var float plotHi = na
var float plotLo = na
var bool inSession = na
var bool enteringSession = na
var bool exitingSession = na
inSession := (hour >= hourSessionStart or hour < hourSessionStop)
enteringSession := inSession and not inSession[1]
exitingSession := not inSession and inSession[1]
if enteringSession
plotLo := na
plotHi := na
if inSession
lo := min(low, nz(lo, 1.0e23))
hi := max(high, nz(hi))
if exitingSession
plotLo := lo
plotHi := hi
lo := na
hi := na
bgcolor(inSession ? color.blue : na)
plot(plotLo, "Asia session Low", color.red, style=plot.style_linebr)
plot(plotHi, "Asia session High", color.green, style=plot.style_linebr)
// Implementazione delle condizioni di entrata
var float asiaSessionLow = na
var float asiaSessionHigh = na
var int maxTrades = 100000 // Impostiamo il massimo numero di operazioni contemporanee
var int tradesOpened = 0 // Variabile per tenere traccia del numero di operazioni aperte
var bool tradeOpened = false
var bool operationClosed = false // Nuova variabile per tenere traccia dello stato di chiusura dell'operazione
// Calcolo del range asiatico
if (inSession)
asiaSessionLow := lo
asiaSessionHigh := hi
// Apertura di un solo trade al giorno
if (enteringSession)
tradeOpened := false
// Condizioni di entrata
var float stopLoss = 300 * syminfo.mintick
var float takeProfit = 300 * syminfo.mintick
if (not tradeOpened and not operationClosed and close < asiaSessionLow and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
strategy.entry("Buy", strategy.long)
tradeOpened := true
tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte
if (not tradeOpened and not operationClosed and close > asiaSessionHigh and tradesOpened < maxTrades and hour >= hourSessionStop + offsetHours)
strategy.entry("Sell", strategy.short)
tradeOpened := true
tradesOpened := tradesOpened + 1 // Incrementiamo il contatore delle operazioni aperte
// Impostazione dello stop loss e del take profit
strategy.exit("Stop Loss / Take Profit", "Buy", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Stop Loss / Take Profit", "Sell", stop=close + stopLoss, limit=close - takeProfit)