답변완료
수식 문의
다음 수식과 그림은, data2 의
'당일 기준' / '전봉 대비 증감'을 막대그래프로 그려본 것입니다.
그런데 이 수식의 문제가, 그림에서 처럼
시초가 첫봉을 시작으로 전봉의 차이를 비교하는 조건 때문에,
시초가 봉은 data2에 '그 값이 있음에도', 비교대상이 주어지지 않아
값이 안 나오게 됩니다. 그래서,
수식 문의 1 ::
시초가 첫봉만 그 비교값을 0으로 잡아서
첫봉에도 막대그래프가 표현되도록 수정하고 싶습니다.
수식 문의 2 ::
위 수정된 수식에 다음의 조건값을 추가하고 싶습니다.
plot1. 상승평균값 :: '당일기준' '상승막대만'의 '평균값'을 선으로 긋고
plot2. 그 마지막 값은 다음날까지 선으로 그어줍니다.
plot3. 하락평균값 :: '당일기준' '하락막대만'의 '평균값'을 선으로 긋고
plot4. 그 마지막 값을 다음날까지 선으로 그어줍니다.
5. 막대표시 1 :: '상승평균값' 보다 높은 상승막대는 rgb#.#.# 색을 칠합니다.
6. 막대표시 2 :: '하락평균값' 보다 높은 하락막대는 rgb#.#.# 색을 칠합니다.
수식 문의 2 ::
위의 5,6 조건을 강조식으로 구현하고 싶습니다.
== 다음 수식 ==
input : starttime(090000),endtime(154500);
var : Tcond(false,data2),idx(0,data2),VV(0,data2);
if data2((sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime)) then
{
Tcond = true;
idx = 0;
}
if data2((sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime)) then
{
Tcond = false;
VV = 0;
}
if Tcond == true then
{
idx = idx+1;
if idx == 1 Then
vv = 0;
Else
vv = data2(C-C[1]);
}
if VV > 0 Then
plot1(VV,"양수");
if VV < 0 Then
plot2(VV,"음수");
2022-01-10
1484
글번호 155255
지표
답변완료
안녕하세요 도움 부탁드립니다.
안녕하세요 도움 부탁드립니다.
아무리 제가 해보려 해봐도 마음대로 원하는게 나오지 않습니다 ㅠㅠ
아래의 수식은 수식지왕님의 range bar 차트입니다.
제가 구현하고 싶어하는 것은 아래와 같습니다.
1. Range bar 한개당 매매 한번만 실행
2. A라는 조건이 만족되면 매수 진입
3. 변수로 Range bar 한개당 매매 횟수를 설정
if OO != OO[1] Then
Entry = 0 ;
If entry == 0 and A then Buy();
라고 하거나
if bars == bars[BarsSinceEntry]+1 and A then Buy();
이렇게 하면 진입은 제대로 되는데, A라는 조건을 만족할때마다 자꾸 매수 시그널이 나갑니다.
range bar 하나당 한번만 진입하게는 어떻게 하나요?
참고로 If A then entry = 1;
이렇게 해서 진입을 막으려해도 되지가 않습니다 ㅠㅠ
=================
Input:tick(300);
Var:j(0),k(0),n(0),trend(0),tickVal(0),oneTick(0),count(0),remain(0);
Array:OO[1000](0),HH[1000](0),LL[1000](0),CC[1000](0),val[4](0);
#==============================================================================#
# Range Bar Chart 계산
#==============================================================================#
If Index == 0 Then
{
tickVal = tick * PriceScale;
oneTick = PriceScale;
OO[0] = O;
HH[0] = O;
LL[0] = O;
CC[0] = O;
}
count = 0;
val[0] = O;
val[3] = C;
If O > C Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If O < C Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] > O Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
Else If C[1] < O Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == 1 Then
{
val[1] = H;
val[2] = L;
If L < C Then trend = 1;
Else trend = -1;
}
Else If trend == -1 Then
{
val[1] = L;
val[2] = H;
If H > C Then trend = -1;
Else trend = 1;
}
For k = 0 To 3
{
If HH[0] > 0 && HH[0] < val[k] Then
{
While val[k] - LL[0] > tickVal
{
HH[0] = LL[0] + tickVal;
CC[0] = HH[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = HH[1] + oneTick;
LL[0] = OO[0];
}
If val[k] - LL[0] <= tickVal Then
{
HH[0] = val[k];
CC[0] = val[k];
}
}
Else If LL[0] > val[k] Then
{
While HH[0] - val[k] > tickVal
{
LL[0] = HH[0] - tickVal;
CC[0] = LL[0];
For j = 998 DownTo 0
{
OO[j+1] = OO[j];
HH[j+1] = HH[j];
LL[j+1] = LL[j];
CC[j+1] = CC[j];
}
count = count + 1;
OO[0] = LL[1] - oneTick;
HH[0] = OO[0];
}
If HH[0] - val[k] <= tickVal Then
{
LL[0] = val[k];
CC[0] = val[k];
}
}
Else
{
CC[0] = val[k];
}
}
2022-01-07
1135
글번호 155235
시스템
답변완료
문의드립니다.
먼저 좋은 답변 감사드립니다.
아래 답변처럼 해주셔서 기대한 대로 잘 되고 있습니다.
하나 더 부탁드리고 싶은 것은
이미 다음과같이 요청드렸는데 잘되지 않아 다시 올립니다.
아울러 1차와 2차 시기에는 1개만, 3차와 4차 시기에는 2개씩, 5차와 6차 시기에는 3개씩
이렇게 2단계 혹은 3단계,4,5단계 마다 진입량을 1개씩 늘려가며 진입할 수 있도록 변경 원합니다.
안녕하세요
예스스탁입니다.
각 방향의 첫진입은 "b"와 "s"입니다.
해당 신호들은 모두 무포지션이거나 반대포지션상태에서만 발생하게 되어 있어
해당 신호로 중복으로 추가진입은 되지 않습니다.
추가로 진입하는 신호는 모두 bb나 ss입니다.
식상으로 첫진입은 청산이 된것이 아니면 포지션 진행중에 또 발생할수가 없습니다.
차트에 식을 적용해 봐도 해당신호가 중복으로 나오지는 않습니다.
우선 첫진입을 지정한 가격 이상이나 이하에서
하향터치, 상향터치로 변경해 드리고 수량부분도 수정해 드립니다.
아내 내용으로 해결이 안되시면 02-3453-1060으로 전화주시기 바랍니다.
해당 부분은 정확한 원인을 파악하고 수정을 해봐야 할것 같습니다.
#상승구간의 마지막저점 저장
if Color == RED Then
{
var1 = 저점[2,1];
}
#하락구간의 마지막 고점 저장
if Color == BLUE Then
{
var2 = 고점[2,1];
}
if MarketPosition <= 0 Then
{
if color == BLUE and var1 > 0 and L > var1-PriceScale*50 Then
Buy("b",AtLimit,var1-PriceScale*50,1);
}
if MarketPosition == 1 Then
{
value1 = Floor(MaxEntries/2)+1;
Buy("bb",AtLimit,(var1[BarsSinceEntry]-PriceScale*50)-(PriceScale*50)*MaxEntries,1);
if T == -1 and 고점[1,1] > 0 Then
ExitLong("bx1",AtLimit,고점[1,1]+PriceScale*1);
if T == 1 and 고점[2,1] > 0 Then
ExitLong("bx2",AtLimit,고점[2,1]+PriceScale*1);
}
if MarketPosition >= 0 Then
{
if Color == RED and Var2 > 0 and H < var2+PriceScale*50 Then
Sell("s",AtLimit,Var2+PriceScale*50,1);
}
if MarketPosition == -1 Then1
{
value1 = Floor(MaxEntries/2)+1;
Sell("ss",AtLimit,(var2[BarsSinceEntry]+PriceScale*50)+(PriceScale*50)*MaxEntries,1);
if T == 1 and 저점[1,1] > 0 Then
ExitShort("sx1",AtLimit,저점[1,1]-PriceScale*1);
if T == -1 and 저점[2,1] > 0 Then
ExitShort("sx2",AtLimit,저점[2,1]-PriceScale*1);
}
즐거운 하루되세요
> 번성 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 좋은 답변 감사드립니다.
아래처럼
제가 질문드리고 답변주신대로 적용하였는데 2차,3차... 진입은 처음 캔들에 1개씩만 진입이 되지만
첫번째 1차 진입시(매수,매도)에는 여전히 +50틱이나 -50틱이 걸리는 모든 캔들에 진입이 되어 다량의 매수, 매도가 이루어지고 있어요.
1차 시기에도 2차,3차...처럼 1개만 진입되도록 수정 부탁드립니다.
아울러 1차와 2차 시기에는 1개만, 3차와 4차 시기에는 2개씩, 5차와 6차 시기에는 3개씩
이렇게 2단계 마다 진입량을 1개씩 늘려가며 진입할 수 있도록 변경 원합니다.
너무 좋은 답변에 다시한번 감사드립니다.
새해 복 많이 받으세요
2022-01-07
1228
글번호 155231
시스템
답변완료
부탁드립니다
아래수식은
최상단 이평선을 상향돌파하면 매수 신호
최하단 이평선을 하향돌파하면 매도 신호가
나오는 수식입니다
여기서
최상단 이평선을 하향돌파하면 매도 신호
최하단 이평선을 상향돌파하면 매수 신호가
나오도록 추가하고싶습니다
부탁드립니다
input : 그물망(60),간격(10),그물망수(41);
array : mav[100](0);
var : HH(0),LL(0),cnt(0);
For cnt = 0 to 그물망수
{
mav[cnt] = ma(c,그물망+간격*cnt);
}
if mav[그물망수] > 0 then
{
HH = mav[0];
LL = mav[0];
for cnt = 0 to 그물망수
{
if mav[cnt] > HH Then
HH = mav[cnt];
if mav[cnt] < LL Then
LL = mav[cnt];
}
}
if CrossUp(C,HH) Then
Buy();
if CrossDown(C,LL) Then
Sell();
2022-01-07
1220
글번호 155230
시스템