커뮤니티

문의 드립니다.

프로필 이미지
이심전심
2017-08-10 10:24:02
92
글번호 111903
답변완료
질문1) 아래 수식에서 매수진입가격을 매수조건발생봉[0]의 high와 Low의 중간값에 해당되는 가격에 다음봉,그 다음봉, 그 다음봉 중에서 도달할 때, 즉 0봉으로부터 다음5봉 이내에 도달하면 진입하고 만약 도달하지 않고 쭉 올라가 버리면 계약체결이 안되는 것으로 할 수 있을까요? if MarketPosition <= 0 and 매수진입조건 Then buy("b",AtStop,NextBarOpen+PriceScale*1); if MarketPosition >= 0 and 매도진입조건 Then sell("s",AtStop,NextBarOpen-PriceScale*1); if MarketPosition == 1 Then ExitLong("bx",AtStop,L[BarsSinceEntry]-PriceScale*12); if MarketPosition == -1 Then ExitShort("sx",AtStop,H[BarsSinceEntry]+PriceScale*12); 질문2) 앞서 54383번글에서 답해 주셨는데 제가 빠트린 부분도 있고 운영자님께서 빠트린 부분이 있습니다. 제가 빠트린 내용은 "매도매수 수량"이 증감수량이라는 것입니다. 운영자님이 빠트린 부분은 증감수량이 절대값 300을 넘는 경우 양수인 경우 양수의 누적흐름으로 바꾸고 음수인 경우 음수의 누적흐름으로 바꾸는 부분입니다. 일단은 제가 운영자님께서 답변 주신 내용을 증감으로 바꿔 봤는데 결과과 좀 아닌 것같습니다. 아울러 300초과 수량부분에 대한 보완과 수정도 부탁드립니다. input : N(20); var : C2(0,data2),C11(0,data2),C12(0,data2),sum(0,data2),cnt(0,data2); var : T(0,data2),T1(0,data2),T2(0,data2),T3(0,data2); C2 = -data2(c); sum = 0; T3 = 0; T2 = 0; T1 = 0; for cnt = (N-1) downto 0{ T3 = T2; T2 = T1; T1 = T1; C11= C2[cnt]-C2[cnt-1]; //추가 C12= C2[cnt+1]-C2[cnt]; //추가 if cnt == (N-1) Then{ sum = C11; if C11 > 0 then T1 = 1; if C11 < 0 then T1 = -1; } if cnt < (N-1) Then{ if T2 != 1 and C11 > 0 and C12 > 0 Then T1 = 1; if T2 != -1 and C11 < 0 and C12 < 0 Then T1 = -1; if T1 != T2 Then sum = C11+C12; if T1 == 1 and T1 == T2 and C11 > 0 then{ if C12 > 0 Then sum = sum + C11; if C12 < 0 Then sum = sum + C11 + C12; } if T1 == -1 and T1 == T2 and C11 < 0 then{ if C12 < 0 Then sum = sum + C11; if C12 > 0 Then sum = sum + C11 + C12; } } } if sum > 0 Then PlotPaintBar(H,L,"강조",RED); Else PlotPaintBar(H,L,"강조",blue);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-08-09 16:49:46

안녕하세요 예스스탁입니다. 1. if MarketPosition <= 0 Then{ if Condition1 == false and 매수진입조건 Then{ Condition1 = true; var1 = index; var2 = (H+L)/2; } if Condition1 == true and index >= var1 and index < var1+1 then buy("b",atlimit,var2); } Else Condition1 = false; if MarketPosition >= 0 then{ if Condition2 == false and 매도진입조건 Then{ Condition2 = true; var3 = index; var4 = (H+L)/2; } if Condition2 == true and index >= var3 and index < var3+5 then sell("s",AtLimit,var4); } Else Condition2 = false; if MarketPosition == 1 Then ExitLong("bx",AtStop,L[BarsSinceEntry]-PriceScale*12); if MarketPosition == -1 Then ExitShort("sx",AtStop,H[BarsSinceEntry]+PriceScale*12); 2 수식에서 기준되는 값은 C2변수에 저장하시면 됩니다. 이전식에서는 data2의 매수매도수량이 어떤값인지 알수없으므르 d ata2(c)로 지정해 드린것일 뿐입니다. 전봉대비 증감이면 C2 = data2(C-C[1]);로 변경하시면 되며. 기존에 사용하는 계산식이 다른 내용이면 해당 내용을 지정하시면 됩니다. 기본이 2봉연속 +나 -값이 발생해야 하는데 한봉에서 +300, 혹은 -300이면 해당봉에서 흐름이 변경된것으로 처리해 드립니다. input : N(20); var : C2(0,data2),sum(0,data2),cnt(0,data2); var : T(0,data2),T1(0,data2),T2(0,data2),T3(0,data2); C2 = data2(c-c[1]); //기준값 지정 sum = 0; T3 = 0; T2 = 0; T1 = 0; for cnt = (N-1) downto 0{ T3 = T2; T2 = T1; T1 = T1; if cnt == (N-1) Then{ sum = C2[cnt]; if C2[cnt] > 0 then T1 = 1; if C2[cnt] < 0 then T1 = -1; } if cnt < (N-1) Then{ if T2 != 1 and C2[cnt] > 0 and C2[cnt+1] > 0 Then{ T1 = 1; sum = C2[cnt]+C2[cnt+1]; } if T2 != 1 and C2[cnt] >= 300 Then{ T1 = 1; sum = C2[cnt]; } if T2 != -1 and C2[cnt] < 0 and C2[cnt+1] < 0 Then{ T1 = -1; sum = C2[cnt]+C2[cnt+1]; } if T2 != -1 and C2[cnt] <= -300 Then{ T1 = -1; sum = C2[cnt]; } if T1 == 1 and T1 == T2 and C2[cnt] > 0 then{ if C2[cnt+1] > 0 Then sum = sum + C2[cnt]; if C2[cnt+1] < 0 Then sum = sum + C2[cnt] + C2[cnt+1]; } if T1 == -1 and T1 == T2 and C2[cnt] < 0 then{ if C2[cnt+1] < 0 Then sum = sum + C2[cnt]; if C2[cnt+1] > 0 Then sum = sum + C2[cnt] + C2[cnt+1]; } } } if sum > 0 Then PlotPaintBar(H,L,"강조",RED); Else PlotPaintBar(H,L,"강조",blue); 즐거운 하루되세요 > 이심전심 님이 쓴 글입니다. > 제목 : 문의 드립니다. > 질문1) 아래 수식에서 매수진입가격을 매수조건발생봉[0]의 high와 Low의 중간값에 해당되는 가격에 다음봉,그 다음봉, 그 다음봉 중에서 도달할 때, 즉 0봉으로부터 다음5봉 이내에 도달하면 진입하고 만약 도달하지 않고 쭉 올라가 버리면 계약체결이 안되는 것으로 할 수 있을까요? if MarketPosition <= 0 and 매수진입조건 Then buy("b",AtStop,NextBarOpen+PriceScale*1); if MarketPosition >= 0 and 매도진입조건 Then sell("s",AtStop,NextBarOpen-PriceScale*1); if MarketPosition == 1 Then ExitLong("bx",AtStop,L[BarsSinceEntry]-PriceScale*12); if MarketPosition == -1 Then ExitShort("sx",AtStop,H[BarsSinceEntry]+PriceScale*12); 질문2) 앞서 54383번글에서 답해 주셨는데 제가 빠트린 부분도 있고 운영자님께서 빠트린 부분이 있습니다. 제가 빠트린 내용은 "매도매수 수량"이 증감수량이라는 것입니다. 운영자님이 빠트린 부분은 증감수량이 절대값 300을 넘는 경우 양수인 경우 양수의 누적흐름으로 바꾸고 음수인 경우 음수의 누적흐름으로 바꾸는 부분입니다. 일단은 제가 운영자님께서 답변 주신 내용을 증감으로 바꿔 봤는데 결과과 좀 아닌 것같습니다. 아울러 300초과 수량부분에 대한 보완과 수정도 부탁드립니다. input : N(20); var : C2(0,data2),C11(0,data2),C12(0,data2),sum(0,data2),cnt(0,data2); var : T(0,data2),T1(0,data2),T2(0,data2),T3(0,data2); C2 = -data2(c); sum = 0; T3 = 0; T2 = 0; T1 = 0; for cnt = (N-1) downto 0{ T3 = T2; T2 = T1; T1 = T1; C11= C2[cnt]-C2[cnt-1]; //추가 C12= C2[cnt+1]-C2[cnt]; //추가 if cnt == (N-1) Then{ sum = C11; if C11 > 0 then T1 = 1; if C11 < 0 then T1 = -1; } if cnt < (N-1) Then{ if T2 != 1 and C11 > 0 and C12 > 0 Then T1 = 1; if T2 != -1 and C11 < 0 and C12 < 0 Then T1 = -1; if T1 != T2 Then sum = C11+C12; if T1 == 1 and T1 == T2 and C11 > 0 then{ if C12 > 0 Then sum = sum + C11; if C12 < 0 Then sum = sum + C11 + C12; } if T1 == -1 and T1 == T2 and C11 < 0 then{ if C12 < 0 Then sum = sum + C11; if C12 > 0 Then sum = sum + C11 + C12; } } } if sum > 0 Then PlotPaintBar(H,L,"강조",RED); Else PlotPaintBar(H,L,"강조",blue);