커뮤니티

수식 문의 드립니다.

프로필 이미지
앙두
2013-11-21 18:27:18
202
글번호 69716
답변완료
친절한 답변에 감사드립니다. 아래의 수식을 "최초 1계약으로 진입하되 연속2회 손실이 나면 계약수를 2배수씩 올리되 최대 계약수는 8계약이이고, 이익이 발생하면 1계약으로 환원한다. 또한 기본투자계약수, 최대투자계약수, 연속손실횟수는 INPUT변수화 하여 최적화가 가능하도록 한다." 라는 조건에 만족하도록 변형시키고 싶습니다. input : 기본투자금액(1000000),최대투자금액(8000000); var : EntryM(0),Vol(0); if data1(dayindex == 1) Then { if data2(bids) > data2(asks) then { if TotalTrades == 0 or (TotalTrades >= 1 and PositionProfit(1) > 0) Then EntryM = 기본투자금액; if TotalTrades >= 2 and PositionProfit(1) <= 0 and PositionProfit(2) <= 0 Then EntryM = min(EntryM*2,최대투자금액); if CodeCategoryEx == 11 and BasePrice < 50000 Then vol = int(int(EntryM/C)/10)*10; Else vol = int(EntryM/C); if CodeCategory == 6 Then vol = int(EntryM/(C*BigPointValue)); buy("b",OnClose,def,Vol); } if data2(bids) < data2(asks) Then{ if TotalTrades == 0 or (TotalTrades >= 1 and PositionProfit(1) > 0) Then EntryM = 기본투자금액; if TotalTrades >= 2 and PositionProfit(1) <= 0 and PositionProfit(2) <= 0 Then EntryM = min(EntryM*2,최대투자금액); if CodeCategoryEx == 11 and BasePrice < 50000 Then vol = int(int(EntryM/C)/10)*10; Else vol = int(EntryM/C); if CodeCategory == 6 Then vol = int(EntryM/(C*BigPointValue)); sell("s",OnClose,def,Vol); } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-11-22 10:10:32

안녕하세요 예스스탁입니다. input : 기본투자계약수(1),최대투자계약수(8),연속손실횟수(2); var : Vol(0),cnt(0),loss(0); if data1(dayindex == 1) Then { loss = 0; for cnt = 연속손실횟수 downto 1{ if PositionProfit(cnt) < 0 Then loss = loss+1; } MessageLog("%.2f",loss); if TotalTrades == 0 or loss <= 1 Then Vol = 1; if loss == 연속손실횟수 Then Vol = min(vol*2,8); if data2(bids) > data2(asks) then { buy("b",OnClose,def,vol); } if data2(bids) < data2(asks) Then{ sell("s",OnClose,def,Vol); } } 즐거운 하루되세요 > 앙두 님이 쓴 글입니다. > 제목 : 수식 문의 드립니다. > 친절한 답변에 감사드립니다. 아래의 수식을 "최초 1계약으로 진입하되 연속2회 손실이 나면 계약수를 2배수씩 올리되 최대 계약수는 8계약이이고, 이익이 발생하면 1계약으로 환원한다. 또한 기본투자계약수, 최대투자계약수, 연속손실횟수는 INPUT변수화 하여 최적화가 가능하도록 한다." 라는 조건에 만족하도록 변형시키고 싶습니다. input : 기본투자금액(1000000),최대투자금액(8000000); var : EntryM(0),Vol(0); if data1(dayindex == 1) Then { if data2(bids) > data2(asks) then { if TotalTrades == 0 or (TotalTrades >= 1 and PositionProfit(1) > 0) Then EntryM = 기본투자금액; if TotalTrades >= 2 and PositionProfit(1) <= 0 and PositionProfit(2) <= 0 Then EntryM = min(EntryM*2,최대투자금액); if CodeCategoryEx == 11 and BasePrice < 50000 Then vol = int(int(EntryM/C)/10)*10; Else vol = int(EntryM/C); if CodeCategory == 6 Then vol = int(EntryM/(C*BigPointValue)); buy("b",OnClose,def,Vol); } if data2(bids) < data2(asks) Then{ if TotalTrades == 0 or (TotalTrades >= 1 and PositionProfit(1) > 0) Then EntryM = 기본투자금액; if TotalTrades >= 2 and PositionProfit(1) <= 0 and PositionProfit(2) <= 0 Then EntryM = min(EntryM*2,최대투자금액); if CodeCategoryEx == 11 and BasePrice < 50000 Then vol = int(int(EntryM/C)/10)*10; Else vol = int(EntryM/C); if CodeCategory == 6 Then vol = int(EntryM/(C*BigPointValue)); sell("s",OnClose,def,Vol); } }