커뮤니티

수식 문의

프로필 이미지
에구머니
2013-05-28 19:14:54
216
글번호 63679
답변완료
늘 감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2013-05-28 18:56:29

안녕하세요 예스스탁입니다. 1. 식을 잘목 판단했습니다. 사용자분이 지정한 봉수까지의 최고가나 최저가를 리턴하는 식인걸로 판단했습니다. 문의하신 내용과 같이는 출력되게 작성할수 없습니다. 예를 들어 20이동평균을 차트에 그리시면 처음 값이 나오는 것은 차트상 20번째 봉부터입니다. 20이평을 그리기 위해 최소 필요한 봉갯수가 20이기 때문입니다. 문의하신 내용을 작성하고 기간을 100으로 지정하면 차트상 100번재 봉부터는 100개봉의 최고가와 최저가를 리턴하는데 이부분을 함수에 넣게 되면 해당 함수에 필요한 봉갯수가 최소 100개로 산정이 되어 출력 자체가 100개 부터 진행되어 1~99번째 봉까지의 값이 리턴되지가 않습니다. 해당 부분은 모든 수식에 동일하게 적용되게 됩니다. 아래 지표식 적용해 보시면 위식에서 ##1과 ##2 사이를 지우시면 첫봉부터 그려지고 지우지 않고 적용하면 100번째 부터 값이 리턴되는 것을 확인하실 수가 있습니다. input : N(100); var : cnt(0); if index == 0 Then value1= H; if index > 0 and index < 100 Then{ if H > value1 Then value1 = H; } ##1 if index >= 100 Then{ value1 = H; for cnt = 0 to N-1{ if H[cnt] > value1 Then value1 = H[cnt]; } } ##2 plot1(value1); 2. input : 투입금액(10000000); var : VV(0),ww(0),sw1(0),sw2(0),bw1(0),bw2(0),Vol(0); #kospi if CodeCategory == 1 Then{ if BasePrice < 50000 Then #기준가 5만원 미만 Vol = int(int(투입금액/C)/10)*10; Else #5만원 이상 Vol = int(투입금액/C); } #kosdoq if CodeCategory == 2 Then Vol = int(투입금액/C); #option if CodeCategory == 6 or CodeCategory == 8 Then Vol = int((투입금액)/(C*BigPointValue)); if crossup(vv,90) Then{ sw1 = ww; Condition1 = true; } if MarketPosition == 0 and WW >= sW1*1.10 Then sell("s",OnClose,def,Vol); if MarketPosition == -1 Then{ Condition1 = false; Condition2 = false; sW2 = WW[BarsSinceEntry]; if MaxEntries == 1 and ww >= sW2*1.10 Then sell("ss",OnClose,def,vol); if MaxEntries == 1 and WW <= sW2*0.85 Then ExitShort("sx1"); if MaxEntries == 2 and WW <= (sW1+sW2)*0.90 Then ExitShort("sx2"); } if CrossDown(vv,10) Then{ bw1 = ww; Condition2 = true; } if MarketPosition == 0 and WW >= bW1*0.90 Then Buy("b",OnClose,def,Vol); if MarketPosition == 1 Then{ Condition1 = false; Condition2 = false; bW2 = WW[BarsSinceEntry]; if MaxEntries == 1 and ww <= bW2*0.90 Then Buy("bb",OnClose,def,vol); if MaxEntries == 1 and WW >= bW2*1.15 Then ExitLong("bx1"); if MaxEntries == 2 and WW >= (sW1+sW2)*1.10 Then ExitLong("bx2"); } 3. 해당 내용은 청산함수의 갯수가 부족하기 때문입니다. 특정 시점부터 더이상 신호가 안나오면 청산식을 늘려가셔야 합니다. 해당 내용 지표로 보시기는 어렵고 시스템 적용하신 후에 리포트를 보셔야 합니다. 매수 input : Imoney(10000000); var : vol(0),diff(0),Xcnt(0); #kospi if CodeCategory == 1 Then{ if BasePrice < 50000 Then vol = int(int(Imoney/C)/10)*10; Else vol = int(Imoney/C); } if CodeCategory == 2 Then vol = int(Imoney/C); if CodeCategory == 6 or CodeCategory == 8 Then vol = int((Imoney)/(C*BigPointValue)); if MarketPosition == 0 and stime == 140000 Then buy("b",OnClose,def,vol); if MarketPosition == 1 Then{ if CurrentContracts < CurrentContracts[1] Then Xcnt = Xcnt+1; if stime == 140000 Then{ var1 = abs(Vol-CurrentContracts); if vol > CurrentContracts Then buy("bb",OnClose,def,var1); if vol < CurrentContracts Then{ if Xcnt == 0 Then ExitLong("bx1",OnClose,def,"",var1,1); if Xcnt == 1 Then ExitLong("bx2",OnClose,def,"",var1,1); if Xcnt == 2 Then ExitLong("bx3",OnClose,def,"",var1,1); if Xcnt == 3 Then ExitLong("bx4",OnClose,def,"",var1,1); if Xcnt == 4 Then ExitLong("bx5",OnClose,def,"",var1,1); if Xcnt == 5 Then ExitLong("bx6",OnClose,def,"",var1,1); if Xcnt == 6 Then ExitLong("bx7",OnClose,def,"",var1,1); if Xcnt == 7 Then ExitLong("bx8",OnClose,def,"",var1,1); if Xcnt == 8 Then ExitLong("bx9",OnClose,def,"",var1,1); if Xcnt == 9 Then ExitLong("bx10",OnClose,def,"",var1,1); if Xcnt == 10 Then ExitLong("bx11",OnClose,def,"",var1,1); if Xcnt == 11 Then ExitLong("bx12",OnClose,def,"",var1,1); if Xcnt == 12 Then ExitLong("bx13",OnClose,def,"",var1,1); if Xcnt == 13 Then ExitLong("bx14",OnClose,def,"",var1,1); if Xcnt == 14 Then ExitLong("bx15",OnClose,def,"",var1,1); if Xcnt == 15 Then ExitLong("bx16",OnClose,def,"",var1,1); if Xcnt == 16 Then ExitLong("bx17",OnClose,def,"",var1,1); if Xcnt == 17 Then ExitLong("bx18",OnClose,def,"",var1,1); if Xcnt == 18 Then ExitLong("bx19",OnClose,def,"",var1,1); if Xcnt == 19 Then ExitLong("bx20",OnClose,def,"",var1,1); if Xcnt == 20 Then ExitLong("bx21",OnClose,def,"",var1,1); if Xcnt == 21 Then ExitLong("bx22",OnClose,def,"",var1,1); if Xcnt == 22 Then ExitLong("bx23",OnClose,def,"",var1,1); if Xcnt == 23 Then ExitLong("bx24",OnClose,def,"",var1,1); if Xcnt == 24 Then ExitLong("bx25",OnClose,def,"",var1,1); if Xcnt == 25 Then ExitLong("bx26",OnClose,def,"",var1,1); if Xcnt == 26 Then ExitLong("bx27",OnClose,def,"",var1,1); if Xcnt == 27 Then ExitLong("bx28",OnClose,def,"",var1,1); if Xcnt == 28 Then ExitLong("bx29",OnClose,def,"",var1,1); if Xcnt == 29 Then ExitLong("bx30",OnClose,def,"",var1,1); if Xcnt == 30 Then ExitLong("bx31",OnClose,def,"",var1,1); if Xcnt == 31 Then ExitLong("bx32",OnClose,def,"",var1,1); if Xcnt == 32 Then ExitLong("bx33",OnClose,def,"",var1,1); if Xcnt == 33 Then ExitLong("bx34",OnClose,def,"",var1,1); if Xcnt == 34 Then ExitLong("bx35",OnClose,def,"",var1,1); if Xcnt == 35 Then ExitLong("bx36",OnClose,def,"",var1,1); if Xcnt == 36 Then ExitLong("bx37",OnClose,def,"",var1,1); if Xcnt == 37 Then ExitLong("bx38",OnClose,def,"",var1,1); if Xcnt == 38 Then ExitLong("bx39",OnClose,def,"",var1,1); if Xcnt == 39 Then ExitLong("bx40",OnClose,def,"",var1,1); if Xcnt == 40 Then ExitLong("bx41",OnClose,def,"",var1,1); if Xcnt == 41 Then ExitLong("bx42",OnClose,def,"",var1,1); if Xcnt == 42 Then ExitLong("bx43",OnClose,def,"",var1,1); if Xcnt == 43 Then ExitLong("bx44",OnClose,def,"",var1,1); if Xcnt == 44 Then ExitLong("bx45",OnClose,def,"",var1,1); if Xcnt == 45 Then ExitLong("bx46",OnClose,def,"",var1,1); if Xcnt == 46 Then ExitLong("bx47",OnClose,def,"",var1,1); if Xcnt == 47 Then ExitLong("bx48",OnClose,def,"",var1,1); if Xcnt == 48 Then ExitLong("bx49",OnClose,def,"",var1,1); if Xcnt == 49 Then ExitLong("bx50",OnClose,def,"",var1,1); if Xcnt == 50 Then ExitLong("bx51",OnClose,def,"",var1,1); if Xcnt == 51 Then ExitLong("bx52",OnClose,def,"",var1,1); if Xcnt == 52 Then ExitLong("bx53",OnClose,def,"",var1,1); if Xcnt == 53 Then ExitLong("bx54",OnClose,def,"",var1,1); if Xcnt == 54 Then ExitLong("bx55",OnClose,def,"",var1,1); if Xcnt == 55 Then ExitLong("bx56",OnClose,def,"",var1,1); if Xcnt == 56 Then ExitLong("bx57",OnClose,def,"",var1,1); if Xcnt == 57 Then ExitLong("bx58",OnClose,def,"",var1,1); if Xcnt == 58 Then ExitLong("bx59",OnClose,def,"",var1,1); if Xcnt == 60 Then ExitLong("bx60",OnClose,def,"",var1,1); if Xcnt == 60 Then ExitLong("bx61",OnClose,def,"",var1,1); if Xcnt == 61 Then ExitLong("bx62",OnClose,def,"",var1,1); if Xcnt == 62 Then ExitLong("bx63",OnClose,def,"",var1,1); if Xcnt == 63 Then ExitLong("bx64",OnClose,def,"",var1,1); if Xcnt == 64 Then ExitLong("bx65",OnClose,def,"",var1,1); if Xcnt == 65 Then ExitLong("bx66",OnClose,def,"",var1,1); if Xcnt == 66 Then ExitLong("bx67",OnClose,def,"",var1,1); if Xcnt == 67 Then ExitLong("bx68",OnClose,def,"",var1,1); if Xcnt == 68 Then ExitLong("bx69",OnClose,def,"",var1,1); if Xcnt == 69 Then ExitLong("bx70",OnClose,def,"",var1,1); if Xcnt == 70 Then ExitLong("bx71",OnClose,def,"",var1,1); if Xcnt == 71 Then ExitLong("bx72",OnClose,def,"",var1,1); if Xcnt == 72 Then ExitLong("bx73",OnClose,def,"",var1,1); if Xcnt == 73 Then ExitLong("bx74",OnClose,def,"",var1,1); if Xcnt == 74 Then ExitLong("bx75",OnClose,def,"",var1,1); if Xcnt == 75 Then ExitLong("bx76",OnClose,def,"",var1,1); if Xcnt == 76 Then ExitLong("bx77",OnClose,def,"",var1,1); if Xcnt == 77 Then ExitLong("bx78",OnClose,def,"",var1,1); if Xcnt == 78 Then ExitLong("bx79",OnClose,def,"",var1,1); if Xcnt == 79 Then ExitLong("bx80",OnClose,def,"",var1,1); if Xcnt == 80 Then ExitLong("bx81",OnClose,def,"",var1,1); if Xcnt == 81 Then ExitLong("bx82",OnClose,def,"",var1,1); if Xcnt == 82 Then ExitLong("bx83",OnClose,def,"",var1,1); if Xcnt == 83 Then ExitLong("bx84",OnClose,def,"",var1,1); if Xcnt == 84 Then ExitLong("bx85",OnClose,def,"",var1,1); if Xcnt == 85 Then ExitLong("bx86",OnClose,def,"",var1,1); if Xcnt == 86 Then ExitLong("bx87",OnClose,def,"",var1,1); if Xcnt == 87 Then ExitLong("bx88",OnClose,def,"",var1,1); if Xcnt == 88 Then ExitLong("bx89",OnClose,def,"",var1,1); if Xcnt == 89 Then ExitLong("bx90",OnClose,def,"",var1,1); if Xcnt == 90 Then ExitLong("bx91",OnClose,def,"",var1,1); if Xcnt == 91 Then ExitLong("bx92",OnClose,def,"",var1,1); if Xcnt == 92 Then ExitLong("bx93",OnClose,def,"",var1,1); if Xcnt == 93 Then ExitLong("bx94",OnClose,def,"",var1,1); if Xcnt == 94 Then ExitLong("bx95",OnClose,def,"",var1,1); if Xcnt == 95 Then ExitLong("bx96",OnClose,def,"",var1,1); if Xcnt == 96 Then ExitLong("bx97",OnClose,def,"",var1,1); if Xcnt == 97 Then ExitLong("bx98",OnClose,def,"",var1,1); if Xcnt == 98 Then ExitLong("bx99",OnClose,def,"",var1,1); if Xcnt == 99 Then ExitLong("bx100",OnClose,def,"",var1,1); } } } Else Xcnt = 0; 매도 input : Imoney(10000000); var : vol(0),diff(0),Xcnt(0); #kospi if CodeCategory == 1 Then{ if BasePrice < 50000 Then vol = int(int(Imoney/C)/10)*10; Else vol = int(Imoney/C); } if CodeCategory == 2 Then vol = int(Imoney/C); if CodeCategory == 6 or CodeCategory == 8 Then vol = int((Imoney)/(C*BigPointValue)); if MarketPosition == 0 and stime == 140000 Then sell("s",OnClose,def,vol); if MarketPosition == -1 Then{ if CurrentContracts < CurrentContracts[1] Then Xcnt = Xcnt+1; if stime == 140000 Then{ var1 = abs(Vol-CurrentContracts); if vol > CurrentContracts Then sell("ss",OnClose,def,var1); if vol < CurrentContracts Then{ if Xcnt == 0 Then ExitShort("sx1",OnClose,def,"",var1,1); if Xcnt == 1 Then ExitShort("sx2",OnClose,def,"",var1,1); if Xcnt == 2 Then ExitShort("sx3",OnClose,def,"",var1,1); if Xcnt == 3 Then ExitShort("sx4",OnClose,def,"",var1,1); if Xcnt == 4 Then ExitShort("sx5",OnClose,def,"",var1,1); if Xcnt == 5 Then ExitShort("sx6",OnClose,def,"",var1,1); if Xcnt == 6 Then ExitShort("sx7",OnClose,def,"",var1,1); if Xcnt == 7 Then ExitShort("sx8",OnClose,def,"",var1,1); if Xcnt == 8 Then ExitShort("sx9",OnClose,def,"",var1,1); if Xcnt == 9 Then ExitShort("sx10",OnClose,def,"",var1,1); if Xcnt == 10 Then ExitShort("sx11",OnClose,def,"",var1,1); if Xcnt == 11 Then ExitShort("sx12",OnClose,def,"",var1,1); if Xcnt == 12 Then ExitShort("sx13",OnClose,def,"",var1,1); if Xcnt == 13 Then ExitShort("sx14",OnClose,def,"",var1,1); if Xcnt == 14 Then ExitShort("sx15",OnClose,def,"",var1,1); if Xcnt == 15 Then ExitShort("sx16",OnClose,def,"",var1,1); if Xcnt == 16 Then ExitShort("sx17",OnClose,def,"",var1,1); if Xcnt == 17 Then ExitShort("sx18",OnClose,def,"",var1,1); if Xcnt == 18 Then ExitShort("sx19",OnClose,def,"",var1,1); if Xcnt == 19 Then ExitShort("sx20",OnClose,def,"",var1,1); if Xcnt == 20 Then ExitShort("sx21",OnClose,def,"",var1,1); if Xcnt == 21 Then ExitShort("sx22",OnClose,def,"",var1,1); if Xcnt == 22 Then ExitShort("sx23",OnClose,def,"",var1,1); if Xcnt == 23 Then ExitShort("sx24",OnClose,def,"",var1,1); if Xcnt == 24 Then ExitShort("sx25",OnClose,def,"",var1,1); if Xcnt == 25 Then ExitShort("sx26",OnClose,def,"",var1,1); if Xcnt == 26 Then ExitShort("sx27",OnClose,def,"",var1,1); if Xcnt == 27 Then ExitShort("sx28",OnClose,def,"",var1,1); if Xcnt == 28 Then ExitShort("sx29",OnClose,def,"",var1,1); if Xcnt == 29 Then ExitShort("sx30",OnClose,def,"",var1,1); if Xcnt == 30 Then ExitShort("sx31",OnClose,def,"",var1,1); if Xcnt == 31 Then ExitShort("sx32",OnClose,def,"",var1,1); if Xcnt == 32 Then ExitShort("sx33",OnClose,def,"",var1,1); if Xcnt == 33 Then ExitShort("sx34",OnClose,def,"",var1,1); if Xcnt == 34 Then ExitShort("sx35",OnClose,def,"",var1,1); if Xcnt == 35 Then ExitShort("sx36",OnClose,def,"",var1,1); if Xcnt == 36 Then ExitShort("sx37",OnClose,def,"",var1,1); if Xcnt == 37 Then ExitShort("sx38",OnClose,def,"",var1,1); if Xcnt == 38 Then ExitShort("sx39",OnClose,def,"",var1,1); if Xcnt == 39 Then ExitShort("sx40",OnClose,def,"",var1,1); if Xcnt == 30 Then ExitShort("sx41",OnClose,def,"",var1,1); if Xcnt == 41 Then ExitShort("sx42",OnClose,def,"",var1,1); if Xcnt == 42 Then ExitShort("sx43",OnClose,def,"",var1,1); if Xcnt == 43 Then ExitShort("sx44",OnClose,def,"",var1,1); if Xcnt == 44 Then ExitShort("sx45",OnClose,def,"",var1,1); if Xcnt == 45 Then ExitShort("sx46",OnClose,def,"",var1,1); if Xcnt == 46 Then ExitShort("sx47",OnClose,def,"",var1,1); if Xcnt == 47 Then ExitShort("sx48",OnClose,def,"",var1,1); if Xcnt == 48 Then ExitShort("sx49",OnClose,def,"",var1,1); if Xcnt == 49 Then ExitShort("sx50",OnClose,def,"",var1,1); if Xcnt == 50 Then ExitShort("sx51",OnClose,def,"",var1,1); if Xcnt == 51 Then ExitShort("sx52",OnClose,def,"",var1,1); if Xcnt == 52 Then ExitShort("sx53",OnClose,def,"",var1,1); if Xcnt == 53 Then ExitShort("sx54",OnClose,def,"",var1,1); if Xcnt == 54 Then ExitShort("sx55",OnClose,def,"",var1,1); if Xcnt == 55 Then ExitShort("sx56",OnClose,def,"",var1,1); if Xcnt == 56 Then ExitShort("sx57",OnClose,def,"",var1,1); if Xcnt == 57 Then ExitShort("sx58",OnClose,def,"",var1,1); if Xcnt == 58 Then ExitShort("sx59",OnClose,def,"",var1,1); if Xcnt == 59 Then ExitShort("sx60",OnClose,def,"",var1,1); if Xcnt == 60 Then ExitShort("sx61",OnClose,def,"",var1,1); if Xcnt == 61 Then ExitShort("sx62",OnClose,def,"",var1,1); if Xcnt == 62 Then ExitShort("sx63",OnClose,def,"",var1,1); if Xcnt == 63 Then ExitShort("sx64",OnClose,def,"",var1,1); if Xcnt == 64 Then ExitShort("sx65",OnClose,def,"",var1,1); if Xcnt == 65 Then ExitShort("sx66",OnClose,def,"",var1,1); if Xcnt == 66 Then ExitShort("sx67",OnClose,def,"",var1,1); if Xcnt == 67 Then ExitShort("sx68",OnClose,def,"",var1,1); if Xcnt == 68 Then ExitShort("sx69",OnClose,def,"",var1,1); if Xcnt == 69 Then ExitShort("sx70",OnClose,def,"",var1,1); if Xcnt == 60 Then ExitShort("sx71",OnClose,def,"",var1,1); if Xcnt == 71 Then ExitShort("sx72",OnClose,def,"",var1,1); if Xcnt == 72 Then ExitShort("sx73",OnClose,def,"",var1,1); if Xcnt == 73 Then ExitShort("sx74",OnClose,def,"",var1,1); if Xcnt == 74 Then ExitShort("sx75",OnClose,def,"",var1,1); if Xcnt == 75 Then ExitShort("sx76",OnClose,def,"",var1,1); if Xcnt == 76 Then ExitShort("sx77",OnClose,def,"",var1,1); if Xcnt == 77 Then ExitShort("sx78",OnClose,def,"",var1,1); if Xcnt == 78 Then ExitShort("sx79",OnClose,def,"",var1,1); if Xcnt == 79 Then ExitShort("sx80",OnClose,def,"",var1,1); if Xcnt == 80 Then ExitShort("sx81",OnClose,def,"",var1,1); if Xcnt == 81 Then ExitShort("sx82",OnClose,def,"",var1,1); if Xcnt == 82 Then ExitShort("sx83",OnClose,def,"",var1,1); if Xcnt == 83 Then ExitShort("sx84",OnClose,def,"",var1,1); if Xcnt == 84 Then ExitShort("sx85",OnClose,def,"",var1,1); if Xcnt == 85 Then ExitShort("sx86",OnClose,def,"",var1,1); if Xcnt == 86 Then ExitShort("sx87",OnClose,def,"",var1,1); if Xcnt == 87 Then ExitShort("sx88",OnClose,def,"",var1,1); if Xcnt == 88 Then ExitShort("sx89",OnClose,def,"",var1,1); if Xcnt == 89 Then ExitShort("sx90",OnClose,def,"",var1,1); if Xcnt == 90 Then ExitShort("sx91",OnClose,def,"",var1,1); if Xcnt == 91 Then ExitShort("sx92",OnClose,def,"",var1,1); if Xcnt == 92 Then ExitShort("sx93",OnClose,def,"",var1,1); if Xcnt == 93 Then ExitShort("sx94",OnClose,def,"",var1,1); if Xcnt == 94 Then ExitShort("sx95",OnClose,def,"",var1,1); if Xcnt == 95 Then ExitShort("sx96",OnClose,def,"",var1,1); if Xcnt == 96 Then ExitShort("sx97",OnClose,def,"",var1,1); if Xcnt == 97 Then ExitShort("sx98",OnClose,def,"",var1,1); if Xcnt == 98 Then ExitShort("sx99",OnClose,def,"",var1,1); if Xcnt == 99 Then ExitShort("sx100",OnClose,def,"",var1,1); } } } 즐거운 하루되세요 > 에구머니 님이 쓴 글입니다. > 제목 : 수식 문의 > 늘 감사드립니다.