커뮤니티

다시 문의드립니다.

프로필 이미지
비츠로
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)이 발생햇을 경우만 항상 반대방향 신호가 발생했을&#46468;만 진입을 들어가고자 하시면 아래와 같이 작성하시면 됩니다. 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();