커뮤니티

시스템식 부탁드립니다.

프로필 이미지
한걸음7
2012-02-08 15:38:22
344
글번호 47525
답변완료
늘 감사합니다. 시스템식 부탁드립니다. 진입 신호 당일 9시 30분 부터 가동, 12시이후 진입금지 , 매도 수량은 누적되며,총 진입개수 콜풋 각각 10개씩까지 매도 진입 데이터 3개 사용 - 주차트 date1 옵션, 보조차트 옵션 date2, 보조차트 선물 date3 1,선물보조차트 5평균선이 20평균선 위로 돌파 할때 풋매도 1개 2,선물보조차트 5평균선이 20평균선 아래로 돌파 할때 콜매도 1개 3, 1번 풋매도후 7봉 이내에 2번 신호 없으면 콜매도 1개 4, 2번 콜매도후 7봉 이내에 1번 신호 없으면 풋매도 1개 청산 신호 1. 총 양옵션의 평균 진입가 대비 +5% 오르면 전량손절 (당일재진입금지) 2. 총 양옵션의 평균 진입가 대비 -5% 내리면 전량익절 (당일재진입금지) 3. 14시에 보유분 전량 청산 (당일재진입금지)
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2012-02-08 18:51:56

안녕하세요 예스스탁입니다. 1.#주종목 : 풋 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); if data1(date != date[1]) Then{ Putcond = false; Callcond = false; } if stime >= 93000 and stime <= 120000 Then{ if Putcond == false and data3(crossup(ma(c,5),ma(c,20))) Then{ sell("s",OnClose,def,1); Putcond = true; idx = data1(index); } if Putcond == true and Callcond == false and data1(index) == idx+7 Then{ D2 = data2(C); Callcond = true; } if Callcond == false and data3(CrossDown(ma(c,5),ma(c,20))) Then{ D2 = data2(C); Callcond = true; D2i = data1(index); } if Putcond == false and Callcond == true and data1(index) == D2i+7 Then{ sell("ss",OnClose,def,1); Putcond = true; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if (data1(c)+data2(c)) >= (EntryPrice+D2)*1.05 Then ExitShort(); if (data1(c)+data2(c)) <= (EntryPrice+D2)*0.95 Then ExitShort(); } SetStopEndofday(140000); 2.#주종목 : 콜 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); if data1(date != date[1]) Then{ Putcond = false; Callcond = false; } if stime >= 93000 and stime <= 120000 Then{ if Callcond == false and data3(CrossDown(ma(c,5),ma(c,20))) Then{ sell("s",OnClose,def,1); Callcond = true; idx = data1(index); } if Callcond == true and Putcond == false and data1(index) == idx+7 Then{ D2 = data2(C); Putcond = true; } if Putcond == false and data3(CrossUp(ma(c,5),ma(c,20))) Then{ D2 = data2(C); Putcond = true; D2i = data1(index); } if Callcond == false and Putcond == true and data1(index) == D2i+7 Then{ sell("ss",OnClose,def,1); Callcond = true; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if (data1(c)+data2(c)) >= (EntryPrice+D2)*1.05 Then ExitShort(); if (data1(c)+data2(c)) <= (EntryPrice+D2)*0.95 Then ExitShort(); } SetStopEndofday(140000); 즐거운 하루되세요 > 한걸음7 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다. > 늘 감사합니다. 시스템식 부탁드립니다. 진입 신호 당일 9시 30분 부터 가동, 12시이후 진입금지 , 매도 수량은 누적되며,총 진입개수 콜풋 각각 10개씩까지 매도 진입 데이터 3개 사용 - 주차트 date1 옵션, 보조차트 옵션 date2, 보조차트 선물 date3 1,선물보조차트 5평균선이 20평균선 위로 돌파 할때 풋매도 1개 2,선물보조차트 5평균선이 20평균선 아래로 돌파 할때 콜매도 1개 3, 1번 풋매도후 7봉 이내에 2번 신호 없으면 콜매도 1개 4, 2번 콜매도후 7봉 이내에 1번 신호 없으면 풋매도 1개 청산 신호 1. 총 양옵션의 평균 진입가 대비 +5% 오르면 전량손절 (당일재진입금지) 2. 총 양옵션의 평균 진입가 대비 -5% 내리면 전량익절 (당일재진입금지) 3. 14시에 보유분 전량 청산 (당일재진입금지)
프로필 이미지

예스스탁 예스스탁 답변

2012-02-09 15:13:00

안녕하세요 예스스탁입니다. 1,선물보조차트 5평균선이 20평균선 위로 돌파 할때 풋매도 1개 2,선물보조차트 5평균선이 20평균선 아래로 돌파 할때 콜매도 1개 3, 1번 풋매도후 7봉 이내에 2번 신호 없으면 콜매도 1개 4, 2번 콜매도후 7봉 이내에 1번 신호 없으면 풋매도 1개 위 내용으로만 수량을 누적을 하게 되면 콜과 풋의 숫자가 동일하게 맞지 않을 수 있습니다. 첨부된 그림과 같이 (파란수직선이 선물 데드, 빨간 수직선이 선물 골드입니다.) 1. 선물 데드크로스가 발생하여 Call 매도 1계약 발생 2. 선물 골드크로스가 발생하여 Put 매도 1계약 발생 3. 선물 데드크로스가 없어 7봉 후 Call 매도 1계약 발생 4. 바로 다다음봉에 선물 데드크로스가 발생하면 Put 매도 1계약 발생 5. 선물 골드크로스 발생하면 Call 매도 1계약 발생 6. 골드 후 7 내에 데드크로스가 없어 7봉후 Call 매도 1계약 발생 7. 12시 넘어 더이상 진입이 발생하지 않음 과 같이 put은 같은 기간내 2계약만 발생하고 Call은 4계약이 발생합니다. (수식1-1,수식1-2) (수식2-1,수식2-2)은 만약 골드후 7번째 봉에서 진입했다면 다음 데드 크로스는 한번 쉬게 작성하여 수량을 맞춘것입니다.(반대 데드도 같습니다.) 이부분도 12시라는 시간 제약으로 1계약씩 차이가 발생할 수 있습니다. 청산부분은 평균 단가를 계산하도록 하여 작성했습니다. 1-1 콜 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); var : D1sumEntry(0,data1),D1sumCount(0,data1),D2sumEntry(0,data1),D2sumCount(0,data1); var : cross(0,data3),crosscnt(0,data3); if data1(date != date[1]) Then{ cross = 0; D1sumEntry = 0; D1sumcount = 0; D2sumEntry = 0; D2sumcount = 0; crosscnt = 0; } if data3(crossup(ma(c,5),ma(c,20))) Then cross = 1; if data3(CrossDown(ma(c,5),ma(c,20))) Then cross = -1; if stime >= 93000 and stime <= 120000 Then{ if cross == 1 and cross[1] == -1 Then{ sell("s",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } if data3(countif(cross <= 0,7) < 1) and cross[7] == 1 and cross[8] == -1 and stime[7] >= 93000 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } if cross == -1 and cross[1] == 1 Then{ crosscnt = crosscnt+1; D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } if data3(countif(cross >= 0,7) < 1) and cross[7] == -1 and cross[8] == 1 and stime[7] >= 93000 Then{ sell("ss",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if (data1(c)*D1sumCount+data2(c)*D2sumCount) >= (D1sumEntry+D2sumEntry)*1.05 Then ExitShort(); if (data1(c)*D1sumCount+data2(c)*D2sumCount) >= (D1sumEntry+D2sumEntry)*0.95 Then ExitShort(); } SetStopEndofday(140000); 1-2 풋 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); var : D1sumEntry(0,data1),D1sumCount(0,data1),D2sumEntry(0,data1),D2sumCount(0,data1); var : cross(0,data3); if data1(date != date[1]) Then{ cross = 0; D1sumEntry = 0; D1sumcount = 0; D2sumEntry = 0; D2sumcount = 0; } if data3(crossup(ma(c,5),ma(c,20))) Then cross = 1; if data3(CrossDown(ma(c,5),ma(c,20))) Then cross = -1; if stime >= 93000 and stime <= 120000 Then{ if cross == -1 and cross[1] == 1 Then{ sell("s",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } if data3(countif(cross >= 0,7) < 1) and cross[7] == -1 and cross[8] == 1 and stime[7] >= 93000 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } if cross == 1 and cross[1] == -1 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } if data3(countif(cross <= 0,7) < 1) and cross[7] == 1 and cross[8] == -1 and stime[7] >= 93000 Then{ sell("ss",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if ((data1(c)+data2(c))/2) >= (D1sumEntry+D2sumEntry)*1.05 Then ExitShort(); if (data1(c)*D1sumCount+data2(c)*D2sumCount) >= (D1sumEntry+D2sumEntry)*0.95 Then ExitShort(); } SetStopEndofday(140000); 2-1 콜 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); var : D1sumEntry(0,data1),D1sumCount(0,data1),D2sumEntry(0,data1),D2sumCount(0,data1); var : cross(0,data3),crosscnt(0,data3),idx7(0,data1),crossidx(0,data3),crossU(false,data1),CrossD(false,data1); if data1(date != date[1]) Then{ cross = 0; D1sumEntry = 0; D1sumcount = 0; D2sumEntry = 0; D2sumcount = 0; idx7 = 0; } if stime >= 93000 and stime < 120000 then{ if cross <= 0 and data3(CrossUp(ma(c,5),ma(c,20))) Then{ cross = 1; idx7 = 0; } if cross >= 0 and data3(CrossDown(ma(c,5),ma(c,20))) Then{ cross = -1; idx7 = 0; } if cross != 0 Then idx7 = idx7+1; if countif(cross == 1,8) == 8 and idx7 == 8 Then cross = -1; if countif(cross == -1,8) == 8 and idx7 == 8 Then cross = 1; if cross == 1 and cross[1] != 1 Then{ sell("s",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } if cross == -1 and cross[1] != -1 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } } if MarketPosition == -1 then{ if (data1(c)*D1sumCount+data2(c)*D2sumCount)/(D1sumCount+D2sumCount) >= ((D1sumEntry+D2sumEntry)/(D1sumCount+D2sumCount))*1.05 Then ExitShort(); if (data1(c)*D1sumCount+data2(c)*D2sumCount)/(D1sumCount+D2sumCount) <= ((D1sumEntry+D2sumEntry)/(D1sumCount+D2sumCount))*0.95 Then ExitShort(); } SetStopEndofday(140000); 2-2 풋 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); var : D1sumEntry(0,data1),D1sumCount(0,data1),D2sumEntry(0,data1),D2sumCount(0,data1); var : cross(0,data3),crosscnt(0,data3),idx7(0,data1),crossidx(0,data3),crossU(false,data1),CrossD(false,data1); if data1(date != date[1]) Then{ cross = 0; D1sumEntry = 0; D1sumcount = 0; D2sumEntry = 0; D2sumcount = 0; idx7 = 0; } if stime >= 93000 and stime < 120000 then{ if cross <= 0 and data3(CrossUp(ma(c,5),ma(c,20))) Then{ cross = 1; idx7 = 0; } if cross >= 0 and data3(CrossDown(ma(c,5),ma(c,20))) Then{ cross = -1; idx7 = 0; } if cross != 0 Then idx7 = idx7+1; if countif(cross == 1,8) == 8 and idx7 == 8 Then cross = -1; if countif(cross == -1,8) == 8 and idx7 == 8 Then cross = 1; if cross == -1 and cross[1] != -1 Then{ sell("s",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } if cross == 1 and cross[1] != 1 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } } if MarketPosition == -1 then{ if (data1(c)*D1sumCount+data2(c)*D2sumCount)/(D1sumCount+D2sumCount) >= ((D1sumEntry+D2sumEntry)/(D1sumCount+D2sumCount))*1.05 Then ExitShort(); if (data1(c)*D1sumCount+data2(c)*D2sumCount)/(D1sumCount+D2sumCount) <= ((D1sumEntry+D2sumEntry)/(D1sumCount+D2sumCount))*0.95 Then ExitShort(); } SetStopEndofday(140000); 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 부탁드립니다. > 안녕하세요 예스스탁입니다. 1.#주종목 : 풋 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); if data1(date != date[1]) Then{ Putcond = false; Callcond = false; } if stime >= 93000 and stime <= 120000 Then{ if Putcond == false and data3(crossup(ma(c,5),ma(c,20))) Then{ sell("s",OnClose,def,1); Putcond = true; idx = data1(index); } if Putcond == true and Callcond == false and data1(index) == idx+7 Then{ D2 = data2(C); Callcond = true; } if Callcond == false and data3(CrossDown(ma(c,5),ma(c,20))) Then{ D2 = data2(C); Callcond = true; D2i = data1(index); } if Putcond == false and Callcond == true and data1(index) == D2i+7 Then{ sell("ss",OnClose,def,1); Putcond = true; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if (data1(c)+data2(c)) >= (EntryPrice+D2)*1.05 Then ExitShort(); if (data1(c)+data2(c)) <= (EntryPrice+D2)*0.95 Then ExitShort(); } SetStopEndofday(140000); 2.#주종목 : 콜 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); if data1(date != date[1]) Then{ Putcond = false; Callcond = false; } if stime >= 93000 and stime <= 120000 Then{ if Callcond == false and data3(CrossDown(ma(c,5),ma(c,20))) Then{ sell("s",OnClose,def,1); Callcond = true; idx = data1(index); } if Callcond == true and Putcond == false and data1(index) == idx+7 Then{ D2 = data2(C); Putcond = true; } if Putcond == false and data3(CrossUp(ma(c,5),ma(c,20))) Then{ D2 = data2(C); Putcond = true; D2i = data1(index); } if Callcond == false and Putcond == true and data1(index) == D2i+7 Then{ sell("ss",OnClose,def,1); Callcond = true; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if (data1(c)+data2(c)) >= (EntryPrice+D2)*1.05 Then ExitShort(); if (data1(c)+data2(c)) <= (EntryPrice+D2)*0.95 Then ExitShort(); } SetStopEndofday(140000); 즐거운 하루되세요 > 한걸음7 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다. > 늘 감사합니다. 시스템식 부탁드립니다. 진입 신호 당일 9시 30분 부터 가동, 12시이후 진입금지 , 매도 수량은 누적되며,총 진입개수 콜풋 각각 10개씩까지 매도 진입 데이터 3개 사용 - 주차트 date1 옵션, 보조차트 옵션 date2, 보조차트 선물 date3 1,선물보조차트 5평균선이 20평균선 위로 돌파 할때 풋매도 1개 2,선물보조차트 5평균선이 20평균선 아래로 돌파 할때 콜매도 1개 3, 1번 풋매도후 7봉 이내에 2번 신호 없으면 콜매도 1개 4, 2번 콜매도후 7봉 이내에 1번 신호 없으면 풋매도 1개 청산 신호 1. 총 양옵션의 평균 진입가 대비 +5% 오르면 전량손절 (당일재진입금지) 2. 총 양옵션의 평균 진입가 대비 -5% 내리면 전량익절 (당일재진입금지) 3. 14시에 보유분 전량 청산 (당일재진입금지)
프로필 이미지

한걸음7

2012-02-09 17:05:30

> 예스스탁 님이 쓴 글입니다. > 제목 : Re : Re : 수정한 식입니다. > 안녕하세요 예스스탁입니다. 1,선물보조차트 5평균선이 20평균선 위로 돌파 할때 풋매도 1개 2,선물보조차트 5평균선이 20평균선 아래로 돌파 할때 콜매도 1개 3, 1번 풋매도후 7봉 이내에 2번 신호 없으면 콜매도 1개 4, 2번 콜매도후 7봉 이내에 1번 신호 없으면 풋매도 1개 위 내용으로만 수량을 누적을 하게 되면 콜과 풋의 숫자가 동일하게 맞지 않을 수 있습니다. 첨부된 그림과 같이 (파란수직선이 선물 데드, 빨간 수직선이 선물 골드입니다.) 1. 선물 데드크로스가 발생하여 Call 매도 1계약 발생 2. 선물 골드크로스가 발생하여 Put 매도 1계약 발생 3. 선물 데드크로스가 없어 7봉 후 Call 매도 1계약 발생 4. 바로 다다음봉에 선물 데드크로스가 발생하면 Put 매도 1계약 발생 5. 선물 골드크로스 발생하면 Call 매도 1계약 발생 6. 골드 후 7 내에 데드크로스가 없어 7봉후 Call 매도 1계약 발생 7. 12시 넘어 더이상 진입이 발생하지 않음 과 같이 put은 같은 기간내 2계약만 발생하고 Call은 4계약이 발생합니다. (수식1-1,수식1-2) (수식2-1,수식2-2)은 만약 골드후 7번째 봉에서 진입했다면 다음 데드 크로스는 한번 쉬게 작성하여 수량을 맞춘것입니다.(반대 데드도 같습니다.) 이부분도 12시라는 시간 제약으로 1계약씩 차이가 발생할 수 있습니다. 청산부분은 평균 단가를 계산하도록 하여 작성했습니다. 1-1 콜 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); var : D1sumEntry(0,data1),D1sumCount(0,data1),D2sumEntry(0,data1),D2sumCount(0,data1); var : cross(0,data3),crosscnt(0,data3); if data1(date != date[1]) Then{ cross = 0; D1sumEntry = 0; D1sumcount = 0; D2sumEntry = 0; D2sumcount = 0; crosscnt = 0; } if data3(crossup(ma(c,5),ma(c,20))) Then cross = 1; if data3(CrossDown(ma(c,5),ma(c,20))) Then cross = -1; if stime >= 93000 and stime <= 120000 Then{ if cross == 1 and cross[1] == -1 Then{ sell("s",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } if data3(countif(cross <= 0,7) < 1) and cross[7] == 1 and cross[8] == -1 and stime[7] >= 93000 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } if cross == -1 and cross[1] == 1 Then{ crosscnt = crosscnt+1; D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } if data3(countif(cross >= 0,7) < 1) and cross[7] == -1 and cross[8] == 1 and stime[7] >= 93000 Then{ sell("ss",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if (data1(c)*D1sumCount+data2(c)*D2sumCount) >= (D1sumEntry+D2sumEntry)*1.05 Then ExitShort(); if (data1(c)*D1sumCount+data2(c)*D2sumCount) >= (D1sumEntry+D2sumEntry)*0.95 Then ExitShort(); } SetStopEndofday(140000); 1-2 풋 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); var : D1sumEntry(0,data1),D1sumCount(0,data1),D2sumEntry(0,data1),D2sumCount(0,data1); var : cross(0,data3); if data1(date != date[1]) Then{ cross = 0; D1sumEntry = 0; D1sumcount = 0; D2sumEntry = 0; D2sumcount = 0; } if data3(crossup(ma(c,5),ma(c,20))) Then cross = 1; if data3(CrossDown(ma(c,5),ma(c,20))) Then cross = -1; if stime >= 93000 and stime <= 120000 Then{ if cross == -1 and cross[1] == 1 Then{ sell("s",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } if data3(countif(cross >= 0,7) < 1) and cross[7] == -1 and cross[8] == 1 and stime[7] >= 93000 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } if cross == 1 and cross[1] == -1 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } if data3(countif(cross <= 0,7) < 1) and cross[7] == 1 and cross[8] == -1 and stime[7] >= 93000 Then{ sell("ss",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if ((data1(c)+data2(c))/2) >= (D1sumEntry+D2sumEntry)*1.05 Then ExitShort(); if (data1(c)*D1sumCount+data2(c)*D2sumCount) >= (D1sumEntry+D2sumEntry)*0.95 Then ExitShort(); } SetStopEndofday(140000); 2-1 콜 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); var : D1sumEntry(0,data1),D1sumCount(0,data1),D2sumEntry(0,data1),D2sumCount(0,data1); var : cross(0,data3),crosscnt(0,data3),idx7(0,data1),crossidx(0,data3),crossU(false,data1),CrossD(false,data1); if data1(date != date[1]) Then{ cross = 0; D1sumEntry = 0; D1sumcount = 0; D2sumEntry = 0; D2sumcount = 0; idx7 = 0; } if stime >= 93000 and stime < 120000 then{ if cross <= 0 and data3(CrossUp(ma(c,5),ma(c,20))) Then{ cross = 1; idx7 = 0; } if cross >= 0 and data3(CrossDown(ma(c,5),ma(c,20))) Then{ cross = -1; idx7 = 0; } if cross != 0 Then idx7 = idx7+1; if countif(cross == 1,8) == 8 and idx7 == 8 Then cross = -1; if countif(cross == -1,8) == 8 and idx7 == 8 Then cross = 1; if cross == 1 and cross[1] != 1 Then{ sell("s",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } if cross == -1 and cross[1] != -1 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } } if MarketPosition == -1 then{ if (data1(c)*D1sumCount+data2(c)*D2sumCount)/(D1sumCount+D2sumCount) >= ((D1sumEntry+D2sumEntry)/(D1sumCount+D2sumCount))*1.05 Then ExitShort(); if (data1(c)*D1sumCount+data2(c)*D2sumCount)/(D1sumCount+D2sumCount) <= ((D1sumEntry+D2sumEntry)/(D1sumCount+D2sumCount))*0.95 Then ExitShort(); } SetStopEndofday(140000); 2-2 풋 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); var : D1sumEntry(0,data1),D1sumCount(0,data1),D2sumEntry(0,data1),D2sumCount(0,data1); var : cross(0,data3),crosscnt(0,data3),idx7(0,data1),crossidx(0,data3),crossU(false,data1),CrossD(false,data1); if data1(date != date[1]) Then{ cross = 0; D1sumEntry = 0; D1sumcount = 0; D2sumEntry = 0; D2sumcount = 0; idx7 = 0; } if stime >= 93000 and stime < 120000 then{ if cross <= 0 and data3(CrossUp(ma(c,5),ma(c,20))) Then{ cross = 1; idx7 = 0; } if cross >= 0 and data3(CrossDown(ma(c,5),ma(c,20))) Then{ cross = -1; idx7 = 0; } if cross != 0 Then idx7 = idx7+1; if countif(cross == 1,8) == 8 and idx7 == 8 Then cross = -1; if countif(cross == -1,8) == 8 and idx7 == 8 Then cross = 1; if cross == -1 and cross[1] != -1 Then{ sell("s",OnClose,def,1); D1sumEntry = D1sumEntry+data1(c); D1sumCount = D1sumCount+1; } if cross == 1 and cross[1] != 1 Then{ D2sumEntry = D2sumEntry+data2(c); D2sumCount = D2sumCount+1; } } if MarketPosition == -1 then{ if (data1(c)*D1sumCount+data2(c)*D2sumCount)/(D1sumCount+D2sumCount) >= ((D1sumEntry+D2sumEntry)/(D1sumCount+D2sumCount))*1.05 Then ExitShort(); if (data1(c)*D1sumCount+data2(c)*D2sumCount)/(D1sumCount+D2sumCount) <= ((D1sumEntry+D2sumEntry)/(D1sumCount+D2sumCount))*0.95 Then ExitShort(); } SetStopEndofday(140000); 즐거운 하루되세요 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 부탁드립니다. > 안녕하세요 예스스탁입니다. 1.#주종목 : 풋 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); if data1(date != date[1]) Then{ Putcond = false; Callcond = false; } if stime >= 93000 and stime <= 120000 Then{ if Putcond == false and data3(crossup(ma(c,5),ma(c,20))) Then{ sell("s",OnClose,def,1); Putcond = true; idx = data1(index); } if Putcond == true and Callcond == false and data1(index) == idx+7 Then{ D2 = data2(C); Callcond = true; } if Callcond == false and data3(CrossDown(ma(c,5),ma(c,20))) Then{ D2 = data2(C); Callcond = true; D2i = data1(index); } if Putcond == false and Callcond == true and data1(index) == D2i+7 Then{ sell("ss",OnClose,def,1); Putcond = true; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if (data1(c)+data2(c)) >= (EntryPrice+D2)*1.05 Then ExitShort(); if (data1(c)+data2(c)) <= (EntryPrice+D2)*0.95 Then ExitShort(); } SetStopEndofday(140000); 2.#주종목 : 콜 var : idx(0,data1),d2(0,data2),Putcond(false,data1),Callcond(false,data1),D1D2(0,data1),D2i(0,data1); if data1(date != date[1]) Then{ Putcond = false; Callcond = false; } if stime >= 93000 and stime <= 120000 Then{ if Callcond == false and data3(CrossDown(ma(c,5),ma(c,20))) Then{ sell("s",OnClose,def,1); Callcond = true; idx = data1(index); } if Callcond == true and Putcond == false and data1(index) == idx+7 Then{ D2 = data2(C); Putcond = true; } if Putcond == false and data3(CrossUp(ma(c,5),ma(c,20))) Then{ D2 = data2(C); Putcond = true; D2i = data1(index); } if Callcond == false and Putcond == true and data1(index) == D2i+7 Then{ sell("ss",OnClose,def,1); Callcond = true; } } if MarketPosition == -1 and Putcond == true and Callcond == true then{ if (data1(c)+data2(c)) >= (EntryPrice+D2)*1.05 Then ExitShort(); if (data1(c)+data2(c)) <= (EntryPrice+D2)*0.95 Then ExitShort(); } SetStopEndofday(140000); 즐거운 하루되세요 > 한걸음7 님이 쓴 글입니다. > 제목 : 시스템식 부탁드립니다. > 늘 감사합니다. 시스템식 부탁드립니다. 진입 신호 당일 9시 30분 부터 가동, 12시이후 진입금지 , 매도 수량은 누적되며,총 진입개수 콜풋 각각 10개씩까지 매도 진입 데이터 3개 사용 - 주차트 date1 옵션, 보조차트 옵션 date2, 보조차트 선물 date3 1,선물보조차트 5평균선이 20평균선 위로 돌파 할때 풋매도 1개 2,선물보조차트 5평균선이 20평균선 아래로 돌파 할때 콜매도 1개 3, 1번 풋매도후 7봉 이내에 2번 신호 없으면 콜매도 1개 4, 2번 콜매도후 7봉 이내에 1번 신호 없으면 풋매도 1개 청산 신호 1. 총 양옵션의 평균 진입가 대비 +5% 오르면 전량손절 (당일재진입금지) 2. 총 양옵션의 평균 진입가 대비 -5% 내리면 전량익절 (당일재진입금지) 3. 14시에 보유분 전량 청산 (당일재진입금지)