커뮤니티

수식 작성 부탁드립니다.

프로필 이미지
wootnt
2019-10-07 23:17:48
156
글번호 132578
답변완료
*매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함 *매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함 *당일 손절 20틱, 익절 40틱시 매매종료 *매매시간 : 오전6시59분~오전8시 *썸머타임 시간변경 스크립트도 추가 부탁드립니다.
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2019-10-08 11:42:51

안녕하세요 예스스탁입니다. input : starttime(080000),endtime(065900); input : 익절틱수(10),손절틱수(10); Input : 당일수익틱수(40),당일손실틱수(20); var : Tcond(false); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); var : Summer(False),Year(0),st(0),et(0); var : V1(0),V2(0),V3(0),V4(0); #영업일 변경 if bdate != bdate[1] Then { //썸머타임체크 Year = Floor(bdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜 v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜 Summer = bdate > (10000 * Year) + (100 * 3) + v2 And bdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { st = starttime; et = endtime; } Else { st = starttime+10000; et = endtime+10000; } } 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if (sdate != sdate[1] and stime >= et) or (sdate == sdate[1] and stime >= et and stime[1] < et) then { Tcond = false; if MarketPosition == 1 Then ExitLong("bx"); if MarketPosition == -1 Then ExitShort("sx"); } if (sdate != sdate[1] and stime >= st) or (sdate == sdate[1] and stime >= st and stime[1] < st) then { Tcond = true; Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 or daypl <= -당일손실 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; } var1 = ma(C,3); var2 = ma(C,19); if Xcond == false then { if var1 > var2 and crossup(c,var1) Then buy(); if var1 < var2 and CrossDown(c,var1) Then sell(); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } 즐거운 하루되세요 > wootnt 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > *매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함 *매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함 *당일 손절 20틱, 익절 40틱시 매매종료 *매매시간 : 오전6시59분~오전8시 *썸머타임 시간변경 스크립트도 추가 부탁드립니다.
프로필 이미지

wootnt

2019-10-08 13:11:44

수식 감사드립니다. 그런데 진입이 봉의 종가가 아닌 3일선에 붙여서는 어려울까요? 예를들어 상방 돌파 후 내려올때 3일선에서 잡는식입니다. 혹시 가능하다면 수정 부탁드리겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. input : starttime(080000),endtime(065900); input : 익절틱수(10),손절틱수(10); Input : 당일수익틱수(40),당일손실틱수(20); var : Tcond(false); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); var : Summer(False),Year(0),st(0),et(0); var : V1(0),V2(0),V3(0),V4(0); #영업일 변경 if bdate != bdate[1] Then { //썸머타임체크 Year = Floor(bdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜 v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜 Summer = bdate > (10000 * Year) + (100 * 3) + v2 And bdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { st = starttime; et = endtime; } Else { st = starttime+10000; et = endtime+10000; } } 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if (sdate != sdate[1] and stime >= et) or (sdate == sdate[1] and stime >= et and stime[1] < et) then { Tcond = false; if MarketPosition == 1 Then ExitLong("bx"); if MarketPosition == -1 Then ExitShort("sx"); } if (sdate != sdate[1] and stime >= st) or (sdate == sdate[1] and stime >= st and stime[1] < st) then { Tcond = true; Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 or daypl <= -당일손실 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; } var1 = ma(C,3); var2 = ma(C,19); if Xcond == false then { if var1 > var2 and crossup(c,var1) Then buy(); if var1 < var2 and CrossDown(c,var1) Then sell(); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } 즐거운 하루되세요 > wootnt 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > *매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함 *매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함 *당일 손절 20틱, 익절 40틱시 매매종료 *매매시간 : 오전6시59분~오전8시 *썸머타임 시간변경 스크립트도 추가 부탁드립니다.
프로필 이미지

예스스탁 예스스탁 답변

2019-10-08 13:49:01

안녕하세요 예스스탁입니다. 3일선위에서 하락해서 3일선 터치시 매수 3일선 아래에서 상승해서 3일선 터치시 매도로 수정했습니다. input : starttime(080000),endtime(065900); input : 익절틱수(10),손절틱수(10); Input : 당일수익틱수(40),당일손실틱수(20); var : Tcond(false); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); var : Summer(False),Year(0),st(0),et(0); var : V1(0),V2(0),V3(0),V4(0); #영업일 변경 if bdate != bdate[1] Then { //썸머타임체크 Year = Floor(bdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜 v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜 Summer = bdate > (10000 * Year) + (100 * 3) + v2 And bdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { st = starttime; et = endtime; } Else { st = starttime+10000; et = endtime+10000; } } 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if (sdate != sdate[1] and stime >= et) or (sdate == sdate[1] and stime >= et and stime[1] < et) then { Tcond = false; if MarketPosition == 1 Then ExitLong("bx"); if MarketPosition == -1 Then ExitShort("sx"); } if (sdate != sdate[1] and stime >= st) or (sdate == sdate[1] and stime >= st and stime[1] < st) then { Tcond = true; Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 or daypl <= -당일손실 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; } var1 = ma(C,3); var2 = ma(C,19); if Xcond == false then { if var1 > var2 and L > var1 Then buy("b",atlimit,var1); if var1 < var2 and H < var1 Then sell("s",AtStop,var1); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } 즐거운 하루되세요 > wootnt 님이 쓴 글입니다. > 제목 : Re : Re : 수식 작성 부탁드립니다. > 수식 감사드립니다. 그런데 진입이 봉의 종가가 아닌 3일선에 붙여서는 어려울까요? 예를들어 상방 돌파 후 내려올때 3일선에서 잡는식입니다. 혹시 가능하다면 수정 부탁드리겠습니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 수식 작성 부탁드립니다. > 안녕하세요 예스스탁입니다. input : starttime(080000),endtime(065900); input : 익절틱수(10),손절틱수(10); Input : 당일수익틱수(40),당일손실틱수(20); var : Tcond(false); Var : N1(0),dayPl(0),당일수익(0),당일손실(0),Xcond(false); var : Summer(False),Year(0),st(0),et(0); var : V1(0),V2(0),V3(0),V4(0); #영업일 변경 if bdate != bdate[1] Then { //썸머타임체크 Year = Floor(bdate/10000); V1 = (10000 * Year) + (100 * 3) + 1; V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜 v3 = (10000 * Year) + (100 * 11) + 1; v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜 Summer = bdate > (10000 * Year) + (100 * 3) + v2 And bdate < (10000 * Year) + (100 * 11) + v4; if summer == true Then { st = starttime; et = endtime; } Else { st = starttime+10000; et = endtime+10000; } } 당일수익 = PriceScale*당일수익틱수; 당일손실 = PriceScale*당일손실틱수; if (sdate != sdate[1] and stime >= et) or (sdate == sdate[1] and stime >= et and stime[1] < et) then { Tcond = false; if MarketPosition == 1 Then ExitLong("bx"); if MarketPosition == -1 Then ExitShort("sx"); } if (sdate != sdate[1] and stime >= st) or (sdate == sdate[1] and stime >= st and stime[1] < st) then { Tcond = true; Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl >= 당일수익 or daypl <= -당일손실 Then Xcond = true; if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then Xcond = true; } var1 = ma(C,3); var2 = ma(C,19); if Xcond == false then { if var1 > var2 and crossup(c,var1) Then buy(); if var1 < var2 and CrossDown(c,var1) Then sell(); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop); if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } 즐거운 하루되세요 > wootnt 님이 쓴 글입니다. > 제목 : 수식 작성 부탁드립니다. > *매수조건 : 3-19 골든크로스 이후 3일선에서 매수진입, 10틱 손절 20틱익절로 3-19 데드크로스가 나올때까지 계속 3일선에서 매수진입. 청산 손절틱은 동일함 *매도조건 : 3-19 데드크로스 이후 3일선에서 매도진입, 10틱 손절 20틱익절로 3-19 골든크로스가 나올때까지 계속 3일선에서 매도진입. 청산 손절틱은 동일함 *당일 손절 20틱, 익절 40틱시 매매종료 *매매시간 : 오전6시59분~오전8시 *썸머타임 시간변경 스크립트도 추가 부탁드립니다.