커뮤니티
다시 문의 드립니다.
2014-10-14 12:22:43
137
글번호 79364
작성해주신 수식 잘 보았습니다.정말 감사합니다.
몇가지 수정사항이 있어 다시 올립니다.
INPUT : LENGTH(10),rat(0.005);
VAR : TCHAN(0), BCHAN(0);
TCHAN = (1-rat)*HIGHEST(HIGH, LENGTH)[1]; <----고가에서 0.5% 마이나스 고가
BCHAN = (1+rat)*LOWEST(LOW, LENGTH)[1]; <----저가에서 0.5% 플러스 저가
1.TCHAN 과 BCHAN이 겹치면 절대 거래를 안한다는 우선 조건이 들어 갔으면 합니다)
2.또한 90분 이내에 price channel 고가가 하향 저가가 하양이면 매도 가능
price channel 고가가 상향 저가가 상향이면 매수 가능 조건이 갖추어
질때만 매매 하였습 합니다.
if crossup(c,TCHAN) Then{
sell("S",OnClose,def,2);
}
if CrossDown(c,BCHAN) Then{
Buy("B",OnClose,def,2);
}
2.진입 및 청산 관련 수정 요청 합니다.
매수시 2개의 계약을 진입하되 +5틱 이익이 나면 2계약 모두 진입가에 청산 하도록 재설정하고
+5틱 이익 없이 -7틱이면 2계약 모두 손절 청산 되도록 하며
+15 이익이 나면 1계약만 무조건 청산 합니다.
나머지 한계약은 +25틱 초과시 BCHAN +5틱으로 트레일링 스탑으로 청산 하고 +60틱이 넘어도 청산 합니다.
매도시 2개의 계약을 진입하되 +5틱 이익이 나면 2계약 모두 진입가에 청산 하도록 재설정하고
+5틱 이익 없이 -7틱이면 2계약 모두 손절 청산 되도록 하며
+15 이익이 나면 1계약만 무조건 청산 합니다.
나머지 한계약은 +25틱 초과시 TCHAN +5틱으로 트레일링 스탑으로 청산 하고 +60틱이 넘어도 청산 합니다.
if MarketPosition == 1 Then{
ExitLong("bx1",atlimit,EntryPrice+PriceScale*15,"",1,1);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*25 Then
ExitLong("bx2",atlimit,BCHAN-PriceScale*5,"",1,1);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*7 Then
ExitLong("bx",AtStop,EntryPrice);
}
if MarketPosition == -1 Then{
ExitShort("sx1",atlimit,EntryPrice-PriceScale*15,"",1,1);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*25 Then
ExitLong("sx2",atlimit,TCHAN+PriceScale*5,"",1,1);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*7 Then
ExitShort("sx",AtStop,EntryPrice);
}
SetStopLoss(PriceScale*7,PointStop);
감사합니다.
답변 1
예스스탁 예스스탁 답변
2014-10-14 17:06:58
안녕하세요
예스스탁입니다.
INPUT : LENGTH(10),rat(0.005);
VAR : TCHAN(0), BCHAN(0),T1(0),T2(0);
TCHAN = (1-rat)*HIGHEST(HIGH, LENGTH)[1];# <----고가에서 0.5% 마이나스 고가
BCHAN = (1+rat)*LOWEST(LOW, LENGTH)[1]; # <----저가에서 0.5% 플러스 저가
if TCHAN > TCHAN[1] Then{
T1 = 1;
var1 = index;
}
if TCHAN < TCHAN[1] Then{
T1 = -1;
var2 = index;
}
if BCHAN > BCHAN[1] Then{
T2 = 1;
var3 = index;
}
if BCHAN < BCHAN[1] Then{
T2 = -1;
var4 = index;
}
if crossup(c,TCHAN) and
TCHAN > BCHAN and
T1 == -1 and T2 == -1 And #상하단이 모두 최근에 하락
index <= var1+(90/BarInterval) And # 90분 이내 하락
index <= var3+(90/BarInterval) Then # 90분 이내 하락
{
sell("S",OnClose,def,2);
}
if CrossDown(c,BCHAN) and
TCHAN > BCHAN and
T1 == 1 and T2 == 1 And #상하단이 모두 최근에 상승
index <= var1+(90/BarInterval) And # 90분 이내 상승
index <= var3+(90/BarInterval) Then # 90분 이내 상승 Then{
{
Buy("B",OnClose,def,2);
}
if MarketPosition == 1 Then{
ExitLong("bx1",atlimit,EntryPrice+PriceScale*15,"",1,1);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*25 Then
ExitLong("bx2",atlimit,BCHAN+PriceScale*5,"",1,1);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*5 Then
ExitLong("bx",AtStop,EntryPrice);
}
if MarketPosition == -1 Then{
ExitShort("sx1",atlimit,EntryPrice-PriceScale*15,"",1,1);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*25 Then
ExitLong("sx2",atlimit,TCHAN-PriceScale*5,"",1,1);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*5 Then
ExitShort("sx",AtStop,EntryPrice);
}
SetStopLoss(PriceScale*7,PointStop);
즐거운 하루되세요
> jimmyfix 님이 쓴 글입니다.
> 제목 : 다시 문의 드립니다.
> 작성해주신 수식 잘 보았습니다.정말 감사합니다.
몇가지 수정사항이 있어 다시 올립니다.
INPUT : LENGTH(10),rat(0.005);
VAR : TCHAN(0), BCHAN(0);
TCHAN = (1-rat)*HIGHEST(HIGH, LENGTH)[1]; <----고가에서 0.5% 마이나스 고가
BCHAN = (1+rat)*LOWEST(LOW, LENGTH)[1]; <----저가에서 0.5% 플러스 저가
1.TCHAN 과 BCHAN이 겹치면 절대 거래를 안한다는 우선 조건이 들어 갔으면 합니다)
2.또한 90분 이내에 price channel 고가가 하향 저가가 하양이면 매도 가능
price channel 고가가 상향 저가가 상향이면 매수 가능 조건이 갖추어
질때만 매매 하였습 합니다.
if crossup(c,TCHAN) Then{
sell("S",OnClose,def,2);
}
if CrossDown(c,BCHAN) Then{
Buy("B",OnClose,def,2);
}
2.진입 및 청산 관련 수정 요청 합니다.
매수시 2개의 계약을 진입하되 +5틱 이익이 나면 2계약 모두 진입가에 청산 하도록 재설정하고
+5틱 이익 없이 -7틱이면 2계약 모두 손절 청산 되도록 하며
+15 이익이 나면 1계약만 무조건 청산 합니다.
나머지 한계약은 +25틱 초과시 BCHAN +5틱으로 트레일링 스탑으로 청산 하고 +60틱이 넘어도 청산 합니다.
매도시 2개의 계약을 진입하되 +5틱 이익이 나면 2계약 모두 진입가에 청산 하도록 재설정하고
+5틱 이익 없이 -7틱이면 2계약 모두 손절 청산 되도록 하며
+15 이익이 나면 1계약만 무조건 청산 합니다.
나머지 한계약은 +25틱 초과시 TCHAN +5틱으로 트레일링 스탑으로 청산 하고 +60틱이 넘어도 청산 합니다.
if MarketPosition == 1 Then{
ExitLong("bx1",atlimit,EntryPrice+PriceScale*15,"",1,1);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*25 Then
ExitLong("bx2",atlimit,BCHAN-PriceScale*5,"",1,1);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*7 Then
ExitLong("bx",AtStop,EntryPrice);
}
if MarketPosition == -1 Then{
ExitShort("sx1",atlimit,EntryPrice-PriceScale*15,"",1,1);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*25 Then
ExitLong("sx2",atlimit,TCHAN+PriceScale*5,"",1,1);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*7 Then
ExitShort("sx",AtStop,EntryPrice);
}
SetStopLoss(PriceScale*7,PointStop);
감사합니다.
다음글
이전글