전일, 또는 그 전에 가지고 있는 포지션은 그대로 유지하고, 매일 수식에 의해 매수도를 수행할 수 있는 수식을 알고 싶습니다.
예를 들어 현재 사용하는 수식의 일부는 외인의 선물 매도 증감에 따라 저도 진입을 하게 되는데, 그 다음날이 되면 외인 순매수량은 0부터 시작하므로 전일 구축했던 외인의 포지션이 무시되고 외인의 매수도량이 0로 인식되어 전날 가지고 있던 포지션이 의도하지 않게 청산되는 경우가 많습니다.
요약하자면, 이미 가지고 있는 기존 표지션은 건드리지 않고, 당일의 로직에 따라 첨가, 또는 청산이 가능한 식을 알고 싶습니다.
참고로 지금 사용하고 있는 관련 로직의 일부를 적어 놓습니다.
친절한 답변에 미리 감사드립니다.
Inputs: FFV(1000);
if MarketPosition <= 0 and Data2(CrossUp(c,FFV)) Then
{
var1 = Data2(c);
Buy("b",OnClose,Def,1);
}
if MarketPosition == 1 then
{
if Data2(c) >= var1+(FFV) Then
{
var1 = Data2(c);
Buy("bb",OnClose,Def,1);
}
if Data2(c) <= var1-(FFV) Then
{
var1 = Data2(c);
ExitLong("bx",OnClose,Def,"",1,1);
}
}
if MarketPosition >= 0 and Data2(CrossDown(c,FFV)) Then
{
var1 = Data2(c);
Sell("s",OnClose,Def,1);
}
if MarketPosition == -1 then
{
if Data2(c) <= var1-(FFV) Then
{
var1 = Data2(c);
Sell("ss",OnClose,Def,1);
}
if Data2(c) >= var1+(FFV) Then
{
var1 = Data2(c);
ExitShort("sx",OnClose,Def,"",1,1);
}
}
답변 1
예스스탁
예스스탁 답변
2024-01-31 11:03:23
안녕하세요
예스스탁입니다.
랭귀지의 MarketPosition 함수는 신호상 내용으로
한번 오버나잇된 포지션이 발생하면 이후 계속 해당 포지션으로만 인식이 되어
한방향 거래만 이루어 지게 되는데 문의하신 내용으로는 처리할 방법을 모르겠습니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> zephyr 님이 쓴 글입니다.
> 제목 : 오버나잇 관련 문의
> 전일, 또는 그 전에 가지고 있는 포지션은 그대로 유지하고, 매일 수식에 의해 매수도를 수행할 수 있는 수식을 알고 싶습니다.
예를 들어 현재 사용하는 수식의 일부는 외인의 선물 매도 증감에 따라 저도 진입을 하게 되는데, 그 다음날이 되면 외인 순매수량은 0부터 시작하므로 전일 구축했던 외인의 포지션이 무시되고 외인의 매수도량이 0로 인식되어 전날 가지고 있던 포지션이 의도하지 않게 청산되는 경우가 많습니다.
요약하자면, 이미 가지고 있는 기존 표지션은 건드리지 않고, 당일의 로직에 따라 첨가, 또는 청산이 가능한 식을 알고 싶습니다.
참고로 지금 사용하고 있는 관련 로직의 일부를 적어 놓습니다.
친절한 답변에 미리 감사드립니다.
Inputs: FFV(1000);
if MarketPosition <= 0 and Data2(CrossUp(c,FFV)) Then
{
var1 = Data2(c);
Buy("b",OnClose,Def,1);
}
if MarketPosition == 1 then
{
if Data2(c) >= var1+(FFV) Then
{
var1 = Data2(c);
Buy("bb",OnClose,Def,1);
}
if Data2(c) <= var1-(FFV) Then
{
var1 = Data2(c);
ExitLong("bx",OnClose,Def,"",1,1);
}
}
if MarketPosition >= 0 and Data2(CrossDown(c,FFV)) Then
{
var1 = Data2(c);
Sell("s",OnClose,Def,1);
}
if MarketPosition == -1 then
{
if Data2(c) <= var1-(FFV) Then
{
var1 = Data2(c);
Sell("ss",OnClose,Def,1);
}
if Data2(c) >= var1+(FFV) Then
{
var1 = Data2(c);
ExitShort("sx",OnClose,Def,"",1,1);
}
}