커뮤니티

수식 수정 부탁드립니다.

프로필 이미지
비류천
2017-06-08 23:12:58
145
글번호 110266
답변완료
수고많으십니다. 아래수식을 실행시키면 당일거래횟수 변수가 2번으로 되어 있어 2번 진입되면 청산시간까지 가서 청산이 되고있는데 2번진입후 반대 신호 나오면 보유분 청산하고 그날 매매 종료하고 싶습니다. 감사합니다. -------------------------------------------------------- INPUT : LENGTH(5), PRO(100), LOSS(5),T(144900),TICK(10),하루손실(-10),당일거래횟수(2); VAR : TCHAN(0), BCHAN(0); var : bs1(0),ss1(0); var : bs2(0),ss2(0); var : bs3(0),ss3(0); var : bl(0),bh(0), sh(0), sl(0); var : NP(0),Pre(0),DayPL(0),Xcond(false); var : TT(0),T1(0),Entry(0); if stime >= 092000 or stime < 144900 Then{ NP = NetProfit; TT = TotalTrades; if Bdate != Bdate[1] Then{ Pre = NP[1]; Xcond = false; T1 = TT[1]; } DayPL = NP-Pre; if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if TotalTrades > TotalTrades[1] and (IsExitName("DBx",1) == true or IsExitName("DSx",1) == true) Then Xcond = true; TCHAN = HIGHEST(HIGH, LENGTH)[2]; BCHAN = LOWEST(LOW, LENGTH)[2]; // TCHAN 보다 크면 매수 1단계 if TCHAN[1] < H[1] then {bs1 = 1;} if BCHAN[1] > L[1] then {ss1 = 1;} // 만약 매수 1단계 진행중 BCHAN의 저가를 깨면 매수단계 초기화 if bs1 == 1 and BCHAN > L then {bs1=0; } if ss1 == 1 and TCHAN < H then {ss1=0; } //진입 if bs1 == 1 and Xcond == false and entry < 당일거래횟수 then {buy("매수",atlimit,TCHAN-PriceScale*TICK); } if ss1 == 1 and Xcond == false and entry < 당일거래횟수 then {sell("매도",atlimit,BCHAN+PriceScale*TICK); } if MarketPosition == 1 Then ExitLong("DBx",AtStop,EntryPrice+하루손실-dayPL); if MarketPosition == -1 Then ExitShort("DSx",AtStop,EntryPrice-하루손실+daypl ); SetStopProfittarget(PRO,PointStop); SetStopLoss(LOSS,PointStop); #SetStopEndofday(T); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-06-09 10:32:33

안녕하세요 예스스탁입니다. INPUT : LENGTH(5), PRO(100), LOSS(5),T(144900),TICK(10),하루손실(-10),당일거래횟수(2); VAR : TCHAN(0), BCHAN(0); var : bs1(0),ss1(0); var : bs2(0),ss2(0); var : bs3(0),ss3(0); var : bl(0),bh(0), sh(0), sl(0); var : NP(0),Pre(0),DayPL(0),Xcond(false); var : TT(0),T1(0),Entry(0); if stime >= 092000 or stime < 144900 Then{ NP = NetProfit; TT = TotalTrades; if Bdate != Bdate[1] Then{ Pre = NP[1]; Xcond = false; T1 = TT[1]; } DayPL = NP-Pre; if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if TotalTrades > TotalTrades[1] and (IsExitName("DBx",1) == true or IsExitName("DSx",1) == true) Then Xcond = true; TCHAN = HIGHEST(HIGH, LENGTH)[2]; BCHAN = LOWEST(LOW, LENGTH)[2]; // TCHAN 보다 크면 매수 1단계 if TCHAN[1] < H[1] then {bs1 = 1;} if BCHAN[1] > L[1] then {ss1 = 1;} // 만약 매수 1단계 진행중 BCHAN의 저가를 깨면 매수단계 초기화 if bs1 == 1 and BCHAN > L then {bs1=0; } if ss1 == 1 and TCHAN < H then {ss1=0; } //진입 if bs1 == 1 and Xcond == false then { if entry < 당일거래횟수 Then buy("매수",atlimit,TCHAN-PriceScale*TICK); Else ExitShort("sx",atlimit,TCHAN-PriceScale*TICK); } if ss1 == 1 and Xcond == false Then { if entry < 당일거래횟수 then sell("매도",atlimit,BCHAN+PriceScale*TICK); Else ExitLong("bx",atlimit,BCHAN+PriceScale*TICK); } if MarketPosition == 1 Then ExitLong("DBx",AtStop,EntryPrice+하루손실-dayPL); if MarketPosition == -1 Then ExitShort("DSx",AtStop,EntryPrice-하루손실+daypl ); SetStopProfittarget(PRO,PointStop); SetStopLoss(LOSS,PointStop); } #SetStopEndofday(T); 즐거운 하루되세요 > 비류천 님이 쓴 글입니다. > 제목 : 수식 수정 부탁드립니다. > 수고많으십니다. 아래수식을 실행시키면 당일거래횟수 변수가 2번으로 되어 있어 2번 진입되면 청산시간까지 가서 청산이 되고있는데 2번진입후 반대 신호 나오면 보유분 청산하고 그날 매매 종료하고 싶습니다. 감사합니다. -------------------------------------------------------- INPUT : LENGTH(5), PRO(100), LOSS(5),T(144900),TICK(10),하루손실(-10),당일거래횟수(2); VAR : TCHAN(0), BCHAN(0); var : bs1(0),ss1(0); var : bs2(0),ss2(0); var : bs3(0),ss3(0); var : bl(0),bh(0), sh(0), sl(0); var : NP(0),Pre(0),DayPL(0),Xcond(false); var : TT(0),T1(0),Entry(0); if stime >= 092000 or stime < 144900 Then{ NP = NetProfit; TT = TotalTrades; if Bdate != Bdate[1] Then{ Pre = NP[1]; Xcond = false; T1 = TT[1]; } DayPL = NP-Pre; if MarketPosition == 0 Then entry = TT-T1; Else entry = TT-T1+1; if TotalTrades > TotalTrades[1] and (IsExitName("DBx",1) == true or IsExitName("DSx",1) == true) Then Xcond = true; TCHAN = HIGHEST(HIGH, LENGTH)[2]; BCHAN = LOWEST(LOW, LENGTH)[2]; // TCHAN 보다 크면 매수 1단계 if TCHAN[1] < H[1] then {bs1 = 1;} if BCHAN[1] > L[1] then {ss1 = 1;} // 만약 매수 1단계 진행중 BCHAN의 저가를 깨면 매수단계 초기화 if bs1 == 1 and BCHAN > L then {bs1=0; } if ss1 == 1 and TCHAN < H then {ss1=0; } //진입 if bs1 == 1 and Xcond == false and entry < 당일거래횟수 then {buy("매수",atlimit,TCHAN-PriceScale*TICK); } if ss1 == 1 and Xcond == false and entry < 당일거래횟수 then {sell("매도",atlimit,BCHAN+PriceScale*TICK); } if MarketPosition == 1 Then ExitLong("DBx",AtStop,EntryPrice+하루손실-dayPL); if MarketPosition == -1 Then ExitShort("DSx",AtStop,EntryPrice-하루손실+daypl ); SetStopProfittarget(PRO,PointStop); SetStopLoss(LOSS,PointStop); #SetStopEndofday(T); }