Pine script - войти в следующую позицию, когда цена на 2% выше, чем предыдущий лонг - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь модифицировать мой простой скрипт, который покупает позицию при пересечении цены 200 MA и продает, когда цена пересекает 200 EMA.

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

@version=3
strategy("EMA200", shorttitle="EMA200", overlay=true, initial_capital=10000, pyramiding=1)

EMA=input(200, minval=1)
s=ema(close,EMA) // sma values stored in s1 and s2 variables
plot(s)
buy= close>s
sell= close<s
addToLong = (strategy.position_size > 0) and strategy.position_avg_price +
               strategy.position_avg_price*0.02 //close > high[1]
ordersize=floor(strategy.equity/close) // To dynamically calculate the order size as the account equity increases or decreases.
strategy.entry("long",strategy.long,ordersize,when=buy) // Buys when buy condition met
strategy.order(id="Additional Long", when = addToLong, long=true)
strategy.close("long", when = sell ) // Closes position when sell condition me 

1 Ответ

0 голосов
/ 05 февраля 2019
//@version=3
strategy("EMA200", shorttitle="EMA200", overlay=true, initial_capital=10000, pyramiding=5, default_qty_type=strategy.percent_of_equity, default_qty_value=20)

EMA=input(200, minval=1)
s=ema(close,EMA) // sma values stored in s1 and s2 variables
plot(s)
sell= crossunder(close, s)
buy= (strategy.position_size > 0) ? (strategy.position_avg_price*1.02 < close) : crossover(close, s)

strategy.entry("long",strategy.long,when=buy) // Buys when buy condition met
strategy.close("long", when = sell ) // Closes position when sell condition me

Полагаю, это похоже на то, что вы хотите.

...