CONVERSION OF PINESCRIPT STRATEGY TO FOREX ROBOT

MQL4 Experten Konvertierung

Auftrag beendet

Ausführungszeit 22 Stunden
Bewertung des Kunden
Mehran made my script for a very competitive price all in just 1 day. I couldn't be happier. I will continue to use him in future if i need a freelancer. Would highly recommend
Bewertung des Entwicklers
He is a great customer. Thanks...

Spezifikation

//@version=4
strategy("OSPREY NO VISUAL", shorttitle="OSPREY NO VISUAL", overlay=true, pyramiding=1, calc_on_every_tick = false)


tick_round(x) => 
    round(x / syminfo.mintick) * syminfo.mintick

position = 0

//EMAs
ema_1 = ema(close, 55)
ema_2 = ema(close, 110)
ema_3 = ema(close, 200)

//Keltner Channel
ma      = sma(close, 20)
rangema = sma(tr, 20)
upper = ma + rangema 
lower = ma - rangema

// Signal for crossing Keltner Channel
crossUpper = crossover(close, upper)
crossLower = crossunder(close, lower)

//Signal for EMA Crossover
long_cross = crossover(ema_1, ema_2)
short_cross = crossover(ema_2, ema_1)

// Buying price - first high after the cross
bprice = 0.0
bprice := crossUpper ? low+syminfo.mintick : nz(bprice[1])

// Selling price - first low after the cross
sprice = 0.0
sprice := crossLower ? high -syminfo.mintick : nz(sprice[1]) 

crossBcond = false
crossBcond := crossUpper ? true 
 : na(crossBcond[1]) ? false : crossBcond[1]

crossScond = false
crossScond := crossLower ? true 
 : na(crossScond[1]) ? false : crossScond[1]

// Condition to cancel orders
cancelBcond = crossBcond and (close < ma or high >= bprice )
cancelScond = crossScond and (close > ma or low <= sprice )


// Active stop long order
waitingB = false
waitingB := position[1] == 1 ? false : crossUpper ? true : cancelBcond ? false : nz(waitingB[1])


// Active stop short order
waitingS = false
waitingS := position[1] == -1 ? false : crossLower ? true : cancelScond ? false : nz(waitingS[1])


// Long/Short signals
long1 = long_cross 
long2 = high >= bprice 
long3 = close > upper
long4 = close > ema_3

short1 = short_cross
short2 = low <=  sprice
short3 = close < lower
short4 = close < ema_3

long = 0
if (long1 and long2 and long3 and long4)
    long := 1

short = 0
if (short1 and short2 and short3 and short4)
    short := 1


// Keeping track of current position
position := long ? 1 : short ? -1 : nz(position[1])


//Limit Levels
stop_level_long = strategy.position_avg_price * (1 - 0.004)
take_level_long = strategy.position_avg_price * (1 + 0.008)
stop_level_short = strategy.position_avg_price * (1 + 0.004)
take_level_short  = strategy.position_avg_price * (1 - 0.008)

//Entries
strategy.entry("Long Entry", strategy.long, when=long)
strategy.exit("SL/TP", "Long Entry", stop=stop_level_long, limit=take_level_long)

strategy.entry("Short Entry", strategy.short, when=short)
strategy.exit("SL/TP", "Short Entry", stop=stop_level_short,limit=take_level_short)

Hi! I currently have a working strategy script on trading view that I have developed and am happy with the backtest data. I want you to take the entry and exit criteria that currently works so well, but implement them into an EA. The only input that the EA needs would be the risk % which the EA needs to correctly calculate the position size.


I would also like you to add comments throughout the code so i understand it :)


Bewerbungen

1
Entwickler 1
Bewertung
(361)
Projekte
644
26%
Schlichtung
92
72% / 14%
Frist nicht eingehalten
12
2%
Arbeitet
Veröffentlicht: 1 Beispiel
2
Entwickler 2
Bewertung
(13)
Projekte
35
71%
Schlichtung
2
0% / 0%
Frist nicht eingehalten
11
31%
Arbeitet
Veröffentlicht: 1 Beispiel
3
Entwickler 3
Bewertung
(88)
Projekte
143
39%
Schlichtung
21
19% / 48%
Frist nicht eingehalten
30
21%
Frei
4
Entwickler 4
Bewertung
(412)
Projekte
543
75%
Schlichtung
9
44% / 0%
Frist nicht eingehalten
24
4%
Frei
5
Entwickler 5
Bewertung
(564)
Projekte
845
73%
Schlichtung
15
53% / 13%
Frist nicht eingehalten
193
23%
Frei
6
Entwickler 6
Bewertung
(574)
Projekte
945
47%
Schlichtung
309
58% / 27%
Frist nicht eingehalten
125
13%
Frei

Projektdetails

Budget
50+ USD