커뮤니티

수식 검토 부탁드립니다 ㅠ

프로필 이미지
ryan1
2024-05-10 12:19:00
833
글번호 179359
답변완료
안녕하세요? 항상 좋은 자료와 시스템 공부하는데 잘 활용하고 있게 해주셔서 감사합니다. 1.나름 시스템식을 만들었는데,롱이 나왔다 바로 숏이 나오네요,,, 뭐가 잘못된것일까요? 2. settrailingstop의 목표가를 볼린져밴드의 상한선,하한선의 값으로 설정하고 싶은데 수식을 어떻게 만들면 될까요? 미리 감사합니다. 화창한 오월의 햇살도 함께 만끽하시기 바랍니다. input : P1(5),P2(10),profit(20), 드랍(5); var : mav1_1(0,data1),mav1_2(0,data1), mav2_1(0,data2),mav2_2(0,data2), mav3_1(0,data3),mav3_2(0,data3), mav4_1(0,data4),mav4_2(0,data4); mav1_1 = data1(wma(C,P1)); mav1_2 = data1(wma(C,P2)); mav2_1 = data2(wma(C,P1)); mav2_2 = data2(wma(C,P2)); mav3_1 = data3(wma(C,P1)); mav3_2 = data3(wma(C,P2)); mav4_1 = data4(wma(C,P1)); mav4_2 = data4(wma(C,P2)); if CrossUp(mav2_1,mav2_2) and (mav2_1>mav2_2) and (mav3_1>mav3_2) and (mav4_1>mav4_2) Then buy(); ExitShort(); if CrossDown(mav2_1,mav2_2) and (mav2_1<mav2_2) and (mav3_1<mav3_2) and (mav4_1<mav4_2) Then Sell(); ExitLong(); if MarketPosition == 1 Then SetStopTrailing(드랍*PriceScale,profit*PriceScale,PointStop,0); Else SetStopTrailing(0,0); if MarketPosition == -1 Then SetStopTrailingg(드랍*PriceScale,profit*PriceScale,PointStop,0); Else SetStopTrailing(0,0);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-05-10 13:23:00

안녕하세요 예스스탁입니다. 1 if CrossUp(mav2_1,mav2_2) and (mav2_1>mav2_2) and (mav3_1>mav3_2) and (mav4_1>mav4_2) Then buy(); ExitShort(); if문에 포함되는 실행문이 2개이상이면 {}로 묶어주셔야 합니다. 위식에서 exitshort은 if문에 포함되는 내용이 아닙니다. 아무 조건없어 별도로 존재하게 됩니다. if CrossUp(mav2_1,mav2_2) and (mav2_1>mav2_2) and (mav3_1>mav3_2) and (mav4_1>mav4_2) Then { buy(); ExitShort(); } buy와 sell은 진입함수로 반대포지션 상태에서 발생하면 반대포지션 청산을 자동으로 같이 하게 됩니다. 그러므로 스위칭시 별도로 청산함수는 불필요합니다. 2 SetStopTrailing도 매수와 매도포지션 동일하게 셋팅하므로 나누어 하실 필요가 없습니다. 한줄로 처리하시면 됩니다. 매수와 매도포지션에서 지정한 값이 다르면 아래와 같이 처리하셔야 합니다. if MarketPosition == 1 Then SetStopTrailing(드랍1*PriceScale,profit1*PriceScale,PointStop,0); Else if MarketPosition == -1 Then SetStopTrailing(드랍2*PriceScale,profit1*PriceScale,PointStop,0); Else SetStopTrailing(0,0); 3 input : P1(5),P2(10),profit(20), 드랍(5); input : BBP(20),dv(2); var : mav1_1(0,data1),mav1_2(0,data1), mav2_1(0,data2),mav2_2(0,data2), mav3_1(0,data3),mav3_2(0,data3), mav4_1(0,data4),mav4_2(0,data4); var : bbup(0,Data1),bbdn(0,Data1); mav1_1 = data1(wma(C,P1)); mav1_2 = data1(wma(C,P2)); mav2_1 = data2(wma(C,P1)); mav2_2 = data2(wma(C,P2)); mav3_1 = data3(wma(C,P1)); mav3_2 = data3(wma(C,P2)); mav4_1 = data4(wma(C,P1)); mav4_2 = data4(wma(C,P2)); bbup = Data1(BollBandUp(BBP,dv)); bbdn = Data1(BollBandDown(BBP,dv)); if CrossUp(mav2_1,mav2_2) and (mav2_1>mav2_2) and (mav3_1>mav3_2) and (mav4_1>mav4_2) Then buy(); if CrossDown(mav2_1,mav2_2) and (mav2_1<mav2_2) and (mav3_1<mav3_2) and (mav4_1<mav4_2) Then Sell(); #매수진입 후 볼밴 하단 터치하면 청산 if MarketPosition == 1 Then ExitLong("bx",AtStop,bbdn); #매도진입 후 볼밴 상단 터치하면 청산 if MarketPosition == -1 Then ExitShort("sx",AtStop,Bbup); SetStopTrailing(드랍*PriceScale,profit*PriceScale,PointStop); 즐거운 하루되세요 > ryan1 님이 쓴 글입니다. > 제목 : 수식 검토 부탁드립니다 ㅠ > 안녕하세요? 항상 좋은 자료와 시스템 공부하는데 잘 활용하고 있게 해주셔서 감사합니다. 1.나름 시스템식을 만들었는데,롱이 나왔다 바로 숏이 나오네요,,, 뭐가 잘못된것일까요? 2. settrailingstop의 목표가를 볼린져밴드의 상한선,하한선의 값으로 설정하고 싶은데 수식을 어떻게 만들면 될까요? 미리 감사합니다. 화창한 오월의 햇살도 함께 만끽하시기 바랍니다. input : P1(5),P2(10),profit(20), 드랍(5); var : mav1_1(0,data1),mav1_2(0,data1), mav2_1(0,data2),mav2_2(0,data2), mav3_1(0,data3),mav3_2(0,data3), mav4_1(0,data4),mav4_2(0,data4); mav1_1 = data1(wma(C,P1)); mav1_2 = data1(wma(C,P2)); mav2_1 = data2(wma(C,P1)); mav2_2 = data2(wma(C,P2)); mav3_1 = data3(wma(C,P1)); mav3_2 = data3(wma(C,P2)); mav4_1 = data4(wma(C,P1)); mav4_2 = data4(wma(C,P2)); if CrossUp(mav2_1,mav2_2) and (mav2_1>mav2_2) and (mav3_1>mav3_2) and (mav4_1>mav4_2) Then buy(); ExitShort(); if CrossDown(mav2_1,mav2_2) and (mav2_1<mav2_2) and (mav3_1<mav3_2) and (mav4_1<mav4_2) Then Sell(); ExitLong(); if MarketPosition == 1 Then SetStopTrailing(드랍*PriceScale,profit*PriceScale,PointStop,0); Else SetStopTrailing(0,0); if MarketPosition == -1 Then SetStopTrailingg(드랍*PriceScale,profit*PriceScale,PointStop,0); Else SetStopTrailing(0,0);