Job finished
Execution time 4 days
Specification
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Hiubris_Indicators
//@version=5
strategy(title = "TTS EMA STC Strategy", overlay = true, default_qty_value = 100, initial_capital=100000,default_qty_type=strategy.percent_of_equity, pyramiding=0, process_orders_on_close=true)
// TTS
Length = input.int(21, minval=1, group=' Trend Trader')
Multiplier = input.float(3, minval=0.000001, group=' Trend Trader')
tts(Length, Multiplier) =>
avgTR = ta.wma(ta.atr(1), Length)
highestC = ta.highest(Length)
lowestC = ta.lowest(Length)
hiLimit = highestC[1] - avgTR[1] * Multiplier
loLimit = lowestC[1] + avgTR[1] * Multiplier
ret = 0.0
poz = 0.0
iff_1 = close < loLimit and close < hiLimit ? loLimit : nz(ret[1], close)
ret := close > hiLimit and close > loLimit ? hiLimit : iff_1
iff_2 = close < ret ? -1 : nz(poz[1], 0)
poz := close > ret ? 1 : iff_2
ret
TTS = tts(Length, Multiplier)
//barcolor(poz == -1 ? color.red : poz == 1 ? color.green : color.blue)
plot(TTS, color=color.new(color.blue, 0), title='Trend Trader Line')
// MA
ribbon_grp = "MA"
ma(source, length, type) =>
type == "SMA" ? ta.sma(source, length) :
type == "EMA" ? ta.ema(source, length) :
type == "SMMA (RMA)" ? ta.rma(source, length) :
type == "WMA" ? ta.wma(source, length) :
type == "VWMA" ? ta.vwma(source, length) :
na
ma1_type = input.string("EMA" , "MA" , inline="MA #1", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group=ribbon_grp)
ma1_source = input.source(close , "" , inline="MA #1", group=ribbon_grp)
ma1_length = input.int (200 , "" , inline="MA #1", minval=1, group=ribbon_grp)
ma1 = ma(ma1_source, ma1_length, ma1_type)
plot(ma1, color = color.white, title="MA")
// STC
EEEEEE = input(12, 'Length', group='STC')
BBBB = input(26, 'FastLength', group='STC')
BBBBB = input(50, 'SlowLength', group='STC')
max_stc_change = input(7, title="Max STC Slope Change")
min_stc_bars = input(2, title='Min STC Squeeze')
AAAA(BBB, BBBB, BBBBB) =>
fastMA = ta.ema(BBB, BBBB)
slowMA = ta.ema(BBB, BBBBB)
AAAA = fastMA - slowMA
AAAA
AAAAA(EEEEEE, BBBB, BBBBB) =>
AAA = input(0.5)
var CCCCC = 0.0
var DDD = 0.0
var DDDDDD = 0.0
var EEEEE = 0.0
BBBBBB = AAAA(close, BBBB, BBBBB)
CCC = ta.lowest(BBBBBB, EEEEEE)
CCCC = ta.highest(BBBBBB, EEEEEE) - CCC
CCCCC := CCCC > 0 ? (BBBBBB - CCC) / CCCC * 100 : nz(CCCCC[1])
DDD := na(DDD[1]) ? CCCCC : DDD[1] + AAA * (CCCCC - DDD[1])
DDDD = ta.lowest(DDD, EEEEEE)
DDDDD = ta.highest(DDD, EEEEEE) - DDDD
DDDDDD := DDDDD > 0 ? (DDD - DDDD) / DDDDD * 100 : nz(DDDDDD[1])
EEEEE := na(EEEEE[1]) ? DDDDDD : EEEEE[1] + AAA * (DDDDDD - EEEEE[1])
EEEEE
stc = AAAAA(EEEEEE, BBBB, BBBBB)
mColor = stc > stc[1] ? color.new(color.green, 20) : color.new(color.red, 20)
//plot(stc, color=mColor, title='STC', linewidth=2)
check_all_prev(formula, length) =>
check = false
for i=0 to length-1
check := check or formula[i]
check
stc_change = math.abs(stc-stc[1])
// Trading Session
session = input.session("0000-0000", title="Trading Session (Exchange Timezone)")+":1234567"
t = time(timeframe.period, session)
trading_session_filter = na(t) ? 0 : 1
long = close>TTS and TTS>ma1 and stc>stc[1] and stc[1]<stc[2] and stc[1]<1 and stc_change<=max_stc_change and check_all_prev(stc[1]<1 , min_stc_bars)[1] and trading_session_filter
short = close<TTS and TTS<ma1 and stc<stc[1] and stc[1]>stc[2] and stc[1]>99 and stc_change<=max_stc_change and check_all_prev(stc[1]>99, min_stc_bars)[1] and trading_session_filter
// Position Management Tools
pos = 0.0
pos:= long? 1 : short? -1 : pos[1]
longCond = long and (pos[1]!= 1 or na(pos[1]))
shortCond = short and (pos[1]!=-1 or na(pos[1]))
// EXIT FUNCTIONS //
i_sl = input.float(80.0, title="Stop Loss (Ticks)", minval=0)
i_tp = input.float(80.0, title="Take Profit (Ticks)", minval=0)
i_tsl = input.float(40.0, title="Trailing Stop Loss (Ticks)", minval=0)
i_tsltp = input.float(40.0, title="Trailing SL Trigger" , minval=0, step=0.1)
sl = i_sl >0? i_sl *syminfo.mintick : 99999
tp = i_tp >0? i_tp *syminfo.mintick : 99999
tsl = i_tsl>0? i_tsl*syminfo.mintick : 99999
long_entry = ta.valuewhen(longCond , close, 0)
short_entry = ta.valuewhen(shortCond, close, 0)
// Inprofit
be_long = ta.valuewhen(longCond , close + i_tsltp*syminfo.mintick, 0)
be_short = ta.valuewhen(shortCond, close - i_tsltp*syminfo.mintick, 0)
inprofit_long = 0
inprofit_short = 0
inprofit_long := pos==0 or longCond ? 0 : high>be_long [1]? 1 : inprofit_long[1]
inprofit_short := pos==0 or shortCond? 0 : low <be_short[1]? 1 : inprofit_short[1]
// Trailing Stop Loss
trail_long = 0.0, trail_short = 0.0
trail_long := longCond? high : high>trail_long[1]? high : pos<1 ? 0 : trail_long[1]
trail_short := shortCond? low : low<trail_short[1]? low : pos>-1 ? 99999 : trail_short[1]
trail_long_final = inprofit_long ? trail_long -tsl : 0
trail_short_final = inprofit_short ? trail_short +tsl : 99999
// Simple Stop Loss + 2 Take Profits
sl_long0 = long_entry - sl
sl_short0 = short_entry + sl
tp_long = long_entry + tp
tp_short = short_entry - tp
sl_long = math.max(sl_long0, trail_long_final)
sl_short = math.min(sl_short0, trail_short_final)
sl_long_entry = ta.valuewhen(longCond , sl_long , 0)
sl_short_entry = ta.valuewhen(shortCond, sl_short, 0)
// Position Adjustment
long_sl = low <sl_long[1] and pos[1]==1
short_sl = high>sl_short[1] and pos[1]==-1
final_long_tp = high>tp_long[1] and pos[1]==1
final_short_tp = low <tp_short[1] and pos[1]==-1
if ((long_sl or final_long_tp) and not shortCond) or ((short_sl or final_short_tp) and not longCond)
pos:=0
// Strategy Backtest Limiting Algorithm
i_startTime = input.time(defval = timestamp("01 Sep 2002 13:30 +0000"), title = "Backtesting Start Time")
i_endTime = input.time(defval = timestamp("30 Sep 2099 19:30 +0000"), title = "Backtesting End Time" )
timeCond = (time > i_startTime) and (time < i_endTime)
// RISK
risk_perc = input(1.0, title="Risk Percentage")/100
SL_valueL = ta.valuewhen(longCond , math.abs(close-sl_long ), 0)
SL_valueS = ta.valuewhen(shortCond, math.abs(close-sl_short), 0)
dollar_risk = (strategy.initial_capital + strategy.netprofit) * risk_perc
QTY_L = dollar_risk / SL_valueL
QTY_S = dollar_risk / SL_valueS
equity = strategy.initial_capital + strategy.netprofit
if equity>0 and timeCond
if longCond
strategy.entry("long" , strategy.long , qty=QTY_L)
if shortCond
strategy.entry("short", strategy.short, qty=QTY_S)
strategy.exit("SL/TP", from_entry = "long" , stop=sl_long , limit=tp_long )
strategy.exit("SL/TP", from_entry = "short", stop=sl_short, limit=tp_short)
show_sltp = input(true, title="Show SL/TP Lines on Chart")
xtl=plot(show_sltp and pos== 1? tp_long : na, color=color.green, style=plot.style_linebr, title="TP Long ")
xts=plot(show_sltp and pos==-1? tp_short : na, color=color.green, style=plot.style_linebr, title="TP Short")
xsl=plot(show_sltp and pos== 1? sl_long_entry : na, color=color.red , style=plot.style_linebr, title="SL Long ")
xss=plot(show_sltp and pos==-1? sl_short_entry : na, color=color.red , style=plot.style_linebr, title="SL Short")
xel=plot(show_sltp and pos== 1?long_entry : na, color=color.blue , style=plot.style_linebr, title="E Long ")
xes=plot(show_sltp and pos==-1?short_entry: na, color=color.blue , style=plot.style_linebr, title="E Short")
fill(xel, xtl, color=color.new(color.green, 80))
fill(xel, xsl, color=color.new(color.red , 80))
fill(xes, xts, color=color.new(color.green, 80))
fill(xes, xss, color=color.new(color.red , 80))
plot(show_sltp and pos== 1 and i_tsl>0? sl_long : na, color=color.red , style=plot.style_linebr, title="Trailing SL Long ")
plot(show_sltp and pos==-1 and i_tsl>0? sl_short : na, color=color.red , style=plot.style_linebr, title="Trailing SL Short")
alerts = input.string("PineConnector", title="Alerts Messages:", options=['PineConnector', 'Custom'], group='ALERT SELECTOR')
pc_id = input.string(title="License ID", defval="1236518421235", group='PineConnector Settings', tooltip="This is your PineConnector license ID")
pc_prefix = input.string(title="MetaTrader Prefix", defval="", group='PineConnector Settings', tooltip="This is your broker's MetaTrader symbol prefix")
pc_suffix = input.string(title="MetaTrader Suffix", defval="", group='PineConnector Settings', tooltip="This is your broker's MetaTrader symbol suffix")
pc_risk = input.float(minval=0, maxval=100, step=1, defval=1, group='PineConnector Settings', title="Risk %", tooltip="This is how much to risk per trade in Meta Trader")
var symbol = pc_prefix + syminfo.ticker + pc_suffix
pc_entry_alert(direction) =>
pc_id + "," + direction + "," + symbol + "," + "sl=" + str.tostring(i_sl/10, '#') + ",tp=" + str.tostring(i_tp/10, '#') + ',trailtrig=' + str.tostring(i_tsltp/10, '#') + ',traildist=' + str.tostring(i_tsl/10, '#') + ',trailstep=' + str.tostring(1) + ",risk=" + str.tostring(pc_risk)
if alerts=='PineConnector'
if longCond
alert(pc_entry_alert('buy'), alert.freq_once_per_bar_close)
if shortCond
alert(pc_entry_alert('sell'), alert.freq_once_per_bar_close)
longCond_txt = input("", title='Custom Alert Msg: LONG Entry' , group='Custom Alert Messages', inline='longCond_txt ')
shortCond_txt = input("", title='Custom Alert Msg: SHORT Entry', group='Custom Alert Messages', inline='shortCond_txt ')
if alerts=='Custom'
if longCond
alert(longCond_txt, alert.freq_once_per_bar_close)
if shortCond
alert(shortCond_txt, alert.freq_once_per_bar_close)
Responded
1
Rating
Projects
340
71%
Arbitration
6
50%
/
33%
Overdue
20
6%
Loaded
Similar orders
I have a simple strategy I’d like someone to convert into a mt4 and mt5 ea for me please , just using vwap(volume weighted average profile) and price action with a few simple rules
Project Description: I am looking for an experienced developer to create an Expert Advisor (EA) compatible with both MT4 and MT5 with the following functionalities: 1. Capital and Position Sizing Management: Automatically calculate and determine the appropriate trade size based on account balance and predefined risk parameters. Enforce strict capital management rules to prevent excessive exposure and control overall
I need To EA Mt5 Hedging and cooling
30 - 100 USD
I need an MQL5 Expert Advisor that includes a trailing stop in dollars with step control, basket profit and loss in dollars, daily profit and loss targets in dollars, a time filter, and a magic number for trade identification. The EA should be fully customizable and optimized for accuracy
I’m seeking an experienced and reliable MQL5 developer to build a custom MT5 Hedge Trade Copier with the following core features: Two Modes in One EA : Sender (prop/challenge) & Receiver (live hedge) Custom Hedge Lot Formula (based on account size, max loss %, or fixed amount) Secure Authentication System (HTTP license server check) CSV-based Trade Bridge (no sockets/DLLs) Duplicate Trade Protection and error
Bollinger bands, RSI and SMA EA
30 - 100 USD
Required Indi: BB Band: Period 21, Deviations 2.000 SMA: 21 in H1 timeframe RSI: Period 7 Timeframe: M5 Pair: XAUUSD, USDJPY, GBPJPY, EURJPY, AUDJPY, CHFJPY, GBPUSD Trading rules: #A In H1 timeframe, when price goes above the 21 SMA then looking for buy opportunity and when price goes below to 21 SMA, then look fora sell opportunity Buy triggered when candle got rejection from the lower Bollinger bands, and sell
Reverse Study
30+ USD
I have a EA that already trades How I need it to have a option that implements a reverse feature so I can study the EA more I need the EA to monitor itself and then trade itself in reverse, Basically I need the EA to trade itself in a mirror flip, The EA feature must only work when its Values are set to true, And the EA feature will have the Options to change Lot TP and SL but only when its side is set to true
Custom TradingView-to-MT4/MT5 Bridge with Stealth SL/TP Logic Project Title Custom TradingView-to-MT4/MT5 Bridge with Stealth SL/TP Logic (Webhook + EA) Project Description I’m looking for a skilled MQL developer who can build a custom TradingView-to-MT4/MT5 trading bridge that performs the following functions: System Overview 1. ENTRY SYSTEM: - Define a pending order on TradingView (manually or via indicator) and
Batch of hedging orders
30+ USD
i want to have a hedging batch of orders when i open a buy it shell open many sell with different tp sl once hit the tp or sl cancel it
main setting for propfirm that i want bot trading direction buy/ sell user like me able to choose max equity loss a day 4% if hit 4 % exit trade and stop trading risk type fix lot / % of acc size developer must send me demo to run it on tester of validity. i want the bot to trade gold only and mainly m5 or m1 time frame
Development of a trading other
35+ USD
Here are the requirements for a potential developer: 1. *Task*: Create a detailed specification for image editing tasks. 2. *Key Features*: - Describe the type of image (e.g., photo, graphic). - Specify edits (add, remove, change elements). - Define desired output format and resolution. 3. *Deliverables*: - A clear, concise document outlining the task. - Estimated complexity and cost assessment. -
Project information
Budget
60+ USD
For the developer
54
USD
Deadline
to 2 day(s)