수고많으십니다.
매수 진입후 그 다음봉이 50틱 이상 상승했다가 고점대비 30틱 이상 빠지면 즉시 청산하는 청산식을 만들려는데 잘 안됩니다.
if BarsSinceEntry == 1 and highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*50 Then
ExitLong("B_TS0000",AtStop,highest(H,BarsSinceEntry)-PriceScale*30);
수정부탁드립니다~
답변 1
예스스탁
예스스탁 답변
2024-07-30 14:26:40
안녕하세요
예스스탁입니다.
if문이 봉완성시를 기준으로 하므로
올리신 수식은 봉완성시 수익조건이 도달하면
다음봉에 감소조건 충족시 즉시 청산만 가능합니다.
하나의 봉에서 수익조건도달과 감소조건도달을 동시 체크하고
즉시 청산하는 것은 일반청산함수로는 가능하지 않고
강제청산함수로만 가능한데 지정하신 조건이 첫봉에만 동작하는 내용이라
진입후 첫봉이나 청산이 발생하면 바로 해제하는 내용도 필요합니다.
이때 수식은 위에서 아래로 읽어내려가므로
해제하는 내용이 진입시 셋팅보다 위에 위치해야 합니다.
#강제청산 해제
if MarketPosition == 0 and MarketPosition != MarketPosition[1] Then
SetStopTrailing(0,0);
if MarketPosition != 0 and BarsSinceEntry == 1 Then
SetStopTrailing(0,0);
#매수진입과 동시 셋팅해서 다음봉 감시
if MarketPosition <= 0 and 매수진입조건 Then
{
Buy();
SetStopTrailing(PriceScale*30,PriceScale*50,PointStop);
}
#매도진입과 동시 셋팅해서 다음봉 감시
if MarketPosition >= 0 and 매도진입조건 Then
{
Sell();
SetStopTrailing(PriceScale*30,PriceScale*50,PointStop);
}
즐거운 하루되세요
> 카르마다 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 수고많으십니다.
매수 진입후 그 다음봉이 50틱 이상 상승했다가 고점대비 30틱 이상 빠지면 즉시 청산하는 청산식을 만들려는데 잘 안됩니다.
if BarsSinceEntry == 1 and highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*50 Then
ExitLong("B_TS0000",AtStop,highest(H,BarsSinceEntry)-PriceScale*30);
수정부탁드립니다~