커뮤니티
문의 드립니다
2011-11-18 13:59:16
507
글번호 44917
수고가 많으십니다.
if MarketPosition == 1 Then
ExitLong("bx",AtStop,Highest(H,BarsSinceEntry)*0.99);
상기식을 아래와 같이 일부 변경하여 사용 가능한지 궁급합니다.
if MarketPosition == 1 and c < ma(c,20) and c < Highest(H,BarsSinceEntry)*0.99 then
ExitLong("bx",AtStop,c);
그리고 피라미딩에서 각 진입의 최고가 및 진입가격이 다를 때는 어떻게 각 진입별로 최고가 및 진입가격을 확인할 수 있나요?
감사합니다.
안녕하세요
예스스탁입니다.
if MarketPosition == 1 Then{
ExitLong("bx4",AtStop,Highest(H,BarsSinceEntry)*0.99);
ExitLong("bx5",AtStop,EntryPrice*0.99);
}
bx5의 값이 잘못작성이 되어 수정했습니다.
시스템에서 사용되는 모든 진입관련 함수는 피라미딩상 첫진입을 기준으로 합니다.
ExitLong("bx4",AtStop,Highest(H,BarsSinceEntry)*0.99);
은 첫진입이후 최고가에서 1% 하향하면 즉시 신호 발생시키고 전량청산입니다.
ExitLong("bx5",AtStop,EntryPrice*0.99);
은 진입가 대비 1% 하향하면 즉시 신호 발생시키고 전량청산입니다.
즐거운 하루되세요
답변 1
예스스탁 예스스탁 답변
2011-11-18 14:46:04
안녕하세요
예스스탁입니다.
1.
if MarketPosition == 1 and c < ma(c,20) and c < Highest(H,BarsSinceEntry)*0.99 then
ExitLong("bx",AtStop,c);
와 같이 사용하실 수는 있지만
if MarketPosition == 1 Then
ExitLong("bx",AtStop,Highest(H,BarsSinceEntry)*0.99);
와는 다른 내용입니다
if MarketPosition == 1 and c < ma(c,20) and c < Highest(H,BarsSinceEntry)*0.99 then
ExitLong("bx",AtStop,c);
위식은 종가가 20이평 밑에 있고 종가가 진입이후 최고가에서 1%이상 하락한 봉이 생기면
해당 봉의 종가보다 다음봉의 시세가 아래에 위치하면 청산한다는 식입니다.
2,
if MarketPosition == 1 Then{
ExitLong("bx4",AtStop,Highest(H,BarsSinceEntry)*0.99);
ExitLong("bx5",AtStop,EntryPrice*0.99);
}
피라미딩에서 각 진입별로 위 내용을 구현하고자 하시면
강제청산함수를 이용하시면 간단하게 작성하실 수 있습니다.
분할 청산은 진입의 내용을 파악하고 해당 내용에 맞추어 식을 작성해야 하므로
수식으로 풀어서 구현하기 위해서는 완전한 진입식이 있어야 작성이 가능합니다.
피라미딩하는 식의 각 진입별로 경우의 수에 맞게 식을 작성해야 하고
atstop이나 atlimit으로 진입할경우에는
봉미완성시에 진입하므로 진입가격등을 정확히 지정할 수 없을 경우도 있어
추가진입이 있는 봉의 종가등을 사용하면 차이가 발생합니다.
아래와 같이 작성하시면
피라미딩 상 각 진입별로
진입이후 한틱이라도 수익이 발생한 후에 진입이후 최고가 대비 1% 하락하면
청산하고 진입별로 진입가에서 1%하락하면 청산합니다.
SetStopTrailing(1,0.00001,PercentStop,1);
SetStopLoss(1);
즐거운 하루되세요
> 아틀라스 님이 쓴 글입니다.
> 제목 : 문의 드립니다
> 수고가 많으십니다.
if MarketPosition == 1 Then
ExitLong("bx",AtStop,Highest(H,BarsSinceEntry)*0.99);
상기식을 아래와 같이 일부 변경하여 사용 가능한지 궁급합니다.
if MarketPosition == 1 and c < ma(c,20) and c < Highest(H,BarsSinceEntry)*0.99 then
ExitLong("bx",AtStop,c);
그리고 피라미딩에서 각 진입의 최고가 및 진입가격이 다를 때는 어떻게 각 진입별로 최고가 및 진입가격을 확인할 수 있나요?
감사합니다.
안녕하세요
예스스탁입니다.
if MarketPosition == 1 Then{
ExitLong("bx4",AtStop,Highest(H,BarsSinceEntry)*0.99);
ExitLong("bx5",AtStop,EntryPrice*0.99);
}
bx5의 값이 잘못작성이 되어 수정했습니다.
시스템에서 사용되는 모든 진입관련 함수는 피라미딩상 첫진입을 기준으로 합니다.
ExitLong("bx4",AtStop,Highest(H,BarsSinceEntry)*0.99);
은 첫진입이후 최고가에서 1% 하향하면 즉시 신호 발생시키고 전량청산입니다.
ExitLong("bx5",AtStop,EntryPrice*0.99);
은 진입가 대비 1% 하향하면 즉시 신호 발생시키고 전량청산입니다.
즐거운 하루되세요