커뮤니티

문의드립니다.

프로필 이미지
잡다백수
2019-05-13 01:20:33
192
글번호 128610
답변완료
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 기타 앞의 재질문 답변 부탁드립니다. 2. 시스템 예전에 띠봉선생님 글 보고 생각해본 건데요. 이렇게도 되나요? -진입할 지 말지 랜덤으로 정함. -매수 매도도 랜덤으로 정함. -진입은 장개시후 즉시진입 -트레일링스탑을 할 지 말지도 랜덤으로 정함. 3. 지표 당일 종가(Dayclose)와 당일시가(dayopen)로 만든 역사적 변동성 지표 부탁드립니다. 원래는 당일종가와 전일종가로 구하는 걸로 알고 있는데요. 4. 기타 셋업 -일봉 5이평 이격이 120 이상일 때 고가 셋업 진입 -a: 셋업봉 + 50 틱에서 즉시 매도 추가진입 -b: 진입가에서 50틱이 더 올랐으면 추가매도 (물타기) -c: 또 50틱 오르면 추가매도 -d: 또 50틱 오르면 추가매도(총 3회 물타기) 청산 -5일선 하향 돌파시 Atstop 청산(분봉상 한개 전 봉 5일선 값 터치하면 청산해주시면 될 것 같습니다.) *a,b,c,d 중 어느 한 때라도 5일선 도달했으면 포지션 모두 청산함. *포지션의 손실이 시뮬상 수익금액의 n%(외부변수)가 되면 모두 청산. 5. 기타 4번과 모든 조건은 같고 *포지션의 손실이 시뮬상 수익금액의 n%(외부변수)가 되면 모두 청산.← 이 부분을 시뮬상 일 최대수익의 n%로
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-05-14 14:05:11

안녕하세요 예스스탁입니다. 1 3번, 4번식 다시 올려드립니다. 3 input: ATR기간(3),ATR곱셈(3),n(5),당일진입횟수(2); var : 매수단위(0),투입금액(0),ATRV(0),count(0),HH(0); var : vol(0); ATRV = atr(ATR기간); 매수단위 = 1; #진입회수제한 Count = 0 ; for Value1 = 0 to 10 { if EntryDate( Value1 ) == sdate then Count = Count + 1; } #당일첫번째 진입(기존조건으로 진입) if MarketPosition <= 0 and Count == 0 and NextBarSdate == sdate then buy("b1",AtStop,dayopen + n * PriceScale, 매수단위); #당일 두번째 진입부터 당일 N번째 진입까지 #직전 매수거래의 최고가 아래에서 가격이 상승해 최고가 이상의 시세 발생시 매수진입 if MarketPosition <= 0 and Count >= 1 and Count < 당일진입횟수 and stime > 100000 and H < HH + n * PriceScale and PositionProfit(1) >= 0 and NextBarSdate == sdate then { buy("b2",AtStop, HH + n * PriceScale, 매수단위); } if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { if MaxEntries == 2 Then vol = 매수단위*2; else if MaxEntries >= 3 Then vol = vol+1; Else vol = 매수단위; } //진입이후 최고가 HH = highest(H,BarsSinceEntry); if NextBarSdate == sdate Then buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,vol); ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV ); } 4 input: ATR기간(3),ATR곱셈(3),n(5),당일진입횟수(2),Nentry(3),N2(2); var : 매수단위(0),투입금액(0),ATRV(0),count(0),HH(0); var : vol(0); ATRV = atr(ATR기간); 매수단위 = 1; #진입회수제한 Count = 0 ; for Value1 = 0 to 10 { if EntryDate( Value1 ) == sdate then Count = Count + 1; } #당일첫번째 진입(기존조건으로 진입) if MarketPosition <= 0 and Count == 0 and NextBarSdate == sdate then buy("b1",AtStop,dayopen + n * PriceScale, 매수단위); #당일 두번째 진입부터 당일 N번째 진입까지 #직전 매수거래의 최고가 아래에서 가격이 상승해 최고가 이상의 시세 발생시 매수진입 if MarketPosition <= 0 and Count >= 1 and Count < 당일진입횟수 and stime > 100000 and H < HH + n * PriceScale and PositionProfit(1) >= 0 and NextBarSdate == sdate then { buy("b2",AtStop, HH + n * PriceScale, 매수단위); } if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] then { if MaxEntries == Nentry-1 Then vol = 매수단위*N2; else if MaxEntries >= Nentry Then vol = vol+1; Else vol = 매수단위; } //진입이후 최고가 HH = highest(H,BarsSinceEntry); if NextBarSdate == sdate Then buy("bb",AtStop,LatestEntryPrice(0)+ATR곱셈*ATRV*2 ,vol); ExitLong("bx2",AtStop,LatestEntryPrice(0)-ATR곱셈*ATRV ); } 2 아래 내용 참고해서 수정보완해 사용하시기 바랍니다. if NextBarSdate != sdate Then { var1 = Random(2); if Random(2) >= 1 Then buy("b",AtMarket); Else sell("s",AtMarket); } if MarketPosition == 1 then { if MarketPosition[1] != MarketPosition then { var2 = Random(2); if var2 >= 1 Then Condition1 = true; Else Condition1 = false; } if Condition1 == true then { if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*20 Then ExitLong("bx",AtStop,highest(h,BarsSinceEntry)-PriceScale*10); } } if MarketPosition == -1 then { if MarketPosition[1] != MarketPosition then { var2 = Random(2); if var2 >= 1 Then Condition1 = true; Else Condition1 = false; } if Condition1 == true then { if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*20 Then ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*10); } } 3 input : N(60); var : sum(0),cnt(0),mav(0); sum = 0; for cnt = 0 to N-1 { sum = sum + (DayClose(cnt)-dayopen(cnt)); } mav = sum/N; plot1(mav,"시종n일평균"); 4 input : P(5),loss(5); var : sum(0),mav(0),cnt(0),dis(0); sum = 0; for cnt = 0 to P-1 { sum = sum + DayClose(cnt); } mav = sum/P; dis = C/mav*100; if crossup(dis,120) Then var1 = H; if MarketPosition <= 0 and var1 > 0 Then sell("s",atlimit,var1+PriceScale*50); if MarketPosition == -1 then { if MaxEntries < 4 Then sell("ss",atlimit,LatestEntryPrice(0)+PriceScale*50); ExitShort("sx1",atlimit,mav); ExitShort("sx2",atlimit,entryprice*(1+loss/100)); } 5 input : P(5),loss(5); var : sum(0),mav(0),cnt(0),dis(0); sum = 0; for cnt = 0 to P-1 { sum = sum + DayClose(cnt); } mav = sum/P; dis = C/mav*100; if crossup(dis,120) Then var1 = H; if MarketPosition <= 0 and var1 > 0 Then sell("s",atlimit,var1+PriceScale*50); if MarketPosition == -1 then { if MaxEntries < 4 Then sell("ss",atlimit,LatestEntryPrice(0)+PriceScale*50); ExitShort("sx1",atlimit,mav); ExitShort("sx2",atlimit,lowest(L,BarsSinceEntry)*(1+loss/100)); } 즐거운 하루되세요 > 잡다백수 님이 쓴 글입니다. > 제목 : 문의드립니다. > 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다. 1. 기타 앞의 재질문 답변 부탁드립니다. 2. 시스템 예전에 띠봉선생님 글 보고 생각해본 건데요. 이렇게도 되나요? -진입할 지 말지 랜덤으로 정함. -매수 매도도 랜덤으로 정함. -진입은 장개시후 즉시진입 -트레일링스탑을 할 지 말지도 랜덤으로 정함. 3. 지표 당일 종가(Dayclose)와 당일시가(dayopen)로 만든 역사적 변동성 지표 부탁드립니다. 원래는 당일종가와 전일종가로 구하는 걸로 알고 있는데요. 4. 기타 셋업 -일봉 5이평 이격이 120 이상일 때 고가 셋업 진입 -a: 셋업봉 + 50 틱에서 즉시 매도 추가진입 -b: 진입가에서 50틱이 더 올랐으면 추가매도 (물타기) -c: 또 50틱 오르면 추가매도 -d: 또 50틱 오르면 추가매도(총 3회 물타기) 청산 -5일선 하향 돌파시 Atstop 청산(분봉상 한개 전 봉 5일선 값 터치하면 청산해주시면 될 것 같습니다.) *a,b,c,d 중 어느 한 때라도 5일선 도달했으면 포지션 모두 청산함. *포지션의 손실이 시뮬상 수익금액의 n%(외부변수)가 되면 모두 청산. 5. 기타 4번과 모든 조건은 같고 *포지션의 손실이 시뮬상 수익금액의 n%(외부변수)가 되면 모두 청산.← 이 부분을 시뮬상 일 최대수익의 n%로