커뮤니티
이전글 재문의..
2016-02-12 20:37:05
138
글번호 95351
답변 감사합니다.
그런데, 아래 수정된 수식을 yeslanguage에 적용해보니 에러가 뜹니다.
수식이 논리적으로 어디가 안맞는지, 가동이 안됩니다.
다만, 처음 답변 수식은 에러없이 잘 돌아갑니다.
그리고, 몇가지 커뮤니케이션 에러가 있어 올립니다.
1) 16% 상승한후 하락할때, 매수싯점은 16% 상승후 최고점 대비 5% 하락이
아니라, 16% 상승한 그가격 자체 대비 5% 하락입니다.
예로, 1.0 시초가이고, 16% 상승후(1.16), 10% 추가상승하였다가 (1.26)
하락했다면, 5% 하락 기준가는 1.26*0.95가 아니라, 1.16*0.95 입니다.
2) 또한, 실제 매수가격은 1.16*0.95 이 아니라, 1.16*0.95 부터 출발하여
지속 하락할시에 최저가 대비 5% 상승한 가격입니다.
예로, 1.16*0.95에서 추가 하락하여 1.16*0.95*0.93 (16% 가격 대비 5%
하락후, 7% 추가하락)이 되었다고 할때, 실제 매수가격은 (1.16*0.95*0.93)*1.05
(7% 추가하락 가격 대비 5% 반등한 가격)입니다.
( -> 이때, 1.16*0.95 에서 1.16*0.95*0.93 까지는 쭉 하락했다가 다시
수직상승했다고 가정합니다.
만약, 1.16*0.95*0.97까지 수직 떨어졌다가 5% 수직상승하여
(1.16*0.95*0.97)*1.05가 되었다면, 이것이 실제 매수가격이 됩니다.
( 16% 가격 대비 5% 하락후, 3% 추가하락시는 3% 추가하락 가격 대비 5%
반등한 가격이 실제 매수가임)
==> 트레일스탑 기능을 매수에 적용한 사례.) <= 중요!!
이상입니다.
수정 부탁합니다.
===================================================
안녕하세요
예스스탁입니다.
주석 참고하시기 바랍니다.
var : TT(0),T1(0),Entry(0),T(0),HH(0),HL(0);
TT = TotalTrades;
#날짜 변경되면 T는 0
if date != date[1] Then{
T1 = TT[1];
T = 0;
HH = 0;
HL = 0;
}
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
#9시 30분 이전에 시초가 대비 16이상 상승하면
#T는 1이고
#HH는 고가 HL에는 저가 저장
if T == 0 and stime < 93000 and H >= dayopen*1.16 Then{
T = 1;
HH = H;
HL = L;
}
#T가 1일때
if T == 1 Then{
#10%돌파후 최고가 계산
if H > HH Then{
HH = H;
HL = L;
}
#최고가 이후 최저가 계산
if L < HL Then
HL = L;
}
#무포지션이고 T가 1이고
#당일 진입이 없고 15시 이전이고
#16%이상 상승후 최고가에서 최고가 이후 최저가가 5%이상 하락하고
#최저가에서 5%이상 상승하면 매수
if MarketPosition == 0 and T == 1 and
entry < 1 and stime < 150000 and
HL <= HH*0.95 and HH > 0 and HL > 0
Then
buy("b1",AtStop,HL*1.05);
#T가 0이면 9시 30분이후에 시초가+16%에 매수
if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then
buy("b2",AtStop,Dayopen*1.16);
if MarketPosition == 1 and IsEntryName("b1") == true Then{
ExitLong("BL1",AtStop,EntryPrice*0.91);
if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then
ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099);
}
if MarketPosition == 1 and IsEntryName("b2") == true Then{
ExitLong("BL2",AtStop,EntryPrice*0.85);
if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then
ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099);
}
buy();
}
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 이전글 추가문의
> 아래글에서 맨아래 (1) 번 질문을 다음과 같이 약간 수정합니다.
1) 9시 30분 이전에 시초가 대비 16% 상승한 경우에,
16%이상 상승후 하락반전하는 상황을 가정한다.
16% 가격 대비 5% 이상 하락한 이후에,
신저점대비 5% 상승한 가격에 매수함.(역트레일스탑(?) 적용)
-> 예로, 16% 가격 대비 5% 하락하고, 여기서 7% 더 추가 하락하는 경우에
7% 추가하락가격을 저점으로 하여, 여기서 5% 상승한 가격에 매수함.
(5% 하락이후, 신저점대비 5% 재상승한 가격에 매수함. 트레일스탑
을 익절이 아닌 저가매수에 적용함)
이때, 트레일스탑(익절)은 매수가격이 아닌, 16% 상승가격 대비 15% 상승한
가격으로 정함. (-> 매수가격에 관계없이 시초가 대비 16% 상승가격의 1.15배
가격으로 고정. 이 경우, 트레일감소폭은 3%로 고정)
손절은 매수가격 대비 10% 하락한 가격으로 고정함.
만약, 시초가 대비 16% 상승 못하면 매수 안함.
이상입니다.
수식 부탁합니다.
==============================================================
안녕하세요
예스스탁입니다.
트레일링 스탑은 일정 수익이후 감소폭도 같이 지정하셔야 합니다.
수익폭만 있어 기존수식에서와 같이 1% 감소로 지정했습니다.
var : TT(0),T1(0),Entry(0),T(0);
TT = TotalTrades;
if date != date[1] Then{
T1 = TT[1];
T = 0;
}
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if T == 0 and stime < 93000 and H >= dayopen*1.16 Then
T = 1;
if MarketPosition == 0 and T == 1 and entry < 1 and stime < 150000 Then
buy("b1",AtLimit,DayHigh*0.95);
if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then
buy("b2",AtStop,Dayopen*1.16);
if MarketPosition == 1 and IsEntryName("b1") == true Then{
ExitLong("BL1",AtStop,EntryPrice*0.91);
if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then
ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099);
}
if MarketPosition == 1 and IsEntryName("b2") == true Then{
ExitLong("BL2",AtStop,EntryPrice*0.85);
if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then
ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099);
}
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 시스템 문의..
> 아래와 같은 수식을 받아 쓰고 있읍니다.
(당일 시초가 대비 16% 상승하면 매수하여
트레일스탑 15%, 손절 15% 작용)
var : TT(0),T1(0),Entry(0);
TT = TotalTrades;
if date != date[1] Then
T1 = TT[1];
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if MarketPosition == 0 and stime < 100000 and entry < 1 Then
buy("b",AtStop,dayopen*1.16);
#손절
SetStopLoss(15,PercentStop);
#트레일링스탑
SetStopTrailing(1,15,PercentStop,1);
위 식을 아래와 같이 좀더 세분화하고 싶읍니다.
1) 9:30 이전에 시초가 대비 16% 상승한 경우에,
16% 가격 대비 5% 하락한 가격에 매수함.
-> 16%이상 상승후 하락반전하는 상황에서
5% 이상 하락시에 그 가격으로 매수 들어감.
(16% 상승후 하락반전하여 재상승하는 경우 가정함)
(트레일스탑 22%, 손절 9%)
만약, 시초가 대비 16% 상승 못하면 매수 안함.
2) 9:30 이후
시초가 대비 16% 상승한 가격에 매수하여
트레일스탑 15%, 손절 15%
가능하겠읍니까?
답변 1
예스스탁 예스스탁 답변
2016-02-15 10:29:07
안녕하세요
예스스탁입니다.
식을 수정했습니다.
기존식에 불필요한 내용이 있었습니다.
기준값도 시초가+16%로 수정했습니다.
var : TT(0),T1(0),Entry(0),T(0),HH(0),HL(0);
TT = TotalTrades;
#날짜 변경되면 T는 0
if date != date[1] Then{
T1 = TT[1];
T = 0;
HH = 0;
HL = 0;
}
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if T == 0 and stime < 93000 and H >= dayopen*1.16 Then{
T = 1;
HH = dayopen*1.16;
HL = dayopen*1.16;
}
if T == 1 and T[1] == 1 Then{
if L < HL Then
HL = L;
if MarketPosition == 0 and
entry < 1 and stime < 150000 and
HL <= HH*0.95 and HH > 0 and HL > 0 Then
buy("b1",AtStop,HL*1.05);
}
#T가 0이면 9시 30분이후에 시초가+16%에 매수
if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then
buy("b2",AtStop,Dayopen*1.16);
if MarketPosition == 1 and IsEntryName("b1") == true Then{
ExitLong("BL1",AtStop,EntryPrice*0.91);
if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then
ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099);
}
if MarketPosition == 1 and IsEntryName("b2") == true Then{
ExitLong("BL2",AtStop,EntryPrice*0.85);
if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then
ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099);
}
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 이전글 재문의..
> 답변 감사합니다.
그런데, 아래 수정된 수식을 yeslanguage에 적용해보니 에러가 뜹니다.
수식이 논리적으로 어디가 안맞는지, 가동이 안됩니다.
다만, 처음 답변 수식은 에러없이 잘 돌아갑니다.
그리고, 몇가지 커뮤니케이션 에러가 있어 올립니다.
1) 16% 상승한후 하락할때, 매수싯점은 16% 상승후 최고점 대비 5% 하락이
아니라, 16% 상승한 그가격 자체 대비 5% 하락입니다.
예로, 1.0 시초가이고, 16% 상승후(1.16), 10% 추가상승하였다가 (1.26)
하락했다면, 5% 하락 기준가는 1.26*0.95가 아니라, 1.16*0.95 입니다.
2) 또한, 실제 매수가격은 1.16*0.95 이 아니라, 1.16*0.95 부터 출발하여
지속 하락할시에 최저가 대비 5% 상승한 가격입니다.
예로, 1.16*0.95에서 추가 하락하여 1.16*0.95*0.93 (16% 가격 대비 5%
하락후, 7% 추가하락)이 되었다고 할때, 실제 매수가격은 (1.16*0.95*0.93)*1.05
(7% 추가하락 가격 대비 5% 반등한 가격)입니다.
( -> 이때, 1.16*0.95 에서 1.16*0.95*0.93 까지는 쭉 하락했다가 다시
수직상승했다고 가정합니다.
만약, 1.16*0.95*0.97까지 수직 떨어졌다가 5% 수직상승하여
(1.16*0.95*0.97)*1.05가 되었다면, 이것이 실제 매수가격이 됩니다.
( 16% 가격 대비 5% 하락후, 3% 추가하락시는 3% 추가하락 가격 대비 5%
반등한 가격이 실제 매수가임)
==> 트레일스탑 기능을 매수에 적용한 사례.) <= 중요!!
이상입니다.
수정 부탁합니다.
===================================================
안녕하세요
예스스탁입니다.
주석 참고하시기 바랍니다.
var : TT(0),T1(0),Entry(0),T(0),HH(0),HL(0);
TT = TotalTrades;
#날짜 변경되면 T는 0
if date != date[1] Then{
T1 = TT[1];
T = 0;
HH = 0;
HL = 0;
}
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
#9시 30분 이전에 시초가 대비 16이상 상승하면
#T는 1이고
#HH는 고가 HL에는 저가 저장
if T == 0 and stime < 93000 and H >= dayopen*1.16 Then{
T = 1;
HH = H;
HL = L;
}
#T가 1일때
if T == 1 Then{
#10%돌파후 최고가 계산
if H > HH Then{
HH = H;
HL = L;
}
#최고가 이후 최저가 계산
if L < HL Then
HL = L;
}
#무포지션이고 T가 1이고
#당일 진입이 없고 15시 이전이고
#16%이상 상승후 최고가에서 최고가 이후 최저가가 5%이상 하락하고
#최저가에서 5%이상 상승하면 매수
if MarketPosition == 0 and T == 1 and
entry < 1 and stime < 150000 and
HL <= HH*0.95 and HH > 0 and HL > 0
Then
buy("b1",AtStop,HL*1.05);
#T가 0이면 9시 30분이후에 시초가+16%에 매수
if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then
buy("b2",AtStop,Dayopen*1.16);
if MarketPosition == 1 and IsEntryName("b1") == true Then{
ExitLong("BL1",AtStop,EntryPrice*0.91);
if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then
ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099);
}
if MarketPosition == 1 and IsEntryName("b2") == true Then{
ExitLong("BL2",AtStop,EntryPrice*0.85);
if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then
ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099);
}
buy();
}
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 이전글 추가문의
> 아래글에서 맨아래 (1) 번 질문을 다음과 같이 약간 수정합니다.
1) 9시 30분 이전에 시초가 대비 16% 상승한 경우에,
16%이상 상승후 하락반전하는 상황을 가정한다.
16% 가격 대비 5% 이상 하락한 이후에,
신저점대비 5% 상승한 가격에 매수함.(역트레일스탑(?) 적용)
-> 예로, 16% 가격 대비 5% 하락하고, 여기서 7% 더 추가 하락하는 경우에
7% 추가하락가격을 저점으로 하여, 여기서 5% 상승한 가격에 매수함.
(5% 하락이후, 신저점대비 5% 재상승한 가격에 매수함. 트레일스탑
을 익절이 아닌 저가매수에 적용함)
이때, 트레일스탑(익절)은 매수가격이 아닌, 16% 상승가격 대비 15% 상승한
가격으로 정함. (-> 매수가격에 관계없이 시초가 대비 16% 상승가격의 1.15배
가격으로 고정. 이 경우, 트레일감소폭은 3%로 고정)
손절은 매수가격 대비 10% 하락한 가격으로 고정함.
만약, 시초가 대비 16% 상승 못하면 매수 안함.
이상입니다.
수식 부탁합니다.
==============================================================
안녕하세요
예스스탁입니다.
트레일링 스탑은 일정 수익이후 감소폭도 같이 지정하셔야 합니다.
수익폭만 있어 기존수식에서와 같이 1% 감소로 지정했습니다.
var : TT(0),T1(0),Entry(0),T(0);
TT = TotalTrades;
if date != date[1] Then{
T1 = TT[1];
T = 0;
}
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if T == 0 and stime < 93000 and H >= dayopen*1.16 Then
T = 1;
if MarketPosition == 0 and T == 1 and entry < 1 and stime < 150000 Then
buy("b1",AtLimit,DayHigh*0.95);
if MarketPosition == 0 and T == 0 and stime >= 093000 and entry < 1 and stime < 150000 Then
buy("b2",AtStop,Dayopen*1.16);
if MarketPosition == 1 and IsEntryName("b1") == true Then{
ExitLong("BL1",AtStop,EntryPrice*0.91);
if highest(H,BarsSinceEntry) >= EntryPrice*1.22 Then
ExitLong("Btr1",AtStop,highest(H,BarsSinceEntry)*099);
}
if MarketPosition == 1 and IsEntryName("b2") == true Then{
ExitLong("BL2",AtStop,EntryPrice*0.85);
if highest(H,BarsSinceEntry) >= EntryPrice*1.16 Then
ExitLong("Btr2",AtStop,highest(H,BarsSinceEntry)*099);
}
즐거운 하루되세요
> 초록이 님이 쓴 글입니다.
> 제목 : 시스템 문의..
> 아래와 같은 수식을 받아 쓰고 있읍니다.
(당일 시초가 대비 16% 상승하면 매수하여
트레일스탑 15%, 손절 15% 작용)
var : TT(0),T1(0),Entry(0);
TT = TotalTrades;
if date != date[1] Then
T1 = TT[1];
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
if MarketPosition == 0 and stime < 100000 and entry < 1 Then
buy("b",AtStop,dayopen*1.16);
#손절
SetStopLoss(15,PercentStop);
#트레일링스탑
SetStopTrailing(1,15,PercentStop,1);
위 식을 아래와 같이 좀더 세분화하고 싶읍니다.
1) 9:30 이전에 시초가 대비 16% 상승한 경우에,
16% 가격 대비 5% 하락한 가격에 매수함.
-> 16%이상 상승후 하락반전하는 상황에서
5% 이상 하락시에 그 가격으로 매수 들어감.
(16% 상승후 하락반전하여 재상승하는 경우 가정함)
(트레일스탑 22%, 손절 9%)
만약, 시초가 대비 16% 상승 못하면 매수 안함.
2) 9:30 이후
시초가 대비 16% 상승한 가격에 매수하여
트레일스탑 15%, 손절 15%
가능하겠읍니까?