커뮤니티
문의드립니다.
2018-04-04 15:22:43
119
글번호 117949
안녕하세요.
1번질문 :
아래수식를 처음 적용하면 이미 매수 또는 매도신호가 수식적용 전에 발생되어 있어서
신규 진입시 1개가 진입하는 것이 아니고 청산이 같이 신호가 나와서 2개가 진입이 됩니다.
이것을 1개만 진입하려고 하려면 어떻게 해야 하나요?
2번 질문:
진입신호가 빈번해서 이것을 필터링 하기위해서 매수든 매도든 모든 신호 포함해서
바로 직전 신호값과 신규 신호값 시이의 갭이 10틱 이내이면 청산만하고 신규 진입하지 않고요.
무포지션에서 직전신호값과 10틱이상시 차이가 나야만 새로 매수매도가 1개만 들어가도록 수식 수정을 부탁드립니다.
기포지션에도 10틱이상 차이가 나면 청산과 더불어 동시에 신규 진입합니다.
Input : shortPeriod(5), longPeriod(20);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
3번질문 :
다른 전략입니다.
현재봉 포함해서 이전봉 5개를 선택해서 현재봉 종가가 형성시 5개중에 3개이상
양봉이면 매수 후 (3개이상 음봉이면 매도 후)
매수봉 종가 즉 매수 다음봉 시가에서 매수청산하거나
매도봉 종가 즉 매도 다음봉 시가에서 매도청산합니다.
청산후 3개봉 이후에 다시 반복해서 5개봉을 모아서 양봉이나 음봉 갯수를 세어서
반복 재진입하며 앞에서 처럼 매수봉 또는 매도봉 종가 가격에서 청산하는 수식을 부탁드립니다.
답변 1
예스스탁 예스스탁 답변
2018-04-04 15:27:48
안녕하세요
예스스탁입니다.
1.
해당 부분은 수식으로 처리가 될수 없습니다.
시스템을 적용하실때 나타나는 시스템 트레이딩 설정창에
매매탭에 보시면 주문시작신호라는 옵션이 있습니다.
주문시작신호를 진입신호로 적용하시면
시스템 적용이후 첫 진입신호 발생시점부터 주문이 집행되게 됩니다.
적용이전 발생된 진입에 대한 청산은 신호만 표시하고 주문을 하지 않습니다.
2
Input : shortPeriod(5), longPeriod(20);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
if MarketPosition == 0 or (MarketPosition == -1 and abs(EntryPrice-c) >= PriceScale*10) Then
Buy();
if MarketPosition == -1 and abs(EntryPrice-c) < PriceScale*10 Then
ExitShort();
}
If CrossDown(value1, value2) Then
{
if MarketPosition == 0 or (MarketPosition == 1 and abs(EntryPrice-c) >= PriceScale*10) Then
sell();
if MarketPosition == -1 and abs(EntryPrice-c) < PriceScale*10 Then
ExitLong();
}
3
수식에서 조건을 지정하는 if문은 봉완성가 기준이며
봉완성시점은 다음봉시가가 수신될때입니다.
그러므로 종가매수와 다음봉시가청산은 실제주문에서는
같은 시점이 되게 됩니다.
청산을 진입 다음봉 종가청산으로 작성해 드립니다.
if MarketPosition == 0 and
(TotalTrades == 0 or (TotalTrades >= 1 and BarsSinceExit(1) >= 3)) and
countif(C>O,5) >= 3 Then
buy("b");
if MarketPosition == 0 and
(TotalTrades == 0 or (TotalTrades >= 1 and BarsSinceExit(1) >= 3)) and
countif(C<O,5) >= 3 Then
sell("s");
if MarketPosition == 1 and BarsSinceEntry == 1 Then
exitlong("bx");
if MarketPosition == -1 and BarsSinceEntry == -1 Then
ExitShort("sx");
즐거운 하루되세요
> 종호 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요.
1번질문 :
아래수식를 처음 적용하면 이미 매수 또는 매도신호가 수식적용 전에 발생되어 있어서
신규 진입시 1개가 진입하는 것이 아니고 청산이 같이 신호가 나와서 2개가 진입이 됩니다.
이것을 1개만 진입하려고 하려면 어떻게 해야 하나요?
2번 질문:
진입신호가 빈번해서 이것을 필터링 하기위해서 매수든 매도든 모든 신호 포함해서
바로 직전 신호값과 신규 신호값 시이의 갭이 10틱 이내이면 청산만하고 신규 진입하지 않고요.
무포지션에서 직전신호값과 10틱이상시 차이가 나야만 새로 매수매도가 1개만 들어가도록 수식 수정을 부탁드립니다.
기포지션에도 10틱이상 차이가 나면 청산과 더불어 동시에 신규 진입합니다.
Input : shortPeriod(5), longPeriod(20);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
3번질문 :
다른 전략입니다.
현재봉 포함해서 이전봉 5개를 선택해서 현재봉 종가가 형성시 5개중에 3개이상
양봉이면 매수 후 (3개이상 음봉이면 매도 후)
매수봉 종가 즉 매수 다음봉 시가에서 매수청산하거나
매도봉 종가 즉 매도 다음봉 시가에서 매도청산합니다.
청산후 3개봉 이후에 다시 반복해서 5개봉을 모아서 양봉이나 음봉 갯수를 세어서
반복 재진입하며 앞에서 처럼 매수봉 또는 매도봉 종가 가격에서 청산하는 수식을 부탁드립니다.
다음글
이전글