커뮤니티
질문드립니다
2019-07-28 22:12:39
141
글번호 130711
안녕하세요.
이제 분할청산 식은 조금 감이 잡히는데,
'다른 진입신호 허용 피라미딩' 으로 들어간 각각의 신호에 대하여
각각의 청산을 적용할 수 있는 방법도 있을까요?
역시 예를 들어 주시면 좀 더 쉽게 이해 가능할 것 같습니다..
------------------------------------------------------
input : 진입금액1(1000000),진입금액2(500000) ;
var : 손절가(0);
var1 = ma(C,5);
var2 = ma(C,20);
var3 = ma(C,60);
var4 = ma(C,120);
var5 = ma(C,240);
var6 = ma(C,480);
if crossup(c,var2) Then
{
buy("진입1",OnClose,def,floor(진입금액1/c)) ;
}
if crossup(c,var3) Then
{
buy("진입2",OnClose,def,floor(진입금액2/c)) ;
}
------------------------------------------------------
위와 같이 진입1, 진입2 진입명으로 진입한 후
1)
진입 1에 대한 청산은
1-1) 진입1 진입가 - 1틱에서 진입1 진입 전체 물량 전부 청산
1-2) CrossDown(c,var3) 에서 진입1 진입 전체 물량의 반 청산
1-3) CrossDown(c,var4) 에서 진입1 진입 전체 물량의 반 청산
2)
진입 2에 대한 청산은
2-1) 진입2 진입가 - 1틱에서 진입2 진입 전체 물량 전부 청산
2-2) CrossDown(c,var5) 에서 진입2 진입 전체 물량의 반 청산
2-3) CrossDown(c,var6) 에서 진입2 진입 전체 물량의 반 청산
저런 식으로 청산을 하려면 식을 어떻게 짜야 하는 건가요?
-----------------------------------------------------------------
답변 1
예스스탁 예스스탁 답변
2019-07-29 15:09:33
안녕하세요
예스스탁입니다.
1
청산함수에 진입명을 지정하면 해당 진입의 수량안에서만 청산됩니다.
진입명만 지정하면 해당이름으로 진입된 수량에 대해 전량 청산하고
진입명 지정후 청산수량을 지정하면 해당 이름의 진입에서 지정된 수량만 빼서 청산하게 됩니다.
2
청산함수는 기본적으로 진입의 횟수만큼 발동하게 됩니다.
분할청산이 각 1번만 발생할수 있도록 아래수식의 condition함수와 같이
변수로 적절히 제어하는 내용이 있어야 합니다.
3
input : 진입금액1(1000000),진입금액2(500000) ;
var : 손절가(0);
var : EP1(0),EV1(0),EP2(0),EV2(0);
var : EV11(0),EV12(0),EV21(0),EV22(0);
var1 = ma(C,5);
var2 = ma(C,20);
var3 = ma(C,60);
var4 = ma(C,120);
var5 = ma(C,240);
var6 = ma(C,480);
if crossup(c,var2) Then
{
buy("진입1",OnClose,def,floor(진입금액1/c)) ;
}
if crossup(c,var3) Then
{
buy("진입2",OnClose,def,floor(진입금액2/c)) ;
}
if MarketPosition == 1 then
{
if CurrentContracts > CurrentContracts[1] and LatestEntryName(0) == "진입1" Then
{
EP1 = LatestExitPrice(0);
EV1 = CurrentContracts-CurrentContracts[1];
EV11 = Floor(EV1*0.5);
EV12 = EV1-EV11;
}
if LatestEntryName(0) == "진입2" Then
{
EP2 = LatestExitPrice(0);
EV2 = CurrentContracts-CurrentContracts[1];
EV21 = Floor(EV2*0.5);
EV22 = EV2-EV21;
}
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bx12" Then
Condition12 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bx13" Then
Condition13 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bx22" Then
Condition22 = true;
if CurrentContracts < CurrentContracts[1] and LatestExitName(0) == "bx23" Then
Condition23 = true;
if EP1 > 0 then
{
ExitLong("bx11",AtStop,EP1-PriceScale*1,"진입1");
if Condition12 == false and CrossDown(C,var3) Then
ExitLong("bx12",OnClose,def,"진입1",EV11,1);
if Condition13 == false and CrossDown(C,var4) Then
ExitLong("bx13",OnClose,def,"진입1",EV12,1);
}
if EP2 > 0 then
{
ExitLong("bx21",AtStop,EP2-PriceScale*1,"진입2");
if Condition22 == false and CrossDown(C,var5) Then
ExitLong("bx22",OnClose,def,"진입2",Floor(EV2*0.5),1);
if Condition23 == false and CrossDown(C,var6) Then
ExitLong("bx23",OnClose,def,"진입2",Floor(EV2*0.5),1);
}
}
Else
{
EP1 = 0;
EP2 = 0;
EV2 = 0;
EV2 = 0;
Condition12 = false;
Condition13 = false;
Condition22 = false;
Condition23 = false;
}
즐거운 하루되세요
> 도롱이 님이 쓴 글입니다.
> 제목 : 질문드립니다
> 안녕하세요.
이제 분할청산 식은 조금 감이 잡히는데,
'다른 진입신호 허용 피라미딩' 으로 들어간 각각의 신호에 대하여
각각의 청산을 적용할 수 있는 방법도 있을까요?
역시 예를 들어 주시면 좀 더 쉽게 이해 가능할 것 같습니다..
------------------------------------------------------
input : 진입금액1(1000000),진입금액2(500000) ;
var : 손절가(0);
var1 = ma(C,5);
var2 = ma(C,20);
var3 = ma(C,60);
var4 = ma(C,120);
var5 = ma(C,240);
var6 = ma(C,480);
if crossup(c,var2) Then
{
buy("진입1",OnClose,def,floor(진입금액1/c)) ;
}
if crossup(c,var3) Then
{
buy("진입2",OnClose,def,floor(진입금액2/c)) ;
}
------------------------------------------------------
위와 같이 진입1, 진입2 진입명으로 진입한 후
1)
진입 1에 대한 청산은
1-1) 진입1 진입가 - 1틱에서 진입1 진입 전체 물량 전부 청산
1-2) CrossDown(c,var3) 에서 진입1 진입 전체 물량의 반 청산
1-3) CrossDown(c,var4) 에서 진입1 진입 전체 물량의 반 청산
2)
진입 2에 대한 청산은
2-1) 진입2 진입가 - 1틱에서 진입2 진입 전체 물량 전부 청산
2-2) CrossDown(c,var5) 에서 진입2 진입 전체 물량의 반 청산
2-3) CrossDown(c,var6) 에서 진입2 진입 전체 물량의 반 청산
저런 식으로 청산을 하려면 식을 어떻게 짜야 하는 건가요?
-----------------------------------------------------------------