커뮤니티
다시 문의드립니다.
2012-01-10 15:22:16
329
글번호 46478
작성해주신 시스템식으로 테스트해봤는데 여전히 수익청산이 된후 바로 진입 신호가 뜹니다.
어디가 잘못 됐는지요...
부탁드립니다.
Input : shortPeriod(5), longPeriod(20), period(36);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
value3= ema(C, Period);
If value1> value2 and value3 > value3[1] Then
{
Buy();
}
if MarketPosition == 1 and value3 < value3[1] Then
exitlong();
If value1<value2 and value3 < value3[1] Then
{
Sell();
}
if MarketPosition == -1 and value3 > value3[1] Then
ExitShort();
if MarketPosition !=0 Then{exitlong("bPT1",atLimit,EntryPrice+1);#진입가+1포인트 매수청산
ExitShort("SPT1",AtLimit,EntryPrice-1);#진입가-1포인트 매도청산
}
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
condition1 = count == 0 or (count >= 1 and (MarketPosition == -1 or (MarketPosition == 0 and MarketPosition(1) != 1)));
condition2 = count == 0 or (count >= 1 and (MarketPosition == 1 or (MarketPosition == 0 and MarketPosition(1) != -1)));
if Condition1 == true and value1> value2 and value3 > value3[1] Then
buy();
if Condition2 == true and value1<value2 and value3 < value3[1] Then
sell();
답변 1
예스스탁 예스스탁 답변
2012-01-11 13:26:46
안녕하세요
예스스탁입니다.
1
청산(bx,sx,bPT1,Spt1)이 발생하고 무포지션 상태에서
수익청산(bPT1,sPT1)이 발생햇을 경우만 항상 반대방향 신호가 발생했을떄만
진입을 들어가고자 하시면 아래와 같이 작성하시면 됩니다.
Input : shortPeriod(5), longPeriod(20), period(36);
var : cnt(0),count(0);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
value3= ema(C, Period);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
condition1 = count == 0 or
(count >= 1 and (MarketPosition == -1 or (MarketPosition == 0 and IsExitName("bPt1",1) == false)));
condition2 = count == 0 or
(count >= 1 and (MarketPosition == 1 or (MarketPosition == 0 and IsExitName("sPT1",1) == false)));
if Condition1 == true and value1> value2 and value3 > value3[1] Then
buy("b");
if Condition2 == true and value1<value2 and value3 < value3[1] Then
sell("s");
if MarketPosition == 1 and value3 < value3[1] Then
ExitLong("bx");
if MarketPosition == -1 and value3 > value3[1] Then
ExitShort("sx");
if MarketPosition !=0 Then{
ExitLong("bPT1",atLimit,EntryPrice+1);#진입가+1포인트 매수청산
ExitShort("SPT1",AtLimit,EntryPrice-1);#진입가-1포인트 매도청산
}
2.
청산(bx,sx,bPT1,Spt1)이 발생하고 무포지션 상태에서는
항상 반대방향 신호가 발생했을때만
진입을 들어가고자 하시면 아래와 같이 작성하시면 됩니다.
Input : shortPeriod(5), longPeriod(20), period(36);
var : cnt(0),count(0);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
value3= ema(C, Period);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
condition1 = count == 0 or
(count >= 1 and (MarketPosition == -1 or (MarketPosition == 0 and MarketPosition(1) != 1)));
condition2 = count == 0 or
(count >= 1 and (MarketPosition == 1 or (MarketPosition == 0 and MarketPosition(1) != -1)));
if Condition1 == true and value1> value2 and value3 > value3[1] Then
buy("b");
if Condition2 == true and value1<value2 and value3 < value3[1] Then
sell("s");
if MarketPosition == 1 and value3 < value3[1] Then
ExitLong("bx");
if MarketPosition == -1 and value3 > value3[1] Then
ExitShort("sx");
if MarketPosition !=0 Then{
ExitLong("bPT1",atLimit,EntryPrice+1);#진입가+1포인트 매수청산
ExitShort("SPT1",AtLimit,EntryPrice-1);#진입가-1포인트 매도청산
}
즐거운 하루되세요
> 비츠로 님이 쓴 글입니다.
> 제목 : 다시 문의드립니다.
> 작성해주신 시스템식으로 테스트해봤는데 여전히 수익청산이 된후 바로 진입 신호가 뜹니다.
어디가 잘못 됐는지요...
부탁드립니다.
Input : shortPeriod(5), longPeriod(20), period(36);
value1 = ema(C, shortPeriod);
value2 = ema(C, longPeriod);
value3= ema(C, Period);
If value1> value2 and value3 > value3[1] Then
{
Buy();
}
if MarketPosition == 1 and value3 < value3[1] Then
exitlong();
If value1<value2 and value3 < value3[1] Then
{
Sell();
}
if MarketPosition == -1 and value3 > value3[1] Then
ExitShort();
if MarketPosition !=0 Then{exitlong("bPT1",atLimit,EntryPrice+1);#진입가+1포인트 매수청산
ExitShort("SPT1",AtLimit,EntryPrice-1);#진입가-1포인트 매도청산
}
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 10{
if sdate == EntryDate(cnt) Then
count = count+1;
}
condition1 = count == 0 or (count >= 1 and (MarketPosition == -1 or (MarketPosition == 0 and MarketPosition(1) != 1)));
condition2 = count == 0 or (count >= 1 and (MarketPosition == 1 or (MarketPosition == 0 and MarketPosition(1) != -1)));
if Condition1 == true and value1> value2 and value3 > value3[1] Then
buy();
if Condition2 == true and value1<value2 and value3 < value3[1] Then
sell();
이전글