커뮤니티
문의 드립니다.
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);