늘 고맙습니다.
#1 아래 값들 중 가장 높은 값과 낮은 값을 찾고 싶습니다. 리스트에 여러값들을 넣어놓고
그 리스트내에 있는 값들중 가장 높은값과 낮은 값을 찾고자 합니다.
예)이평5, 이평10, 이평20, 이평60
캔들이 위 값들중 가장 높은 값을 돌파했다. 낮은 값을 이탈했다. 이런 것을 만들려고 합니다.
#2 어제 알려주신 것(86902) 중 1번을 제대로 소화시키지 못해 추가 질문 드립니다.
condition1을 선언하고, 중괄호 안에 있는 {조건4, 조건5, 조건6}이 순서대로 만족하는 것까지 condition1에 넣고 싶습니다.
condition1 = 조건1 and 조건2 and 조건3 then {조건4, 조건5, 조건6};
이런 식으로 만들어서 저장해놓고 싶은데 잘 안되네요.
조건이 많다보니 알려주신대로 아래 식에 "동일조건으로 10캔들내 재매수 금지"를 넣으려는데 잘 안됩니다. 그래서 순서대로 만족하는 조건들까지 condition1에 저장해놓고 싶습니다.
#3 아래식대로 돌려보면 최종조건만 만족하면 진입이 되고 있습니다. 또다른 문제가 있어보입니다.
var:condition1(false),T(0);
var:HH50(0),LL50(0),HH위치(0),LL위치(0);
HH50 = H==highest(H,50);
LL50 = L==lowest(L,50);
HH위치 = NthHighestBar(1,H,50);
LL위치 = NthLowestBar(1,L,50);
# 10캔들내 50캔들의 최고점이 한번이상 있고, HH위치가 LL위치보다 현재봉에 가깝다면
# 10캔들내 50캔들의 최고점이 없는데도 실행이 됩니다.
if CountIF(HH50==H,10)>0 && HH위치<LL위치 &&
crossup(5이평,20이평)
Then
# 중괄호안에 있는 조건식들이 과거에 일어난 일인데요. 현재봉 기준으로 쓰여 있습니다.
이대로 써도 되나요? countif를 써서 과거 10캔들내에 있었다로 바꿔줘야 되나요?
{
if crossup(5이평[1],20이평[1]) != false Then
T=1;
if crossdown(5이평,20이평) Then
T=2;
}
if crossup(C, 이평20)
Then
Buy();
#4 수식이나 문장을 주석처리할 때 아래 모두를 처리하는 방법은 알겠는데요. /*
중간에 끼어있는 부분의 주석처리는 어떻게 하나요? 줄마다 # 붙이는 방법 말고 드래그 해놓고 한번에 여러줄을 주석처리하는 방법을 알고 싶습니다.
#5
var : 이탈20(-1),돌파60(-1);
이평20 = Ema(C,20);
if Crossdown(c,이평20) Then
이탈20 = 0;
if 이탈20 >= 0 Then
이탈20 = 이탈20 +1;
이평60 = Ema(C,60);
if CrossUp(c,이평60) Then
돌파60 = 0;
if 돌파60 >= 0 Then
돌파60 = 돌파60 +1;
if 이탈20 > 돌파60 then # 이탈20 있고나서 돌파60이 있었다. 이게 맞는건가요?
# 여러종류의 위치를 찾아서 저장해놓고 쓰려고 하는데요.
모두 위와같은 방법으로 하면 되나요? 혹시 더 간단한 방법은 없나요?
# 위의 질문들과 비슷한 내용입니다. 예를 들어서 해보면 이해하기가 쉬울 거 같아서요.
#1 20이평 > 60이평이다.
#2 20캔들내 50캔들중 최고점이 있었다.
#3 그리고 종가가 20이평 아래로 내려왔다.
#4 3이후 종가가 20이평 위로 올라가지 않았다.
#5 60이평을 이탈했다.
답변 1
예스스탁
예스스탁 답변
2024-04-26 14:57:46
> 산골소년 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 늘 고맙습니다.
#1 아래 값들 중 가장 높은 값과 낮은 값을 찾고 싶습니다. 리스트에 여러값들을 넣어놓고
그 리스트내에 있는 값들중 가장 높은값과 낮은 값을 찾고자 합니다.
예)이평5, 이평10, 이평20, 이평60
캔들이 위 값들중 가장 높은 값을 돌파했다. 낮은 값을 이탈했다. 이런 것을 만들려고 합니다.
#2 어제 알려주신 것(86902) 중 1번을 제대로 소화시키지 못해 추가 질문 드립니다.
condition1을 선언하고, 중괄호 안에 있는 {조건4, 조건5, 조건6}이 순서대로 만족하는 것까지 condition1에 넣고 싶습니다.
condition1 = 조건1 and 조건2 and 조건3 then {조건4, 조건5, 조건6};
이런 식으로 만들어서 저장해놓고 싶은데 잘 안되네요.
조건이 많다보니 알려주신대로 아래 식에 "동일조건으로 10캔들내 재매수 금지"를 넣으려는데 잘 안됩니다. 그래서 순서대로 만족하는 조건들까지 condition1에 저장해놓고 싶습니다.
#3 아래식대로 돌려보면 최종조건만 만족하면 진입이 되고 있습니다. 또다른 문제가 있어보입니다.
var:condition1(false),T(0);
var:HH50(0),LL50(0),HH위치(0),LL위치(0);
HH50 = H==highest(H,50);
LL50 = L==lowest(L,50);
HH위치 = NthHighestBar(1,H,50);
LL위치 = NthLowestBar(1,L,50);
# 10캔들내 50캔들의 최고점이 한번이상 있고, HH위치가 LL위치보다 현재봉에 가깝다면
# 10캔들내 50캔들의 최고점이 없는데도 실행이 됩니다.
if CountIF(HH50==H,10)>0 && HH위치<LL위치 &&
crossup(5이평,20이평)
Then
# 중괄호안에 있는 조건식들이 과거에 일어난 일인데요. 현재봉 기준으로 쓰여 있습니다.
이대로 써도 되나요? countif를 써서 과거 10캔들내에 있었다로 바꿔줘야 되나요?
{
if crossup(5이평[1],20이평[1]) != false Then
T=1;
if crossdown(5이평,20이평) Then
T=2;
}
if crossup(C, 이평20)
Then
Buy();
#4 수식이나 문장을 주석처리할 때 아래 모두를 처리하는 방법은 알겠는데요. /*
중간에 끼어있는 부분의 주석처리는 어떻게 하나요? 줄마다 # 붙이는 방법 말고 드래그 해놓고 한번에 여러줄을 주석처리하는 방법을 알고 싶습니다.
#5
var : 이탈20(-1),돌파60(-1);
이평20 = Ema(C,20);
if Crossdown(c,이평20) Then
이탈20 = 0;
if 이탈20 >= 0 Then
이탈20 = 이탈20 +1;
이평60 = Ema(C,60);
if CrossUp(c,이평60) Then
돌파60 = 0;
if 돌파60 >= 0 Then
돌파60 = 돌파60 +1;
if 이탈20 > 돌파60 then # 이탈20 있고나서 돌파60이 있었다. 이게 맞는건가요?
# 여러종류의 위치를 찾아서 저장해놓고 쓰려고 하는데요.
모두 위와같은 방법으로 하면 되나요? 혹시 더 간단한 방법은 없나요?
# 위의 질문들과 비슷한 내용입니다. 예를 들어서 해보면 이해하기가 쉬울 거 같아서요.
#1 20이평 > 60이평이다.
#2 20캔들내 50캔들중 최고점이 있었다.
#3 그리고 종가가 20이평 아래로 내려왔다.
#4 3이후 종가가 20이평 위로 올라가지 않았다.
#5 60이평을 이탈했다.