Не могу решить две проблемы с PineScript - PullRequest
0 голосов
/ 15 декабря 2018

Этот скрипт будет покупать (при открытии), если есть внешний бар.В настоящее время takeProfit составляет 2%, а стоп-лосс находится на минимуме боковой панели.(Я только учусь кодировать, а не действительной стратегии) ​​

Проблема 1: необходимо учитывать, когда вход находится ниже минимума внешнего бара (это приведет к входу и немедленному выходу из позиции).Я пытался получить стоп-лосс в 1%, если вход ниже минимума внешних баров.

Проблема 2: если я нахожусь в длинной позиции, которая еще не вышла, и на новой улицебар найден, я не хочу, чтобы он обновлял стоп-лосс или текущую позицию.

Buy-On-Open-After-Outside-Bar

//@version=3
//  Created by Leon Ross
//study(title="OutsideBar", shorttitle="ODOL", overlay=true)
strategy(title = "Outside", shorttitle = "OB", overlay = true, 
  pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, 
  calc_on_every_tick=false, initial_capital=100000)

//Conditions
outsideBar = low < low[1] and high > high[1] and close < open
allConditions = outsideBar

//Stop as last bars low and profit as percentage
entry = strategy.position_avg_price
inpTakeProfit   = input(2.0, title='Take Profit %', type=float)/100
takeProfitValue = strategy.position_avg_price * (1 + inpTakeProfit)
useTakeProfit   = inpTakeProfit  > 0 ?  takeProfitValue : na
inpStopLoss     = valuewhen(allConditions, low, 0)
stopLossValue = inpStopLoss
useStopLoss     = inpStopLoss    > 0 ?  stopLossValue   : na


//Plots
bgcolor(allConditions ==1 ? aqua : na, transp=70)
plot(entry, color=blue, style=linebr, linewidth=2)
plot(useStopLoss, color=red, style=linebr, linewidth=2)
plot(useTakeProfit, color=green, style=linebr, linewidth=2)


//Entires
strategy.entry(id = "Long", long = true, when = allConditions) // use function or simple condition to decide when to get in

//Exits
//if (barssince(allConditions) == 2)
    //strategy.close("Long")
//else
strategy.exit("Exit Long", from_entry = "Long", stop = useStopLoss)
...