커뮤니티

문의드립니다.

프로필 이미지
종호
2022-04-18 13:46:03
1261
글번호 158093
답변완료
작성해 주신 수식의 조건식을 아래와 같이 수정하려고 합니다. ~~~~~~~~~~ 조건식 수정: 3분봉에서 기준선A와 기준선B 가 예비선으로 준비되어 있습니다. 매수: 3분봉 종가가 무포지션이나 매도포지션시 기준선A 를 crossup 이 발생하면 매수하는데요 무포이면 1단계로 1계약을 매수하고 매도물량이 있으면 전량 청산하고 1계약 매수합니다. 1단계 매수진행후 손절은 (기준선 A -일봉 시가) 만큼 떨어지면 손절합니다. 1단계 매수후에 일봉종가가 양봉이면 2단계로 1계약 추가 매수합니다. 2단계 손절은 2차 매수 가격대비 (기준선 A -일봉 시가) 만큼 떨어지면 손절합니다. 1단계와 2단계에서 (단 3단계부터의 손절시는 그냥 손절만 하고 반대포지션을 안취합니 다.) 손절시 손절과 동시에 반대포지션 1계약 매도합니다. 그 후 즉 매수손절과 동시에 1단계 반대 매도 포지션후 위의 (기준선 A -일봉 시가) 만큼다시 하락하면 2단계 매도로 1계약 추가 매도합니다. 2단계후 또 다시 200틱 수익이 더 날 때마다 1계약 추가 매도를 계속 진행 합니다. 이 때 1단계 2단계 반대 포지션시 손절은 앞에서와 마찬가지로 매도후 가장 최근의 매도 가격대비 (기준선 A -일봉 시가) 만큼 상승하면 손절합니다. 3단계이상의 반대포지션시 손절은 평균 매도 가격입니다. 매수후 2단계후 또 다시 200틱 수익이 더 날 때마다 1계약 추가 매수를 계속 진행 합니다. 2단계후 3단계부터는 손절선은 평균 매수가격입니다. 매도도 반대 논리로 부탁드립니다. 다만 매도의 기준선은 기준선 B 입니다. ~~~~~~~~~~~~~~~ 아래는 원래 수식입니다. 안녕하세요 예스스탁입니다. 파리미딩은 모든진입신호허용으로 설정하고 적용하시면 됩니다. var : cnt(0),bc(0),bo(0),b(0),ac(0),ao(0),a(0),t(0); if NextBarSdate != sDate Then { if C < DayOpen Then { B = -1; For cnt = 1 to 99 { if B == -1 and DayClose(cnt) < DayOpen(cnt) and DayClose(0) < DayClose(cnt) and DayOpen(0) < DayOpen(cnt) Then { bc = DayClose(0); bo = DayOpen(cnt); b = (bc+bo)/2; } } } if C > DayOpen Then { A = -1; For cnt = 1 to 99 { if A == -1 and DayClose(cnt) > DayOpen(cnt) and DayClose(0) > DayClose(cnt) and DayOpen(0) > DayOpen(cnt) Then { ac = DayClose(0); ao = DayOpen(cnt); a = (ac+ao)/2; } } } } if MarketPosition <= 0 and ((a > 0 and CrossUp(C,a)) or (b > 0 and CrossUp(C,b))) Then Buy("b"); if MarketPosition >= 0 and ((a > 0 and CrossDown(C,a)) or (b > 0 and CrossDown(C,b))) Then Sell("s"); if MarketPosition == 1 Then { buy("bb",AtStop,LatestEntryPrice(0)+PriceScale*200); if MaxEntries >= 2 Then ExitLong("bx",AtStop,AvgEntryPrice); } if MarketPosition == -1 Then { Sell("ss",AtStop,LatestEntryPrice(0)-PriceScale*200); if MaxEntries >= 2 Then ExitShort("sx",AtStop,AvgEntryPrice); } 즐거운 하루되세요 > 종호 님이 쓴 글입니다. > 제목 : 문의드립니다. > 3분봉에서 기준선A와 기준선B 가 예비선으로 준비되어 있습니다. 3분봉 종가가 기준선 2개 중에 어는 한선이라도 crossup 이 발생하면 매수하는데요 무포지션이면 1계약을 신규 매수하고 매도물량이 있으면 전량 청산하고 1계약 매수합니다. 매수후에 200틱 이익이 나면 1계약 매수하고 또 다시 200틱 수익이 더 날 때마다 1계약 추가 매수를 계속 진행 합니다. 1단계 매수진행은 손절선이 없고 다단계로 매수가 진행될 경우에만 손절가격이 정해지는데 평균 매수 가격이 손절가격이 됩니다. 매도도 반대 논리로 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-04-18 14:02:47

안녕하세요 예스스탁입니다. var : cnt(0),bc(0),bo(0),b(0),ac(0),ao(0),a(0),t(0); if NextBarSdate != sDate Then { if C < DayOpen Then { B = -1; For cnt = 1 to 99 { if B == -1 and DayClose(cnt) < DayOpen(cnt) and DayClose(0) < DayClose(cnt) and DayOpen(0) < DayOpen(cnt) Then { bc = DayClose(0); bo = DayOpen(cnt); b = (bc+bo)/2; } } } if C > DayOpen Then { A = -1; For cnt = 1 to 99 { if A == -1 and DayClose(cnt) > DayOpen(cnt) and DayClose(0) > DayClose(cnt) and DayOpen(0) > DayOpen(cnt) Then { ac = DayClose(0); ao = DayOpen(cnt); a = (ac+ao)/2; } } } } if MarketPosition <= 0 and a > 0 and CrossUp(C,a) Then Buy("b1",OnClose,DEF,1); if MarketPosition >= 0 and b > 0 and CrossDown(C,b) Then Sell("s1",OnClose,DEF,1); if MarketPosition == 1 Then { if IsEntryName("b1") == true Then { if MaxEntries == 1 and C > DayOpen Then buy("b2"); if MaxEntries >= 2 Then buy("b3",AtStop,LatestEntryPrice(0)+PriceScale*200); if MaxEntries <= 2 Then Sell("bs",AtStop,LatestEntryPrice(0)-abs(a-DayOpen)); Else ExitLong("bx",AtStop,AvgEntryPrice); } if IsEntryName("sb") == true Then { if MaxEntries == 1 Then Buy("b2.",AtStop,LatestEntryPrice(0)+abs(a-DayOpen),1); if MaxEntries >= 2 Then buy("b3.",AtStop,LatestEntryPrice(0)+PriceScale*200); if MaxEntries <= 2 Then ExitLong("bx1.",AtStop,LatestEntryPrice(0)-abs(a-DayOpen)); Else ExitLong("bx2.",AtStop,AvgEntryPrice); } } if MarketPosition == -1 Then { if IsEntryName("s1") == true Then { if MaxEntries == 1 and C < DayOpen Then Sell("s2"); if MaxEntries >= 2 Then Sell("s3",AtStop,LatestEntryPrice(0)-PriceScale*200); if MaxEntries <= 2 Then Buy("sb",AtStop,LatestEntryPrice(0)-abs(b-DayOpen)); Else ExitShort("sx",AtStop,AvgEntryPrice); } if IsEntryName("bs") == true Then { if MaxEntries == 1 and C < DayOpen Then Sell("s2.",AtStop,LatestEntryPrice(0)-abs(a-DayOpen),1); if MaxEntries >= 2 Then Sell("s3.",AtStop,LatestEntryPrice(0)-PriceScale*200); if MaxEntries <= 2 Then ExitShort("sx1.",AtStop,LatestEntryPrice(0)-abs(b-DayOpen)); Else ExitShort("sx2.",AtStop,AvgEntryPrice); } } 즐거운 하루되세요 > 종호 님이 쓴 글입니다. > 제목 : 문의드립니다. > 작성해 주신 수식의 조건식을 아래와 같이 수정하려고 합니다. ~~~~~~~~~~ 조건식 수정: 3분봉에서 기준선A와 기준선B 가 예비선으로 준비되어 있습니다. 매수: 3분봉 종가가 무포지션이나 매도포지션시 기준선A 를 crossup 이 발생하면 매수하는데요 무포이면 1단계로 1계약을 매수하고 매도물량이 있으면 전량 청산하고 1계약 매수합니다. 1단계 매수진행후 손절은 (기준선 A -일봉 시가) 만큼 떨어지면 손절합니다. 1단계 매수후에 일봉종가가 양봉이면 2단계로 1계약 추가 매수합니다. 2단계 손절은 2차 매수 가격대비 (기준선 A -일봉 시가) 만큼 떨어지면 손절합니다. 1단계와 2단계에서 (단 3단계부터의 손절시는 그냥 손절만 하고 반대포지션을 안취합니 다.) 손절시 손절과 동시에 반대포지션 1계약 매도합니다. 그 후 즉 매수손절과 동시에 1단계 반대 매도 포지션후 위의 (기준선 A -일봉 시가) 만큼다시 하락하면 2단계 매도로 1계약 추가 매도합니다. 2단계후 또 다시 200틱 수익이 더 날 때마다 1계약 추가 매도를 계속 진행 합니다. 이 때 1단계 2단계 반대 포지션시 손절은 앞에서와 마찬가지로 매도후 가장 최근의 매도 가격대비 (기준선 A -일봉 시가) 만큼 상승하면 손절합니다. 3단계이상의 반대포지션시 손절은 평균 매도 가격입니다. 매수후 2단계후 또 다시 200틱 수익이 더 날 때마다 1계약 추가 매수를 계속 진행 합니다. 2단계후 3단계부터는 손절선은 평균 매수가격입니다. 매도도 반대 논리로 부탁드립니다. 다만 매도의 기준선은 기준선 B 입니다. ~~~~~~~~~~~~~~~ 아래는 원래 수식입니다. 안녕하세요 예스스탁입니다. 파리미딩은 모든진입신호허용으로 설정하고 적용하시면 됩니다. var : cnt(0),bc(0),bo(0),b(0),ac(0),ao(0),a(0),t(0); if NextBarSdate != sDate Then { if C < DayOpen Then { B = -1; For cnt = 1 to 99 { if B == -1 and DayClose(cnt) < DayOpen(cnt) and DayClose(0) < DayClose(cnt) and DayOpen(0) < DayOpen(cnt) Then { bc = DayClose(0); bo = DayOpen(cnt); b = (bc+bo)/2; } } } if C > DayOpen Then { A = -1; For cnt = 1 to 99 { if A == -1 and DayClose(cnt) > DayOpen(cnt) and DayClose(0) > DayClose(cnt) and DayOpen(0) > DayOpen(cnt) Then { ac = DayClose(0); ao = DayOpen(cnt); a = (ac+ao)/2; } } } } if MarketPosition <= 0 and ((a > 0 and CrossUp(C,a)) or (b > 0 and CrossUp(C,b))) Then Buy("b"); if MarketPosition >= 0 and ((a > 0 and CrossDown(C,a)) or (b > 0 and CrossDown(C,b))) Then Sell("s"); if MarketPosition == 1 Then { buy("bb",AtStop,LatestEntryPrice(0)+PriceScale*200); if MaxEntries >= 2 Then ExitLong("bx",AtStop,AvgEntryPrice); } if MarketPosition == -1 Then { Sell("ss",AtStop,LatestEntryPrice(0)-PriceScale*200); if MaxEntries >= 2 Then ExitShort("sx",AtStop,AvgEntryPrice); } 즐거운 하루되세요 > 종호 님이 쓴 글입니다. > 제목 : 문의드립니다. > 3분봉에서 기준선A와 기준선B 가 예비선으로 준비되어 있습니다. 3분봉 종가가 기준선 2개 중에 어는 한선이라도 crossup 이 발생하면 매수하는데요 무포지션이면 1계약을 신규 매수하고 매도물량이 있으면 전량 청산하고 1계약 매수합니다. 매수후에 200틱 이익이 나면 1계약 매수하고 또 다시 200틱 수익이 더 날 때마다 1계약 추가 매수를 계속 진행 합니다. 1단계 매수진행은 손절선이 없고 다단계로 매수가 진행될 경우에만 손절가격이 정해지는데 평균 매수 가격이 손절가격이 됩니다. 매도도 반대 논리로 부탁드립니다.