커뮤니티

수정요청

프로필 이미지
좌오비우오비
2018-12-12 15:43:48
142
글번호 124379
답변완료

첨부 이미지

바쁘신 중에 수식문의에 답해주셔서 고맙습니다. 그런데 시뮬레이션 결과 요청내용대로 장중에 2.60에 도달하면 체결되는 경우들과 0901분에 3.72/ 5.73 /4.88 가격으로 바로 매수하는 경우들이 발생합니다.(별첨 참조) 2.60을 완성된 봉이 위쪽이나 아래쪽 방향에서 터치할 때 체결하는 수식으로 정정해주시면 고맙겠습니다. ***************************************************************** 안녕하세요 예스스탁입니다. input : Price(2.60), 당일최대진입횟수(1),진입시작시간(090000),진입종료시간(143000); input : 손절(32),익절(290),TR(46); var : T1(0),entry(0),Tcond(false); if bdate != bdate[1] Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시작시간) or (sdate == sdate[1] and stime >= 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; T1 = TotalTrades; } if (sdate != sdate[1] and stime >= 진입종료시간) or (sdate == sdate[1] and stime >= 진입종료시간 and stime[1] < 진입종료시간) Then Tcond = false; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if entry < 당일최대진입횟수 and MarketPosition == 0 and Tcond == true and crossup(C,Price) then buy("b1"); if MarketPosition == 1 then { if C <= EntryPrice-PriceScale*손절 Then exitlong("bl1"); if C >= EntryPrice+PriceScale*익절 Then ExitLong("bp1"); if C <= highest(h,BarsSinceEntry)-PriceScale*TR Then ExitLong("btr1"); } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 문의 > 아래 수식은 봉미완성시에 지정한 가격에 해당하는 시세가 발생하면 즉시 신호가 발생하는 수식입니다. 수식을 모두 봉완성 기준으로 바꾸어 주셨으면 합니다. (진입,손절,익절,tr) 비교가 필요하여 요청드립니다. ******************************************************************** input : Price(2.96), 당일최대진입횟수(1),진입시작시간(090000),진입종료시간(143000); input : 손절(40),익절(270),TR(115); var : T1(0),entry(0),Tcond(false); if bdate != bdate[1] Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시작시간) or (sdate == sdate[1] and stime >= 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; T1 = TotalTrades; } if (sdate != sdate[1] and stime >= 진입종료시간) or (sdate == sdate[1] and stime >= 진입종료시간 and stime[1] < 진입종료시간) Then Tcond = false; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if entry < 당일최대진입횟수 and MarketPosition == 0 and Tcond == true then{ if NextBarOpen <= Price Then buy("b1",AtStop,Price); } if MarketPosition == 1 then { ExitLong("bl1",AtStop,EntryPrice-PriceScale*손절); ExitLong("bp1",Atlimit,EntryPrice+PriceScale*익절); ExitLong("btr1",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2018-12-12 16:04:51

안녕하세요 예스스탁입니다. 1 해당 내용은 아래 내용외에는 추가로 수정해 드릴만한 부분이 없습니다. 봉완성기준으로 하면 종가기준으로만 가능합니다. 완성봉 기준으로는 별도의 방법이 없습니다. 가장 가까운 값이 종가입니다. 하향이탈을 추가하며 아래와 같습니다 input : Price(2.60), 당일최대진입횟수(1),진입시작시간(090000),진입종료시간(143000); input : 손절(32),익절(290),TR(46); var : T1(0),entry(0),Tcond(false); if bdate != bdate[1] Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시작시간) or (sdate == sdate[1] and stime >= 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; T1 = TotalTrades; } if (sdate != sdate[1] and stime >= 진입종료시간) or (sdate == sdate[1] and stime >= 진입종료시간 and stime[1] < 진입종료시간) Then Tcond = false; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if entry < 당일최대진입횟수 and MarketPosition == 0 and Tcond == true and (crossup(C,Price) or CrossDown(c,Price)) then buy("b1"); if MarketPosition == 1 then { if C <= EntryPrice-PriceScale*손절 Then exitlong("bl1"); if C >= EntryPrice+PriceScale*익절 Then ExitLong("bp1"); if C <= highest(h,BarsSinceEntry)-PriceScale*TR Then ExitLong("btr1"); } 2 이전 올리신 미완성에 발생하는 신호에 Price보다 가격이 높으면 하락해 Price이하의 시세가 발생할때를 추가하고자 하시면 아래식 이용하시면 됩니다. input : Price(2.96), 당일최대진입횟수(1),진입시작시간(090000),진입종료시간(143000); input : 손절(40),익절(270),TR(115); var : T1(0),entry(0),Tcond(false); if bdate != bdate[1] Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시작시간) or (sdate == sdate[1] and stime >= 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; T1 = TotalTrades; } if (sdate != sdate[1] and stime >= 진입종료시간) or (sdate == sdate[1] and stime >= 진입종료시간 and stime[1] < 진입종료시간) Then Tcond = false; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if entry < 당일최대진입횟수 and MarketPosition == 0 and Tcond == true then{ if NextBarOpen <= Price Then buy("b1",AtStop,Price); Else buy("b2",Atlimit,Price); } if MarketPosition == 1 then { ExitLong("bl1",AtStop,EntryPrice-PriceScale*손절); ExitLong("bp1",Atlimit,EntryPrice+PriceScale*익절); ExitLong("btr1",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR); } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 수정요청 > 바쁘신 중에 수식문의에 답해주셔서 고맙습니다. 그런데 시뮬레이션 결과 요청내용대로 장중에 2.60에 도달하면 체결되는 경우들과 0901분에 3.72/ 5.73 /4.88 가격으로 바로 매수하는 경우들이 발생합니다.(별첨 참조) 2.60을 완성된 봉이 위쪽이나 아래쪽 방향에서 터치할 때 체결하는 수식으로 정정해주시면 고맙겠습니다. ***************************************************************** 안녕하세요 예스스탁입니다. input : Price(2.60), 당일최대진입횟수(1),진입시작시간(090000),진입종료시간(143000); input : 손절(32),익절(290),TR(46); var : T1(0),entry(0),Tcond(false); if bdate != bdate[1] Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시작시간) or (sdate == sdate[1] and stime >= 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; T1 = TotalTrades; } if (sdate != sdate[1] and stime >= 진입종료시간) or (sdate == sdate[1] and stime >= 진입종료시간 and stime[1] < 진입종료시간) Then Tcond = false; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if entry < 당일최대진입횟수 and MarketPosition == 0 and Tcond == true and crossup(C,Price) then buy("b1"); if MarketPosition == 1 then { if C <= EntryPrice-PriceScale*손절 Then exitlong("bl1"); if C >= EntryPrice+PriceScale*익절 Then ExitLong("bp1"); if C <= highest(h,BarsSinceEntry)-PriceScale*TR Then ExitLong("btr1"); } 즐거운 하루되세요 > 좌오비우오비 님이 쓴 글입니다. > 제목 : 문의 > 아래 수식은 봉미완성시에 지정한 가격에 해당하는 시세가 발생하면 즉시 신호가 발생하는 수식입니다. 수식을 모두 봉완성 기준으로 바꾸어 주셨으면 합니다. (진입,손절,익절,tr) 비교가 필요하여 요청드립니다. ******************************************************************** input : Price(2.96), 당일최대진입횟수(1),진입시작시간(090000),진입종료시간(143000); input : 손절(40),익절(270),TR(115); var : T1(0),entry(0),Tcond(false); if bdate != bdate[1] Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시작시간) or (sdate == sdate[1] and stime >= 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; T1 = TotalTrades; } if (sdate != sdate[1] and stime >= 진입종료시간) or (sdate == sdate[1] and stime >= 진입종료시간 and stime[1] < 진입종료시간) Then Tcond = false; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = TotalTrades-T1+1; if entry < 당일최대진입횟수 and MarketPosition == 0 and Tcond == true then{ if NextBarOpen <= Price Then buy("b1",AtStop,Price); } if MarketPosition == 1 then { ExitLong("bl1",AtStop,EntryPrice-PriceScale*손절); ExitLong("bp1",Atlimit,EntryPrice+PriceScale*익절); ExitLong("btr1",AtStop,highest(h,BarsSinceEntry)-PriceScale*TR); }