커뮤니티

시스템식 수정 부탁드립니다.

프로필 이미지
종풍화성
2015-10-13 11:11:21
142
글번호 91178
답변완료

첨부 이미지

수고 많으십니다. 1. 추가매수 관련 시스템식 수정건 - 그림1) 그림1)과 같이 오전 11:30분경 1차매수후 13:30분경 1차매도가 이루어 지고 계속 하락하여 2차매수, 3차매수 타점에 왔을때 추가매수가 이루어 지도록 수정 부탁드립니다. 같은 원리로 전체수정할 부분을 정리하자면 1차매수, 1차매수+2차매수 후 최종 3차매도까지 가서 물량을 전량매도하지 못하고 하락할 경우 나머지 추가매수 타점인 2차매수, 3차매수 타점에서 추가매수가 이루어지도록 부탁드립니다. 2. 시가 갭하락시 매수관련 시스템식 수정건 - 그림2) 그림2)는 유진기업 10월7일 3분봉 차트로 기존 시스템식에서는 "전략식시작일자(20151007)"에 시가가 전일(20151006)종가보다 1.5% 이상 갭하락시 12:00이전에는 매수하지 않고 12:00 이후에 c>v2 이면 매수하는 시스템식인데 시가가 -1.57% 하락해서 시작했는데 3분봉 3번째 봉에서 1차매수 신호가 잡히네요... 수정 부탁드립니다. ------------------------------------------------------------------------------------- input : 전략식시작일자(20151012), 전략식시작시간(090000), 전략총매수금액(100); # 금액은 만원단위 input : 매수위치1차(1), 매수위치2차(2), 매수위치3차(3); input : 매도위치1차(1.5), 매도위치2차(2), 매도위치3차(2.5); input : 매수비중1차(20), 매수비중2차(30), 매수비중3차(50); input : 매도비중1차(20), 매도비중2차(30), 매도비중3차(50); input : 전략식진입횟수(1); input : 최종손절위치(4); input : Period(384); var : CL(0),V0.5(0),V1(0),V2(0),V3(0); var : mid(0),V4(0),V5(0),V6(0),V7(0); var : diff(0),TF(0),cnt(0),value(0); Array : HH[400](0),LL[499](0); TF = TimeToMinutes(stime)%15; if date != date[1] or (date == date and TF < TF[1]) Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 399{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[Period] > 0 Then{ var1 = HH[0]; var2 = LL[0]; var11 = HH[1]; var12 = LL[1]; for cnt = 0 to Period-1{ if HH[cnt] > var1 Then var1 = HH[cnt]; if HH[cnt+1] > var11 Then var11 = HH[cnt+1]; if LL[cnt] < var2 Then var2 = LL[cnt]; if LL[cnt+1] < var21 Then var21 = LL[cnt+1]; } if var11 < var1 Then CL = (var1+var2)/2; V0.5 = var1-((var1-CL)/5)*1; V1 = var1-((var1-CL)/5)*2; ## 1매수타점 V2 = var1-((var1-CL)/5)*3; ## 2매수타점 V3 = var1-((var1-CL)/5)*4; ## 3매수타점 mid = (var1+var2)/2; V4 = var1-((var1-CL)/5)*5; V5 = var1-((var1-CL)/5)*6; V6 = var1-((var1-CL)/5)*7; V7 = var1-((var1-CL)/5)*8; value = abs(var1-V0.5); if sdate >= 전략식시작일자 and TotalTrades < 전략식진입횟수 then{ if MarketPosition == 0 and stime >= 전략식시작시간 and ((stime < 120000 and O > C[1]*0.985) or (stime >= 120000 and C > V2)) Then{ if NextBarOpen > var1-value*(매수위치1차+1) Then buy("1차매수",atlimit,var1-value*(매수위치1차+1),Floor((전략총매수금액*10000*(매수비중1차/100))/C)); Else buy("1차매수.",AtMarket,def,Floor((전략총매수금액*10000*(매수비중1차/100))/C)); } if MarketPosition == 1 then{ diff = abs(var1[BarsSinceEntry]-V0.5[BarsSinceEntry]); if MaxEntries == 1 and L >= var1-value*(매수위치2차+1) and CurrentContracts == MaxContracts Then buy("2차매수",atlimit,var1-value*(매수위치2차+1),Floor((전략총매수금액*10000*(매수비중2차/100))/C)); if MaxEntries == 2 and L >= var1-value*(매수위치3차+1) and CurrentContracts == MaxContracts Then buy("3차매수",atlimit,var1-value*(매수위치3차+1),Floor((전략총매수금액*10000*(매수비중3차/100))/C)); if LatestExitName(0) == "1차매도" Then Condition1 = true; if LatestExitName(0) == "2차매도" Then Condition2 = true; if LatestExitName(0) == "3차매도" Then Condition3 = true; if Condition1 == false then exitlong("1차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치1차,"",Floor(MaxContracts*(매도비중1차/100)),1); if Condition2 == false then exitlong("2차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치2차,"",Floor(MaxContracts*(매도비중2차/100)),1); if Condition3 == false then exitlong("3차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치3차); exitlong("최종손절",AtStop,var1-value*(최종손절위치+1)); } Else{ Condition1 = false; Condition2 = false; Condition3 = false; } } }
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2015-10-13 17:07:58

안녕하세요 예스스탁입니다. 1. 아래 수식에 수정한 내용을 반영했습니다. 2. 2번 내용의 경우에는 전략식시작일자와 전략식시작시간을 한봉전으로 지정해 주시면 됩니다. 가령 10월7일 9시부터 신호가 발생하고자 하시면 10월6일 15시봉으로 지정해 주시면 됩니다. 해당 부분 이전에 설명드린 부분과 같이 신호의 타입이 현재봉에 셋팅되서 다음봉을 감시하는 구조이므로 전일마지막봉을 시작일자와 시간으로 지정하시면 다음날 첫봉에서도 조건만족하면 신호가 발생합니다. 3 수정한식입니다. input : 전략식시작일자(20151012), 전략식시작시간(090000), 전략총매수금액(100); # 금액은 만원단위 input : 매수위치1차(1), 매수위치2차(2), 매수위치3차(3); input : 매도위치1차(1.5), 매도위치2차(2), 매도위치3차(2.5); input : 매수비중1차(20), 매수비중2차(30), 매수비중3차(50); input : 매도비중1차(20), 매도비중2차(30), 매도비중3차(50); input : 전략식진입횟수(1); input : 최종손절위치(4); input : Period(384); var : CL(0),V0.5(0),V1(0),V2(0),V3(0); var : mid(0),V4(0),V5(0),V6(0),V7(0); var : diff(0),TF(0),cnt(0),value(0); var : entrycond1(false),entrycond2(false),entrycond3(false); Array : HH[400](0),LL[499](0); TF = TimeToMinutes(stime)%15; if date != date[1] or (date == date and TF < TF[1]) Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 399{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[Period] > 0 Then{ var1 = HH[0]; var2 = LL[0]; var11 = HH[1]; var12 = LL[1]; for cnt = 0 to Period-1{ if HH[cnt] > var1 Then var1 = HH[cnt]; if HH[cnt+1] > var11 Then var11 = HH[cnt+1]; if LL[cnt] < var2 Then var2 = LL[cnt]; if LL[cnt+1] < var21 Then var21 = LL[cnt+1]; } if var11 < var1 Then CL = (var1+var2)/2; V0.5 = var1-((var1-CL)/5)*1; V1 = var1-((var1-CL)/5)*2; ## 1매수타점 V2 = var1-((var1-CL)/5)*3; ## 2매수타점 V3 = var1-((var1-CL)/5)*4; ## 3매수타점 mid = (var1+var2)/2; V4 = var1-((var1-CL)/5)*5; V5 = var1-((var1-CL)/5)*6; V6 = var1-((var1-CL)/5)*7; V7 = var1-((var1-CL)/5)*8; value = abs(var1-V0.5); if sdate >= 전략식시작일자 and TotalTrades < 전략식진입횟수 then{ if MarketPosition == 0 and stime >= 전략식시작시간 and ((stime < 120000 and O > C[1]*0.985) or (stime >= 120000 and C > V2)) Then{ if NextBarOpen > var1-value*(매수위치1차+1) and EntryCond1 == false Then buy("1차매수",atlimit,var1-value*(매수위치1차+1),Floor((전략총매수금액*10000*(매수비중1차/100))/C)); Else buy("1차매수.",AtMarket,def,Floor((전략총매수금액*10000*(매수비중1차/100))/C)); } if MarketPosition == 1 then{ diff = abs(var1[BarsSinceEntry]-V0.5[BarsSinceEntry]); if MaxEntries == 1 and L >= var1-value*(매수위치2차+1) and EntryCond2 == false Then buy("2차매수",atlimit,var1-value*(매수위치2차+1),Floor((전략총매수금액*10000*(매수비중2차/100))/C)); if MaxEntries == 2 and L >= var1-value*(매수위치3차+1) and EntryCond3 == false Then buy("3차매수",atlimit,var1-value*(매수위치3차+1),Floor((전략총매수금액*10000*(매수비중3차/100))/C)); if LatestExitName(0) == "1차매도" Then Condition1 = true; if LatestExitName(0) == "2차매도" Then Condition2 = true; if LatestExitName(0) == "3차매도" Then Condition3 = true; if Condition1 == false then exitlong("1차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치1차,"",Floor(MaxContracts*(매도비중1차/100)),1); if Condition2 == false then exitlong("2차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치2차,"",Floor(MaxContracts*(매도비중2차/100)),1); if Condition3 == false then exitlong("3차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치3차); exitlong("최종손절",AtStop,var1-value*(최종손절위치+1)); } Else{ Condition1 = false; Condition2 = false; Condition3 = false; } } } if MarketPosition == 1 and (LatestEntryName(0) == "1차매수" or LatestEntryName(0) == "1차매수.") Then entrycond1 = true; if MarketPosition == 1 and LatestEntryName(0) == "2차매수" Then entrycond2 = true; if MarketPosition == 1 and LatestEntryName(0) == "3차매수" Then entrycond3 = true; if MarketPosition == 0 Then{ entrycond1 = false; entrycond2 = false; entrycond3 = false; } 즐거운 하루되세요 > 종풍화성 님이 쓴 글입니다. > 제목 : 시스템식 수정 부탁드립니다. > 수고 많으십니다. 1. 추가매수 관련 시스템식 수정건 - 그림1) 그림1)과 같이 오전 11:30분경 1차매수후 13:30분경 1차매도가 이루어 지고 계속 하락하여 2차매수, 3차매수 타점에 왔을때 추가매수가 이루어 지도록 수정 부탁드립니다. 같은 원리로 전체수정할 부분을 정리하자면 1차매수, 1차매수+2차매수 후 최종 3차매도까지 가서 물량을 전량매도하지 못하고 하락할 경우 나머지 추가매수 타점인 2차매수, 3차매수 타점에서 추가매수가 이루어지도록 부탁드립니다. 2. 시가 갭하락시 매수관련 시스템식 수정건 - 그림2) 그림2)는 유진기업 10월7일 3분봉 차트로 기존 시스템식에서는 "전략식시작일자(20151007)"에 시가가 전일(20151006)종가보다 1.5% 이상 갭하락시 12:00이전에는 매수하지 않고 12:00 이후에 c>v2 이면 매수하는 시스템식인데 시가가 -1.57% 하락해서 시작했는데 3분봉 3번째 봉에서 1차매수 신호가 잡히네요... 수정 부탁드립니다. ------------------------------------------------------------------------------------- input : 전략식시작일자(20151012), 전략식시작시간(090000), 전략총매수금액(100); # 금액은 만원단위 input : 매수위치1차(1), 매수위치2차(2), 매수위치3차(3); input : 매도위치1차(1.5), 매도위치2차(2), 매도위치3차(2.5); input : 매수비중1차(20), 매수비중2차(30), 매수비중3차(50); input : 매도비중1차(20), 매도비중2차(30), 매도비중3차(50); input : 전략식진입횟수(1); input : 최종손절위치(4); input : Period(384); var : CL(0),V0.5(0),V1(0),V2(0),V3(0); var : mid(0),V4(0),V5(0),V6(0),V7(0); var : diff(0),TF(0),cnt(0),value(0); Array : HH[400](0),LL[499](0); TF = TimeToMinutes(stime)%15; if date != date[1] or (date == date and TF < TF[1]) Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 399{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[Period] > 0 Then{ var1 = HH[0]; var2 = LL[0]; var11 = HH[1]; var12 = LL[1]; for cnt = 0 to Period-1{ if HH[cnt] > var1 Then var1 = HH[cnt]; if HH[cnt+1] > var11 Then var11 = HH[cnt+1]; if LL[cnt] < var2 Then var2 = LL[cnt]; if LL[cnt+1] < var21 Then var21 = LL[cnt+1]; } if var11 < var1 Then CL = (var1+var2)/2; V0.5 = var1-((var1-CL)/5)*1; V1 = var1-((var1-CL)/5)*2; ## 1매수타점 V2 = var1-((var1-CL)/5)*3; ## 2매수타점 V3 = var1-((var1-CL)/5)*4; ## 3매수타점 mid = (var1+var2)/2; V4 = var1-((var1-CL)/5)*5; V5 = var1-((var1-CL)/5)*6; V6 = var1-((var1-CL)/5)*7; V7 = var1-((var1-CL)/5)*8; value = abs(var1-V0.5); if sdate >= 전략식시작일자 and TotalTrades < 전략식진입횟수 then{ if MarketPosition == 0 and stime >= 전략식시작시간 and ((stime < 120000 and O > C[1]*0.985) or (stime >= 120000 and C > V2)) Then{ if NextBarOpen > var1-value*(매수위치1차+1) Then buy("1차매수",atlimit,var1-value*(매수위치1차+1),Floor((전략총매수금액*10000*(매수비중1차/100))/C)); Else buy("1차매수.",AtMarket,def,Floor((전략총매수금액*10000*(매수비중1차/100))/C)); } if MarketPosition == 1 then{ diff = abs(var1[BarsSinceEntry]-V0.5[BarsSinceEntry]); if MaxEntries == 1 and L >= var1-value*(매수위치2차+1) and CurrentContracts == MaxContracts Then buy("2차매수",atlimit,var1-value*(매수위치2차+1),Floor((전략총매수금액*10000*(매수비중2차/100))/C)); if MaxEntries == 2 and L >= var1-value*(매수위치3차+1) and CurrentContracts == MaxContracts Then buy("3차매수",atlimit,var1-value*(매수위치3차+1),Floor((전략총매수금액*10000*(매수비중3차/100))/C)); if LatestExitName(0) == "1차매도" Then Condition1 = true; if LatestExitName(0) == "2차매도" Then Condition2 = true; if LatestExitName(0) == "3차매도" Then Condition3 = true; if Condition1 == false then exitlong("1차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치1차,"",Floor(MaxContracts*(매도비중1차/100)),1); if Condition2 == false then exitlong("2차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치2차,"",Floor(MaxContracts*(매도비중2차/100)),1); if Condition3 == false then exitlong("3차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치3차); exitlong("최종손절",AtStop,var1-value*(최종손절위치+1)); } Else{ Condition1 = false; Condition2 = false; Condition3 = false; } } }
프로필 이미지

종풍화성

2015-10-14 08:27:14

답변에 감사드립니다. 질문2번에 보시면 3분봉 첫번째 봉에서 신호가 발생되는건 맞지만 매수조건이 시가가 일봉상 전일종가대비 -1.57%로 매수조건인 -1.50%이상 갭하락했으므로 오후에 매수신호가 잡혀야 되는데 오전에 매수신호가 잡혀서 문의드렸던 내용입니다. 다시 검토 부탁드립니다. > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템식 수정 부탁드립니다. > 안녕하세요 예스스탁입니다. 1. 아래 수식에 수정한 내용을 반영했습니다. 2. 2번 내용의 경우에는 전략식시작일자와 전략식시작시간을 한봉전으로 지정해 주시면 됩니다. 가령 10월7일 9시부터 신호가 발생하고자 하시면 10월6일 15시봉으로 지정해 주시면 됩니다. 해당 부분 이전에 설명드린 부분과 같이 신호의 타입이 현재봉에 셋팅되서 다음봉을 감시하는 구조이므로 전일마지막봉을 시작일자와 시간으로 지정하시면 다음날 첫봉에서도 조건만족하면 신호가 발생합니다. 3 수정한식입니다. input : 전략식시작일자(20151012), 전략식시작시간(090000), 전략총매수금액(100); # 금액은 만원단위 input : 매수위치1차(1), 매수위치2차(2), 매수위치3차(3); input : 매도위치1차(1.5), 매도위치2차(2), 매도위치3차(2.5); input : 매수비중1차(20), 매수비중2차(30), 매수비중3차(50); input : 매도비중1차(20), 매도비중2차(30), 매도비중3차(50); input : 전략식진입횟수(1); input : 최종손절위치(4); input : Period(384); var : CL(0),V0.5(0),V1(0),V2(0),V3(0); var : mid(0),V4(0),V5(0),V6(0),V7(0); var : diff(0),TF(0),cnt(0),value(0); var : entrycond1(false),entrycond2(false),entrycond3(false); Array : HH[400](0),LL[499](0); TF = TimeToMinutes(stime)%15; if date != date[1] or (date == date and TF < TF[1]) Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 399{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[Period] > 0 Then{ var1 = HH[0]; var2 = LL[0]; var11 = HH[1]; var12 = LL[1]; for cnt = 0 to Period-1{ if HH[cnt] > var1 Then var1 = HH[cnt]; if HH[cnt+1] > var11 Then var11 = HH[cnt+1]; if LL[cnt] < var2 Then var2 = LL[cnt]; if LL[cnt+1] < var21 Then var21 = LL[cnt+1]; } if var11 < var1 Then CL = (var1+var2)/2; V0.5 = var1-((var1-CL)/5)*1; V1 = var1-((var1-CL)/5)*2; ## 1매수타점 V2 = var1-((var1-CL)/5)*3; ## 2매수타점 V3 = var1-((var1-CL)/5)*4; ## 3매수타점 mid = (var1+var2)/2; V4 = var1-((var1-CL)/5)*5; V5 = var1-((var1-CL)/5)*6; V6 = var1-((var1-CL)/5)*7; V7 = var1-((var1-CL)/5)*8; value = abs(var1-V0.5); if sdate >= 전략식시작일자 and TotalTrades < 전략식진입횟수 then{ if MarketPosition == 0 and stime >= 전략식시작시간 and ((stime < 120000 and O > C[1]*0.985) or (stime >= 120000 and C > V2)) Then{ if NextBarOpen > var1-value*(매수위치1차+1) and EntryCond1 == false Then buy("1차매수",atlimit,var1-value*(매수위치1차+1),Floor((전략총매수금액*10000*(매수비중1차/100))/C)); Else buy("1차매수.",AtMarket,def,Floor((전략총매수금액*10000*(매수비중1차/100))/C)); } if MarketPosition == 1 then{ diff = abs(var1[BarsSinceEntry]-V0.5[BarsSinceEntry]); if MaxEntries == 1 and L >= var1-value*(매수위치2차+1) and EntryCond2 == false Then buy("2차매수",atlimit,var1-value*(매수위치2차+1),Floor((전략총매수금액*10000*(매수비중2차/100))/C)); if MaxEntries == 2 and L >= var1-value*(매수위치3차+1) and EntryCond3 == false Then buy("3차매수",atlimit,var1-value*(매수위치3차+1),Floor((전략총매수금액*10000*(매수비중3차/100))/C)); if LatestExitName(0) == "1차매도" Then Condition1 = true; if LatestExitName(0) == "2차매도" Then Condition2 = true; if LatestExitName(0) == "3차매도" Then Condition3 = true; if Condition1 == false then exitlong("1차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치1차,"",Floor(MaxContracts*(매도비중1차/100)),1); if Condition2 == false then exitlong("2차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치2차,"",Floor(MaxContracts*(매도비중2차/100)),1); if Condition3 == false then exitlong("3차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치3차); exitlong("최종손절",AtStop,var1-value*(최종손절위치+1)); } Else{ Condition1 = false; Condition2 = false; Condition3 = false; } } } if MarketPosition == 1 and (LatestEntryName(0) == "1차매수" or LatestEntryName(0) == "1차매수.") Then entrycond1 = true; if MarketPosition == 1 and LatestEntryName(0) == "2차매수" Then entrycond2 = true; if MarketPosition == 1 and LatestEntryName(0) == "3차매수" Then entrycond3 = true; if MarketPosition == 0 Then{ entrycond1 = false; entrycond2 = false; entrycond3 = false; } 즐거운 하루되세요 > 종풍화성 님이 쓴 글입니다. > 제목 : 시스템식 수정 부탁드립니다. > 수고 많으십니다. 1. 추가매수 관련 시스템식 수정건 - 그림1) 그림1)과 같이 오전 11:30분경 1차매수후 13:30분경 1차매도가 이루어 지고 계속 하락하여 2차매수, 3차매수 타점에 왔을때 추가매수가 이루어 지도록 수정 부탁드립니다. 같은 원리로 전체수정할 부분을 정리하자면 1차매수, 1차매수+2차매수 후 최종 3차매도까지 가서 물량을 전량매도하지 못하고 하락할 경우 나머지 추가매수 타점인 2차매수, 3차매수 타점에서 추가매수가 이루어지도록 부탁드립니다. 2. 시가 갭하락시 매수관련 시스템식 수정건 - 그림2) 그림2)는 유진기업 10월7일 3분봉 차트로 기존 시스템식에서는 "전략식시작일자(20151007)"에 시가가 전일(20151006)종가보다 1.5% 이상 갭하락시 12:00이전에는 매수하지 않고 12:00 이후에 c>v2 이면 매수하는 시스템식인데 시가가 -1.57% 하락해서 시작했는데 3분봉 3번째 봉에서 1차매수 신호가 잡히네요... 수정 부탁드립니다. ------------------------------------------------------------------------------------- input : 전략식시작일자(20151012), 전략식시작시간(090000), 전략총매수금액(100); # 금액은 만원단위 input : 매수위치1차(1), 매수위치2차(2), 매수위치3차(3); input : 매도위치1차(1.5), 매도위치2차(2), 매도위치3차(2.5); input : 매수비중1차(20), 매수비중2차(30), 매수비중3차(50); input : 매도비중1차(20), 매도비중2차(30), 매도비중3차(50); input : 전략식진입횟수(1); input : 최종손절위치(4); input : Period(384); var : CL(0),V0.5(0),V1(0),V2(0),V3(0); var : mid(0),V4(0),V5(0),V6(0),V7(0); var : diff(0),TF(0),cnt(0),value(0); Array : HH[400](0),LL[499](0); TF = TimeToMinutes(stime)%15; if date != date[1] or (date == date and TF < TF[1]) Then{ HH[0] = H; LL[0] = L; for cnt = 1 to 399{ HH[cnt] = HH[cnt-1][1]; LL[cnt] = LL[cnt-1][1]; } } if H > HH[0] Then HH[0] = H; if L < LL[0] Then LL[0] = L; if HH[Period] > 0 Then{ var1 = HH[0]; var2 = LL[0]; var11 = HH[1]; var12 = LL[1]; for cnt = 0 to Period-1{ if HH[cnt] > var1 Then var1 = HH[cnt]; if HH[cnt+1] > var11 Then var11 = HH[cnt+1]; if LL[cnt] < var2 Then var2 = LL[cnt]; if LL[cnt+1] < var21 Then var21 = LL[cnt+1]; } if var11 < var1 Then CL = (var1+var2)/2; V0.5 = var1-((var1-CL)/5)*1; V1 = var1-((var1-CL)/5)*2; ## 1매수타점 V2 = var1-((var1-CL)/5)*3; ## 2매수타점 V3 = var1-((var1-CL)/5)*4; ## 3매수타점 mid = (var1+var2)/2; V4 = var1-((var1-CL)/5)*5; V5 = var1-((var1-CL)/5)*6; V6 = var1-((var1-CL)/5)*7; V7 = var1-((var1-CL)/5)*8; value = abs(var1-V0.5); if sdate >= 전략식시작일자 and TotalTrades < 전략식진입횟수 then{ if MarketPosition == 0 and stime >= 전략식시작시간 and ((stime < 120000 and O > C[1]*0.985) or (stime >= 120000 and C > V2)) Then{ if NextBarOpen > var1-value*(매수위치1차+1) Then buy("1차매수",atlimit,var1-value*(매수위치1차+1),Floor((전략총매수금액*10000*(매수비중1차/100))/C)); Else buy("1차매수.",AtMarket,def,Floor((전략총매수금액*10000*(매수비중1차/100))/C)); } if MarketPosition == 1 then{ diff = abs(var1[BarsSinceEntry]-V0.5[BarsSinceEntry]); if MaxEntries == 1 and L >= var1-value*(매수위치2차+1) and CurrentContracts == MaxContracts Then buy("2차매수",atlimit,var1-value*(매수위치2차+1),Floor((전략총매수금액*10000*(매수비중2차/100))/C)); if MaxEntries == 2 and L >= var1-value*(매수위치3차+1) and CurrentContracts == MaxContracts Then buy("3차매수",atlimit,var1-value*(매수위치3차+1),Floor((전략총매수금액*10000*(매수비중3차/100))/C)); if LatestExitName(0) == "1차매도" Then Condition1 = true; if LatestExitName(0) == "2차매도" Then Condition2 = true; if LatestExitName(0) == "3차매도" Then Condition3 = true; if Condition1 == false then exitlong("1차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치1차,"",Floor(MaxContracts*(매도비중1차/100)),1); if Condition2 == false then exitlong("2차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치2차,"",Floor(MaxContracts*(매도비중2차/100)),1); if Condition3 == false then exitlong("3차매도",atlimit,lowest(L,BarsSinceEntry)+diff*매도위치3차); exitlong("최종손절",AtStop,var1-value*(최종손절위치+1)); } Else{ Condition1 = false; Condition2 = false; Condition3 = false; } } }