커뮤니티

수식 문의드립니다

프로필 이미지
탱탱볼
2023-03-11 13:32:47
1543
글번호 167058
답변완료
안녕하세요. 수식 문의 좀 드립니다. 만든다고 만들었는데 신호는 잘 나오나 복리값 적용이 안되네요ㅜㅜ 수식에 이상한 점은 없는지 그리고 복리값 적용도 같이 좀 봐주시면 감사하겠습니다. input : 원금(1500000),시작일(20230101),시작시간(90000); var : Tcond(False),수량(0) ; if sDate == 시작일 and sTime >= 시작시간 Then Tcond = true; 수량 = (원금+NetProfit)/NextBarOpen; Input: shortperiod(12), longperiod(26), sig(6); input : short(40),long(80); var: signal(0), value(0); value1 = macd(shortperiod, longperiod); value2 = macd(short,long); Signal = Ema(value1, sig); # 매수/매도청산 If CrossUP(value1, 0) Then { Buy(); } If value1 > 0 and CrossUp(value1, signal) Then { Buy(); } If value1 > 0 and value2 > 0 Then { Buy(); } # 매도/매수청산 If CrossDown(value1, 0) Then { ExitLong(); } If value1 > 0 and CrossDown(value1, signal) and value2 < 0 Then { ExitLong(); } (짜집기해서 만든 수식이라 작동하는게 신기하네용ㅎㅎ;;)
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-03-13 14:57:57

안녕하세요 예스스탁입니다. buy함수에 수량이 지정되지 않았습니다. 수식에서 수량을 계산하므로 buy함수안에 수량을 지정하셔야 합니다. 수량이 소숫점 자리가 필요없으므로 소숫점 자리는 빼고 정수만 지정하시면 됩니다. input : 원금(1500000),시작일(20230101),시작시간(90000); Input: shortperiod(12), longperiod(26), sig(6); input : short(40),long(80); var: signal(0), value(0); var : Tcond(False),수량(0) ; value1 = macd(shortperiod, longperiod); value2 = macd(short,long); Signal = Ema(value1, sig); if sDate == 시작일 and sTime >= 시작시간 Then Tcond = true; 수량 = Floor((원금+NetProfit)/NextBarOpen); # 매수/매도청산 If CrossUP(value1, 0) Then { Buy("b1",AtMarket,Def,수량); } If value1 > 0 and CrossUp(value1, signal) Then { Buy("b2",AtMarket,Def,수량); } If value1 > 0 and value2 > 0 Then { Buy("b3",AtMarket,Def,수량); } # 매도/매수청산 If CrossDown(value1, 0) Then { ExitLong("bx1"); } If value1 > 0 and CrossDown(value1, signal) and value2 < 0 Then { ExitLong("bx2"); } 즐거운 하루되세요 > 탱탱볼 님이 쓴 글입니다. > 제목 : 수식 문의드립니다 > 안녕하세요. 수식 문의 좀 드립니다. 만든다고 만들었는데 신호는 잘 나오나 복리값 적용이 안되네요ㅜㅜ 수식에 이상한 점은 없는지 그리고 복리값 적용도 같이 좀 봐주시면 감사하겠습니다. input : 원금(1500000),시작일(20230101),시작시간(90000); var : Tcond(False),수량(0) ; if sDate == 시작일 and sTime >= 시작시간 Then Tcond = true; 수량 = (원금+NetProfit)/NextBarOpen; Input: shortperiod(12), longperiod(26), sig(6); input : short(40),long(80); var: signal(0), value(0); value1 = macd(shortperiod, longperiod); value2 = macd(short,long); Signal = Ema(value1, sig); # 매수/매도청산 If CrossUP(value1, 0) Then { Buy(); } If value1 > 0 and CrossUp(value1, signal) Then { Buy(); } If value1 > 0 and value2 > 0 Then { Buy(); } # 매도/매수청산 If CrossDown(value1, 0) Then { ExitLong(); } If value1 > 0 and CrossDown(value1, signal) and value2 < 0 Then { ExitLong(); } (짜집기해서 만든 수식이라 작동하는게 신기하네용ㅎㅎ;;)