커뮤니티

수식 좀 변경해 주십시요.

프로필 이미지
쌀사비팔
2010-01-15 13:01:38
688
글번호 27460
답변완료
점선 아래 수식을 좀 변경해 주십시오. *매수조건에서... 1번. CCI(20)이 -100을 상향..... -> "일봉상 전일까지 연속 3음봉이면, 당일 시가에 매수" 로 변경해 주십시요 5번. 매수 단위 20만원을... ->삭제해 주세요(매매금액은 자동매매 설정하는 창에서 설정할 예정) 감사합니다. -------------------------------------------------------- <현물> *매수조건(분봉에서 운용 예정) 1.일봉상 CCI(20)이 -100을 상향 돌파하면, 다음날 시가에 최초 매수 (최초 매수가 된 이후 청산이 되지 않은 상태에서는, CCI -100을 상향 돌파해도 매수하지 않음) 2.최초 매수가 대비 20% 하락하면 추가매수 3. “ 40% 하락하면 추가매수 4. “ 60% 하락하면 추가매수... 계속 5.매수 단위 금액은 20만원 *매도조건 -매수금액. 매수가를 총 평균하여 5%수익이 발생하면 전량 청산 (손실일 때는 청산하지 않음) Inputs: Length(20); Variables: Sum(0), Counter(0), MD(0), Avgvalue(0),cnt(0),sum1(0),CCIV(0); Variables: preSum(0), preCounter(0), preMD(0), preAvgvalue(0),precnt(0),presum1(0),preCCIV(0); if DayClose(Length) > 0 Then{ sum1 = 0; for cnt = 0 to Length-1{ sum1 = sum1 +(dayhigh(cnt)+daylow(cnt)+DayClose(cnt)); } Avgvalue = sum1/Length; MD = 0; For counter = 0 To Length - 1 Begin MD = MD + Abs(dayhigh(counter) + daylow(counter) + DayClose(counter) - Avgvalue); End; MD = MD / Length; If MD == 0 Then CCIv = 0; Else CCIv = (dayhigh + daylow + DayClose - Avgvalue) / (0.015 * MD); } Else CCIv = 0; if DayClose(Length+1) > 0 Then{ presum1 = 0; for precnt = 1 to Length{ presum1 = presum1 +(dayhigh(precnt)+daylow(precnt)+DayClose(precnt)); } preAvgvalue = presum1/Length; preMD = 0; For precounter = 1 To Length Begin preMD = preMD + Abs(dayhigh(precounter) + daylow(precounter) + DayClose(precounter) - preAvgvalue); End; preMD = preMD / Length; If preMD == 0 Then preCCIv = 0; Else preCCIv = (dayhigh(1) + daylow(1) + DayClose(1) - preAvgvalue) / (0.015 * PreMD); } Else preCCIv = 0; if CodeCategory == 1 Then{ var1 = int(int(200000/C)/10)*10; } if CodeCategory == 2 Then{ var1 = int(200000/C); } if stime == 150000 and CCIV > -100 and PreCCIV < -100 and MarketPosition == 0 Then buy("b1",AtMarket); if MarketPosition == 1 Then{ if CurrentEntries == 1 Then buy("b2",atlimit,EntryPrice*0.8,var1); if CurrentEntries == 2 Then buy("b3",atlimit,EntryPrice*0.6,var1); if CurrentEntries == 3 Then buy("b4",atlimit,EntryPrice*0.4,var1); if CurrentEntries == 4 Then buy("b5",atlimit,EntryPrice*0.2,var1); exitlong("bx",atlimit,AvgEntryPrice*1.05); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2010-01-15 13:02:43

안녕하세요 예스스탁입니다. input : 전일날짜(20100114); if stime == 150000 and MarketPosition == 0 and sdate == 전일날짜 Then buy("b1",AtMarket); if MarketPosition == 1 Then{ if CurrentEntries == 1 Then buy("b2",atlimit,EntryPrice*0.8); if CurrentEntries == 2 Then buy("b3",atlimit,EntryPrice*0.6); if CurrentEntries == 3 Then buy("b4",atlimit,EntryPrice*0.4); if CurrentEntries == 4 Then buy("b5",atlimit,EntryPrice*0.2); exitlong("bx",atlimit,AvgEntryPrice*1.05); } 차트에 식을 거실때 전일날짜를 입력해 주셔야 합니다. 차트는 1분봉으로 5000개를 불러오시면 됩니다. 그러면 항상 거시는날의 시초가에 매수가 발생합니다. > 쌀사비팔 님이 쓴 글입니다. > 제목 : 수식 좀 변경해 주십시요. > 점선 아래 수식을 좀 변경해 주십시오. *매수조건에서... 1번. CCI(20)이 -100을 상향..... -> "당일 시가에 조건 없이 최초 매수로 변경"(종목을 선정하여 당일 장 시작전에 자동 매매 차트에 적용하면 당일 시가에 무조건 매수하려고 하는 것입니다. 그런데, 이 적용 방법이 쉽지 않을 것 같은데 가능한지요? 즉, 차트를 수일간 적용해도, 적용된 차트의 첫날 시가에 매수되지 않고, 당일 시가에 매수되게 할 수 있는지요? 가능한 방법이 있으면 부탁드립니다. {{만약에 방법이 없다면, -> "일봉상 전일까지 연속 3음봉이면, 당일 시가에 매수" 로 변경해 주십시요.}} 5번. 매수 단위 20만원을... ->삭제해 주세요(매매금액은 자동매매 설정하는 창에서 설정할 예정) 감사합니다. -------------------------------------------------------- <현물> *매수조건(분봉에서 운용 예정) 1.일봉상 CCI(20)이 -100을 상향 돌파하면, 다음날 시가에 최초 매수 (최초 매수가 된 이후 청산이 되지 않은 상태에서는, CCI -100을 상향 돌파해도 매수하지 않음) 2.최초 매수가 대비 20% 하락하면 추가매수 3. “ 40% 하락하면 추가매수 4. “ 60% 하락하면 추가매수... 계속 5.매수 단위 금액은 20만원 *매도조건 -매수금액. 매수가를 총 평균하여 5%수익이 발생하면 전량 청산 (손실일 때는 청산하지 않음) Inputs: Length(20); Variables: Sum(0), Counter(0), MD(0), Avgvalue(0),cnt(0),sum1(0),CCIV(0); Variables: preSum(0), preCounter(0), preMD(0), preAvgvalue(0),precnt(0),presum1(0),preCCIV(0); if DayClose(Length) > 0 Then{ sum1 = 0; for cnt = 0 to Length-1{ sum1 = sum1 +(dayhigh(cnt)+daylow(cnt)+DayClose(cnt)); } Avgvalue = sum1/Length; MD = 0; For counter = 0 To Length - 1 Begin MD = MD + Abs(dayhigh(counter) + daylow(counter) + DayClose(counter) - Avgvalue); End; MD = MD / Length; If MD == 0 Then CCIv = 0; Else CCIv = (dayhigh + daylow + DayClose - Avgvalue) / (0.015 * MD); } Else CCIv = 0; if DayClose(Length+1) > 0 Then{ presum1 = 0; for precnt = 1 to Length{ presum1 = presum1 +(dayhigh(precnt)+daylow(precnt)+DayClose(precnt)); } preAvgvalue = presum1/Length; preMD = 0; For precounter = 1 To Length Begin preMD = preMD + Abs(dayhigh(precounter) + daylow(precounter) + DayClose(precounter) - preAvgvalue); End; preMD = preMD / Length; If preMD == 0 Then preCCIv = 0; Else preCCIv = (dayhigh(1) + daylow(1) + DayClose(1) - preAvgvalue) / (0.015 * PreMD); } Else preCCIv = 0; if CodeCategory == 1 Then{ var1 = int(int(200000/C)/10)*10; } if CodeCategory == 2 Then{ var1 = int(200000/C); } if stime == 150000 and CCIV > -100 and PreCCIV < -100 and MarketPosition == 0 Then buy("b1",AtMarket); if MarketPosition == 1 Then{ if CurrentEntries == 1 Then buy("b2",atlimit,EntryPrice*0.8,var1); if CurrentEntries == 2 Then buy("b3",atlimit,EntryPrice*0.6,var1); if CurrentEntries == 3 Then buy("b4",atlimit,EntryPrice*0.4,var1); if CurrentEntries == 4 Then buy("b5",atlimit,EntryPrice*0.2,var1); exitlong("bx",atlimit,AvgEntryPrice*1.05); }