커뮤니티

수정부탁드립니다.

프로필 이미지
9단
2015-06-17 06:22:06
115
글번호 87287
답변완료
어제 도움주신 index활용법을 추가해서 지표식 10개정도의 방에 넣으려고 하다가 막혔습니다. --; 메시지로그에 보면 NP[0],OpenPP[0]일때는 시스템식 봉갯수10과 결과값이 같는데, 1일때는 봉갯수11과 다릅니다. 혹시 2차원배열이 필요한가요? 수정부탁드립니다. 매번 감사합니다. ====================================================================== Input: 수량(1),시작변수(10),종료변수(20); Var: cnt(0),n(0),j(0),Idx(-1); Array: Hst[501](0),Lst[501](0), MP[501](0),BuySellEntryPrice[501](0),OpenPP[501](0),NP[501](0); input : Q(0); var : cn(0); For j = 0 To 종료변수-시작변수 { Hst[j] = Highest(H,j+시작변수)[0]; Lst[j] = Lowest(L,j+시작변수)[0]; } /*For j = 0 To 종료변수-시작변수 { Hst[j] = H[cn+Q]; Lst[j] = L[cn+Q]; for cn = 0 to j+시작변수-1{ if H[cn+Q] > Hst[j] Then Hst[j] = H[cn+Q]; if L[cn+Q] < Lst[j] Then Lst[j] = L[cn+Q]; } }*/ For n = 0 to 종료변수-시작변수 { If MP[n] == 1 Then { OpenPP[n] = (C-BuySellEntryPrice[n]); } If MP[n] == -1 Then { OpenPP[n] = (BuySellEntryPrice[n]-C); } If MP[n] == 0 Then { OpenPP[n] = 0; } If MP[n] <= 0 and Hst[n][1] < H and Index > Idx Then { Idx = Index; if MP[n] == -1 Then { NP[n] = NP[n]+OpenPP[n]; } BuySellEntryPrice[n] = C; MP[n] = 1; } If MP[n] >= 0 and Lst[n][1] > L and Index > Idx Then { Idx = Index; if MP[n] == 1 Then{ NP[n] = NP[n]+OpenPP[n]; } BuySellEntryPrice[n] = C; MP[n] = -1; } } cnt = cnt + 1; MessageLog("시가,%.4f,종가,%.4f,MP,%.0f,NP,%.4f,OpenPP,%.4f,cnt,%.0f",open,close,MP[0],NP[0],OpenPP[0],cnt); ================================================================================== Input: 봉갯수(10); If MarketPosition == 0 Then{ If Highest(H,봉갯수)[1] < H Then { Buy(); } If Lowest(L,봉갯수)[1] > L Then { Sell(); } } If MarketPosition > 0 Then{ If Lowest(L,봉갯수)[1] > L Then Sell(); } If MarketPosition < 0 Then { If Highest(H,봉갯수)[1] < H Then Buy(); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-06-17 13:28:35

안녕하세요 예스스탁입니다. 하나의 식에서 최고가와 최저가의 기간을 변경해서 한번에 여러기간의 손익을 구해보실 의도이시면 가능한 내용이 아닙니다. 수작업으로 기간값 변경하셔서 값 체크해 보셔야 합니다. 즐거운 하루되세요 > 9단 님이 쓴 글입니다. > 제목 : 수정부탁드립니다. > 어제 도움주신 index활용법을 추가해서 지표식 10개정도의 방에 넣으려고 하다가 막혔습니다. --; 메시지로그에 보면 NP[0],OpenPP[0]일때는 시스템식 봉갯수10과 결과값이 같는데, 1일때는 봉갯수11과 다릅니다. 혹시 2차원배열이 필요한가요? 수정부탁드립니다. 매번 감사합니다. ====================================================================== Input: 수량(1),시작변수(10),종료변수(20); Var: cnt(0),n(0),j(0),Idx(-1); Array: Hst[501](0),Lst[501](0), MP[501](0),BuySellEntryPrice[501](0),OpenPP[501](0),NP[501](0); input : Q(0); var : cn(0); For j = 0 To 종료변수-시작변수 { Hst[j] = Highest(H,j+시작변수)[0]; Lst[j] = Lowest(L,j+시작변수)[0]; } /*For j = 0 To 종료변수-시작변수 { Hst[j] = H[cn+Q]; Lst[j] = L[cn+Q]; for cn = 0 to j+시작변수-1{ if H[cn+Q] > Hst[j] Then Hst[j] = H[cn+Q]; if L[cn+Q] < Lst[j] Then Lst[j] = L[cn+Q]; } }*/ For n = 0 to 종료변수-시작변수 { If MP[n] == 1 Then { OpenPP[n] = (C-BuySellEntryPrice[n]); } If MP[n] == -1 Then { OpenPP[n] = (BuySellEntryPrice[n]-C); } If MP[n] == 0 Then { OpenPP[n] = 0; } If MP[n] <= 0 and Hst[n][1] < H and Index > Idx Then { Idx = Index; if MP[n] == -1 Then { NP[n] = NP[n]+OpenPP[n]; } BuySellEntryPrice[n] = C; MP[n] = 1; } If MP[n] >= 0 and Lst[n][1] > L and Index > Idx Then { Idx = Index; if MP[n] == 1 Then{ NP[n] = NP[n]+OpenPP[n]; } BuySellEntryPrice[n] = C; MP[n] = -1; } } cnt = cnt + 1; MessageLog("시가,%.4f,종가,%.4f,MP,%.0f,NP,%.4f,OpenPP,%.4f,cnt,%.0f",open,close,MP[0],NP[0],OpenPP[0],cnt); ================================================================================== Input: 봉갯수(10); If MarketPosition == 0 Then{ If Highest(H,봉갯수)[1] < H Then { Buy(); } If Lowest(L,봉갯수)[1] > L Then { Sell(); } } If MarketPosition > 0 Then{ If Lowest(L,봉갯수)[1] > L Then Sell(); } If MarketPosition < 0 Then { If Highest(H,봉갯수)[1] < H Then Buy(); }