커뮤니티

부탁드립니다.

프로필 이미지
dayun01
2019-03-05 12:22:41
198
글번호 126716
답변완료
안녕하세요. 미리 감사드립니다. 1. 분할매수(또는 피라미딩) 시스템 수식을 작성하려합니다. <진입조건> *전제: 이평선 210선 상향(이봉전 이평값보다 클때)조건 *추가매수 5회한도 진입1) MACD값이 0선 돌파시 매수 진입2) MACD가 0선이상에서 골드크로스할때 매수 단, MACD 크로스값이 앞전 크로스 값보다 클때만 진입. *봉카운터를 해서 추가진입시에는 10봉이상 지난후에만 가능하도록 해주세요. <청산조건> *전제: 평균단가 기준으로 청산 청산1) MACD 80선 하향돌파(단 평균단가기준 익절경우) 청산2) MACD가 50선이상에서 데드크로스할때 매도(단 평균단가기준 익절경우) 청산3) 손절 10% 2. 별도 질문입니다. 현재 운용중인 시스템 수식중에 아래와 같이 시간기준으로 청산하는 것이 있는데 가끔가다 청산이 안되는 경우가 생기는데 해결방안 조언 부탁합니다. If sTime == (매도시간 + 000000) Then ExitLong("+E[1]", AtMarket, DEF, "", Contracts, 1);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-03-06 14:00:40

안녕하세요 예스스탁입니다. 1 청산1,청산2는 내용판단이 되지 않습니다. MACD기준인데 평단가와 어떤방식으로 결합되는지 모르겠습니다. MACD가 80을 하향이탈하면 청산, 50위에서 데드시 청산으로 작성해 드립니다. 해당 부분은 직접 수정보완하시기 바랍니다. Input : short(12), long(26), signal(9); Var : MACDV(0) , MACDS(0) ; var1 = ma(C,210); MACDV = MACD(short, long); MACDS = ema(MACDV,signal); if var1 > var1[1] then { if MarketPosition == 0 and crossup(MACDV,0) Then { buy("b"); value1 = index; } if MarketPosition == 1 and index >= value1+10 and MaxEntries < 5 and MACDV > 0 and crossup(MACDV,MACDS) Then { buy("bb"); value1 = index; } } if MarketPosition == 1 Then { if CrossDown(MACDV,80) Then ExitLong("bx1"); if CrossDown(MACDV,MACDS) and MACDV > 50 Then ExitLong("bx2"); ExitLong("bx3",AtStop,AvgEntryPrice*0.90); } 2 올려주신 내용만으로는 저희가 알수가 없습니다. 수식에서 2가지 확인하시기 바랍니다. plot1(stime); plot2(매도시간 + 000000); 위 지표로 봉의 stime기준으로 (매도시간 + 000000)의 시간이 있는지 확인하시고 contracts값이 1이상인지 확인하시기 바랍니다. 즐거운 하루되세요 > dayun01 님이 쓴 글입니다. > 제목 : 부탁드립니다. > 안녕하세요. 미리 감사드립니다. 1. 분할매수(또는 피라미딩) 시스템 수식을 작성하려합니다. <진입조건> *전제: 이평선 210선 상향(이봉전 이평값보다 클때)조건 *추가매수 5회한도 진입1) MACD값이 0선 돌파시 매수 진입2) MACD가 0선이상에서 골드크로스할때 매수 단, MACD 크로스값이 앞전 크로스 값보다 클때만 진입. *봉카운터를 해서 추가진입시에는 10봉이상 지난후에만 가능하도록 해주세요. <청산조건> *전제: 평균단가 기준으로 청산 청산1) MACD 80선 하향돌파(단 평균단가기준 익절경우) 청산2) MACD가 50선이상에서 데드크로스할때 매도(단 평균단가기준 익절경우) 청산3) 손절 10% 2. 별도 질문입니다. 현재 운용중인 시스템 수식중에 아래와 같이 시간기준으로 청산하는 것이 있는데 가끔가다 청산이 안되는 경우가 생기는데 해결방안 조언 부탁합니다. If sTime == (매도시간 + 000000) Then ExitLong("+E[1]", AtMarket, DEF, "", Contracts, 1);