예스스탁
예스스탁 답변
2022-01-18 16:48:13
안녕하세요
예스스탁입니다.
수정한 식입니다.수식안에 변경가능한 부분에 대해 모두 외부변수로 처리해 드립니다.
첫진입 : 직전봉고가+1틱 첫매수진입
직전봉저가-1틱에 첫매도진입
추가진입 : 첫진입 이후 직전발생한 신호의 종류 따라 구분해서 진입하게 됩니다.
매수포지션일 경우
직전신호가 매수진입이면 직전진입가 + 4틱에 추가매수진입
직전신호가 청산이면이면 직전봉고가 + 1틱에 추가매수진입
매도포지션일 경우
직전신호가 매도진입이면 직전진입가 - 4틱에 추가매도진입
직전신호가 청산이면이면 직전봉저가 - 1틱에 추가매도진입
청산 : 첫진입 이후 직전발생한 신호에 따라 구분해서 진입하게 됩니다.
매수포지션일 경우
직전신호가 진입이면 직전봉저가 -1틱에 50% 션청산
직전신호가 청산이면 직전진입가 -4틱에 지정한 수량으로 청산
매도포지션일 경우
직전신호가 진입이면 직전봉고가 +1틱에 50% 션청산
직전신호가 청산이면 직전진입가 +4틱에 지정한 수량으로 청산
아래는 수정한 식입니다.
추가진입을 하는 내용이므로 피라미딩은 모든진입신호허용으로 설정하고 적용하셔야 합니다.
의도와 다르시면 02-3453-1060으로 전화주시기 바랍니다.
input : 추가매수틱(4),추가매수량(2),첫매수청산수량per(50),매수청산틱(4),매수청산수량(2);
input : 추가매도틱(4),추가매도량(2),첫매도청산수량per(50),매도청산틱(4),매도청산수량(2);
var : B(0),S(0);
if MarketPosition == 0 Then
{
Buy("b",AtStop,H+PriceScale*1,1);
Sell("s",AtStop,L-PriceScale*1,1);
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
B = 1;
if CurrentContracts > CurrentContracts[1] Then
B = -1;
if B == 1 Then
Buy("bb1", AtStop, LatestEntryPrice(0)+PriceScale*추가매수틱, 추가매수량);
if B == -1 Then
Buy("bb2", AtStop, H+PriceScale*1, 추가매수량);
if B == 1 Then
ExitLong("bx1",AtStop, L-PriceScale*1,"",Round(MaxContracts*(첫매수청산수량per/100),0),2);
if B == -1 Then
ExitLong("bx2",AtStop, LatestExitPrice(0)-PriceScale*매수청산틱,"",매수청산수량,2);
}
Else
B = 0;
if MarketPosition == -1 Then
{
if CurrentContracts > CurrentContracts[1] Then
S = 1;
if CurrentContracts > CurrentContracts[1] Then
S = -1;
if S == 1 Then
Sell("ss1", AtStop, LatestEntryPrice(0)-PriceScale*추가매도틱, 추가매도량);
if S == -1 Then
Sell("ss2", AtStop, L-PriceScale*1, 추가매도량);
if S == 1 Then
ExitShort("sx1",AtStop, L-PriceScale*1,"",Round(MaxContracts*(첫매도청산수량per/100),0),1);
if S == -1 Then
ExitShort("sx2",AtStop, LatestExitPrice(0)-PriceScale*매도청산틱,"",매도청산수량,1);
}
Else
S = 0;
즐거운 하루되세요
> 음양조파 님이 쓴 글입니다.
> 제목 : 검토 부탁드립니다.
>
안녕하세요? 수식을 부탁드려 아래와 같은 식을 받았습니다.
그런데, 직전봉 고점 한 틱위에서 하나 매수 하고 그 뒤부터 4틱마다 하나씩 추가 매수, 역으로 진전봉 저점으로 가면 저점 한 틱 밑에서 보유한 매수 포지션의 절반을 매도한 후 그 뒤부터 4틱마다 매수포지션이 소진될 때까지 2개씩 청산하다가 매수 포지션이 소진되면 4틱마다 하나씩 매도, 다시 역으로 직전봉 고점으로 가면 고점 한틱 위에서 다시 4틱마다 하나씩 매수 시작, 그런 그림을 생각하고 변수를 넣어 시뮬레이션 해봤는데, 생각대로 진행이 안됩니다. 감사합니다.
input : nn(10),cc(10),pp(30),rr(10),mm(10);
if MarketPosition == 0 Then
{
Buy("b",AtStop,H+PriceScale*1,1);
Sell("s",AtStop,L-PriceScale*1,1);
}
if MarketPosition == 1 Then
{
if CurrentContracts < CurrentContracts[1] Then
Condition1 = true;
if Condition1 == False Then
{
Buy("bb", AtStop, LatestEntryPrice(0)+PriceScale*nn, cc);
ExitLong("bx1",AtStop, L-PriceScale*1,"",Round(MaxContracts*(pp/100),0),1);
}
if Condition1 == true Then
{
ExitLong("bx2",AtStop, LatestExitPrice(0)-PriceScale*rr,"",mm,1);
}
}
Else
Condition1 = False;
if MarketPosition == -1 Then
{
if CurrentContracts < CurrentContracts[1] Then
Condition2 = true;
if Condition2 == False Then
{
Sell("ss", AtStop, LatestEntryPrice(0)-PriceScale*nn, cc);
ExitShort("sx1",AtStop,H+PriceScale*1,"",Round(MaxContracts*(pp/100),0),1);
}
if Condition2 == true Then
{
ExitShort("sx2",AtStop, LatestExitPrice(0)+PriceScale*rr,"",mm,1);
}
}
Else
Condition2 = False;
즐거운 하루되세요
> 음양조파 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
> 안녕하세요? 수고가 많으십니다.
수식 부탁드립니다.
맨 처음 아무 포지션이 없을 때부터
1)이전 봉의 고점보다 한틱 위로 가면 첫매수를 하고
그 다음에는 이전봉의 저점을 깨지 않는 한 n틱 올라갈 때마다 C개씩 추가 매수를 누적시켜나가고, 매수누적 진행하다가 이전 봉의 저점을 깨고 한틱 아래로 가면 그 동안 진입한 매수 누적분의 p퍼센트 갯수(소수점 이하 반올림)를 청산한 후 나머지 매수누적분이 소진될 때까지는 r틱 내려갈 때마다 m개씩 매수를 청산하고, 매수누적분이 소진되고 나면 매도를 하나씩 추가해나가며, 매도도 같은 방식으로 누적되다가 고점을 깨고 올라가면 같은 방식으로 청산후 매도 제거 매수진입해 나가며
2) 이전 봉의 저점 보다 한틱 밑으로 가면 첫매도를 하고
그 다음에는 위 첫매수를 시작했을 때와 같은 방식으로 매도 누적과 청산 매수진입이 무한반복되도록 합니다.
감사합니다.