커뮤니티
문의드립니다~
2019-02-13 07:09:42
149
글번호 126115
var : Hswb(0), Lswb(0), hb(0), lb(0) ,Left2(3), Right2(3) ;
Hswb = SwingHighbar(1,h,3,3,100);
Lswb = SwingLowbar(1,L,3,3,100);
if SwingLow(1,L,Left2,right2,Left2+Right2+1) != -1 and (tic5<tic20 ) and BarsSinceEntry <= 3 Then
{
value5 = L[right2];
value6 = tic20[right2];
value9 = tic5[right2];
}
if Swinghigh(1,H,Left2,right2,Left2+Right2+1) != -1 and (tic5>tic20 ) and BarsSinceEntry <= 3 Then
{
value7 = H[right2];
value8 = tic20[right2];
value10 = tic5[right2];
}
if MarketPosition == 1
then
{
ExitLong("롱꼭지점스탑",AtStop,value5-PriceScale*1);
}
if MarketPosition == -1
then
{
ExitShort("숏꼭지점스탑",AtStop,value7+PriceScale*1);
}
//////////////////////////
매수진입한 시점의 직전스윙로우 가격의 1틱아래에 청산하는 식입니다.
그런데 문제가 BarsSinceEntry <= 3 이렇게 조건을 주니깐.
청산하고나서 바로 재진입신호가 나올때에
직전스윙로우값을 잡아주지못하는 문제가 있네요.
재진입신호가 나오고나서는 직전스윙로우가격이 진입경과봉수의3보다 큰 가격이라서
못잡아주는거 같은데요.
진입한시점을 기준으로 이후로 생성되는 스윙로우말고 바로 직전의 스윙로우가격을
고정해서 위식대로 청산식으로 적용하고 싶습니다~
감사합니다~
답변 1
예스스탁 예스스탁 답변
2019-02-13 13:49:39
안녕하세요
예스스탁입니다.
진입기준으로 값을 가져오고자 하시면
데이타나 변수나 함수뒤에 [BarsSinceEntry]를 붙이시면 됩니다.
스윙로우나 스윙하이를 체크하는 조건에 다른 부가 조건이 있으면
스윙로우나 스윙하이가 발생할때마다 값저장이 되지 않으므로
아래수식에서는 제거했습니다.
var : Hswb(0), Lswb(0), hb(0), lb(0) ,Left2(3), Right2(3) ;
Hswb = SwingHighbar(1,h,3,3,100);
Lswb = SwingLowbar(1,L,3,3,100);
if SwingLow(1,L,Left2,right2,Left2+Right2+1) != -1 Then
{
value5 = L[right2];
value6 = tic20[right2];
value9 = tic5[right2];
}
if Swinghigh(1,H,Left2,right2,Left2+Right2+1) != -1 Then
{
value7 = H[right2];
value8 = tic20[right2];
value10 = tic5[right2];
}
if MarketPosition == 1
then
{
ExitLong("롱꼭지점스탑",AtStop,value5[BarsSinceEntry]-PriceScale*1);
}
if MarketPosition == -1
then
{
ExitShort("숏꼭지점스탑",AtStop,value7[BarsSinceEntry]+PriceScale*1);
}
즐거운 하루되세요
> 겐지 님이 쓴 글입니다.
> 제목 : 문의드립니다~
> var : Hswb(0), Lswb(0), hb(0), lb(0) ,Left2(3), Right2(3) ;
Hswb = SwingHighbar(1,h,3,3,100);
Lswb = SwingLowbar(1,L,3,3,100);
if SwingLow(1,L,Left2,right2,Left2+Right2+1) != -1 and (tic5<tic20 ) and BarsSinceEntry <= 3 Then
{
value5 = L[right2];
value6 = tic20[right2];
value9 = tic5[right2];
}
if Swinghigh(1,H,Left2,right2,Left2+Right2+1) != -1 and (tic5>tic20 ) and BarsSinceEntry <= 3 Then
{
value7 = H[right2];
value8 = tic20[right2];
value10 = tic5[right2];
}
if MarketPosition == 1
then
{
ExitLong("롱꼭지점스탑",AtStop,value5-PriceScale*1);
}
if MarketPosition == -1
then
{
ExitShort("숏꼭지점스탑",AtStop,value7+PriceScale*1);
}
//////////////////////////
매수진입한 시점의 직전스윙로우 가격의 1틱아래에 청산하는 식입니다.
그런데 문제가 BarsSinceEntry <= 3 이렇게 조건을 주니깐.
청산하고나서 바로 재진입신호가 나올때에
직전스윙로우값을 잡아주지못하는 문제가 있네요.
재진입신호가 나오고나서는 직전스윙로우가격이 진입경과봉수의3보다 큰 가격이라서
못잡아주는거 같은데요.
진입한시점을 기준으로 이후로 생성되는 스윙로우말고 바로 직전의 스윙로우가격을
고정해서 위식대로 청산식으로 적용하고 싶습니다~
감사합니다~