답변완료
수식 문의 드립니다.
안녕하세요.
볼린저밴드 지표에서 기본값인 "C" 종가를 "(H+L+C)/3" 으로 바꾸었습니다.
그리고, 당일만 "O" 시가를 적용해서 사용하고 싶습니다.
일봉, 주봉, 월봉 에서 사용하고자 합니다.
감사합니다.
====================================================================================
Input : Period(20), MultiD(2);
var : MAv(0),BBup(0),BBdn(0);
MAv = ma((H+L+C)/3,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
Plot1(MAv, "이평");
Plot2(BBup, "상단밴드");
Plot3(BBdn, "하단밴드");
====================================================================================
Input : Period(Numeric), D(Numeric);
BollBandUp = ma((H+L+C)/3, Period) + (D * std((H+L+C)/3, Period));
====================================================================================
Input : Period(Numeric), D(Numeric);
BollBandDown = ma((H+L+C)/3, Period) - (D * std((H+L+C)/3, Period));
====================================================================================
Input : Price(NumericSeries), Length(NumericSimple);
Var : SumSqrt(0), Avg(0), Counter(0);
If Length != 0 Then Begin
Avg = Ma(Price, Length);
SumSqrt = 0;
For Counter = 0 To Length - 1 Begin
SumSqrt = SumSqrt + (Price[Counter] - Avg) * (Price[Counter] - Avg);
End;
Std = SquareRoot(SumSqrt / Length);
End
Else
Std = 0;
2020-05-11
1658
글번호 138772
지표
답변완료
한가지 더 문의하겠습니다
올려주신 답변을 적용하여 문제를 해결할 수 있게 되었습니다. 감사합니다 ^^
다름이 아니고 분봉차트에 적용하는 수식에서 질문이 있는데요
IF h < ENTRY and NextBarSdate == sdate Then
BUY("ENTRY",ATSTOP,ENTRY);
IF MarketPosition == 1 and nextbarsdate!= sdate Then
EXITLONG("EL",ATMARKET);
이 부분입니다.
1, 우선 올려주신 답변에서는 h > entry 로 적어주셨는데, h < entry가 맞지 않나요?
2. 진입 수식에서 nextbarsdate == sdate 이 부분 해석을 entry조건을 충족하고나서 다음에 형성되는 캔들의 시작날짜와 entry조건을 충족하는 봉의 시작날짜가 충족하면 entry 값으로 진입
3. 청산 수식에서 포지션을 보유하고 나서 바로 다음에 형성되는 캔들의 시작날짜와 포지션을 보유하게 된 직후의 봉의 시작날짜가 다른 경우 다음봉 시가로 청산
즉, nextbarsdate와 sdate의 값이 달라지고 나서 바로 다음봉에 시가로 매도한다.
이렇게 해석하면 되나요?
2020-05-11
1754
글번호 138769
시스템
답변완료
시장가 청산로직 추가
Inputs: N(5), 손절틱(50), 익절틱(100);
var : SH(0),SL(0);
if SwingHigh(1,data2(H),N,N,N*2+1) != -1 Then
{
SH = data2(H[N]);
}
if SwingLow(1,data2(L),N,N,N*2+1) != -1 Then
{
SL = data2(L[N]);
}
#스윙하이 보다 높은값에서 롱진입
if
진입조건
SH < C[0] and //롱1
MarketPosition == 0
Then buy("추세롱1",AtStop,C[0]);
SetStopLoss(PriceScale*손절틱,PointStop);
SetStopProfittarget(PriceScale*익절틱,PointStop);
위 시스템수식은 차트2(상위분봉차트)에서 스윙하이값을 구하고,
차트1(하위분봉차트)에서 스윙하이보다 높은 값에서 롱진입을 하는 수식입니다.
위 수식에서는 정해진 익절틱, 손절틱에 도달할경우 청산하는 방식인데,
한가지 청산방식을 더하고 싶습니다.
<추가하고 싶은 시장가 청산로직>
롱 포지션을 가지고 있는 상태에서 차트2(상위분봉차트)에서 새로운 스윙하이값이 나오고
기존 롱진입의 '진입가격 + 익절틱*Pricescale' 의 값이 새로운 스윙하이 보다 클경우,
기존 롱진입을 시장가 청산하는 로직을 추가하고 싶습니다.
2020-05-11
1770
글번호 138767
시스템
답변완료
67408 재문의 드립니다.
정말 감사드립니다!
T1 = data2(stime); 이부분에서
'값을 대입할수 있는 변수나 배열의 요소 , 입력변수 배열의 요소가 와야합니다.'
이렇게 오류가 났습니다.
좀해보고 다시 문의드리는데 해결책좀 부탁드립니다^^
번거롭게해서 죄송합니다.
=================================================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : Re : 문의드립니다
> 안녕하세요
예스스탁입니다.
cond1은 단지 최근 0봉~40봉 사이에 한번이상 지정한 조건이 만족하면 true가 됩니다.
시간구간이 어떤식으로 지정되는지 모르겠습니다.
cond1이 true일때 시간을 지정해서 해당 시간이후에
만족할때만 cond2와 cond3이 true가 되게 수정해 드립니다.
var : 몸통상단1(0,Data2),Maxdata1(0,data2);
Var : 몸통상단2(0,Data3),Maxdata2(0,data3);
Var : 몸통상단3(0,Data4),Maxdata3(0,data4);
var : Arr(0,data1),cond1(false,data1),cond2(false,data1),cond3(false,data1);
몸통상단1 = Data2(max(C,O)); #data2몸통상단
Maxdata1 = data2(Highest(몸통상단1, 3)); #data2 몸통상단의 3개봉 최고값
몸통상단2 = Data3(max(C,O)); #data2몸통상단
Maxdata2 = Data3(Highest(몸통상단2, 4)); #data2 몸통상단의 5개봉 최고값
몸통상단3 = Data4(max(C,O)); #data2몸통상단
Maxdata3 = Data4(Highest(몸통상단3, 5)); #data2 몸통상단의 5개봉 최고값
cond1 = false;
For ARR = 0 TO 40
{
If data1(H) >= Maxdata1[arr] Then
{
cond1 = true;
T1 = data2(stime);
}
}
cond2 = false;
For ARR = 0 TO 50
{
If data2(H) >= Maxdata2[arr] and cond1 == true and data2(stime) >= T1 Then
cond2 = true;
}
cond3 = false;
For ARR = 0 TO 60
{
If data3(H) >= Maxdata3[arr] and cond1 == true and data2(stime) >= T1 Then
cond3 = true;
}
if cond1 == true && cond2 == true && cond3 == true then
buy();
2020-05-11
1607
글번호 138759
시스템
답변완료
수정부탁드립니다.
안녕하세요? 아래수식에서 진입식에서 매도갭상승봉틱수와 매수갭하락봉틱수는 변수에입력한대로 고정값으로 나와야하는데 다른상황이 생기네요.
에를들어,
매도갭상승봉틱수에 외부변수를 1틱으로넣었다고 가정하면, 갭상승한 1틱짜리 캔들 바로다음 진입봉이 충족하면 진입
매수갭하락봉틱수에 0틱으로넣었다고 가정하면, 갭하락한 도지 바로다음 진입봉 충족하면 진입.
이렇게 되었으면좋겠습니다.
주로 기준이되는 갭상승캔들은 도지를 사용하고싶고, 수정하려고 하였으나 잘안되네요...도움부탁드립니다.
input : 매도음봉틱수(10),매수양봉틱수(10);
input : 매도갭상승봉틱수(10),매수갭하락봉틱수(10);
input : 익절틱수(50),손절틱수(50),진입횟수(5);
var : entry(0);
if bdate != bdate[1] Then
entry = 0;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
if entry < 진입횟수 and
MarketPosition == 0 and
C <= O-PriceScale*매도음봉틱수 and
max(C[1],O[1]) >= min(C[1],O[1])+PriceScale*매도갭상승봉틱수 and O[1] > C[2] Then
sell();
if entry < 진입횟수 and
MarketPosition == 0 and
C >= O+PriceScale*매수양봉틱수 and
max(C[1],O[1]) >= min(C[1],O[1])+PriceScale*매도갭상승봉틱수 and O[1] < C[2] Then
buy();
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
***진입
갭상승한 캔들(몸통길이 외부변수) 바로다음 음봉에 매도(음봉진입봉의 몸통길이 외부변수, 단진입봉의 몸통길이는 입력한 변수값 이상일시 진입하게해주세요)
갭하락한 캔들(몸통길이 외부변수) 바로다음 양봉에 매수(양봉진입봉의 몸통길이 외부변수, 단진입봉의 몸통길이는 입력한 변수값 이상일시 진입하게해주세요)
***청산 및 재진입
익절/손절 (외부변수)
진입후 익절 또는 손절이 되기전까지 재진입 금지.
***매매횟수
하루매매횟수 (외부변수)
2020-05-11
1599
글번호 138755
시스템
답변완료
질문 올립니다.
안녕하세요. 늘 감사드립니다.
항셍의 경우, 아침 10:14에 일단 기준가 같은 것이 나오고, 10:15에 거래가 시작됩니다.
(오늘의 경우, 10:14 가격은 24350포인트. 개장 직후 잠깐 내려 갔다[24316포인트까지...] 원웨이로 300틱 이상 24700포인트까지 수직상승함...)
전체적으로 가격이 상승 추세일 상황이라면, 개장 직후에 아주 잠깐 가격이 내렸다가 올라가는 경우가 종종 있는데 ((아마도 HeadFake의 일종인 듯...))
그래서,
10:14 가격에서
아래로 30틱 내려 가면 매수,
위로 30틱 올라 가면 매도가 되는 시트를 부탁 드리고 싶습니다.
그래서 이 시트를 홍콩장 개장 전인, 가령 오전 10시 10분 정도에 켜 놓으면,
10:14분이 되면, 자동으로 10:14의 가격을 시스템이 읽어서,
거기서
30틱 아래 가격을 CrossUp하면 매수,
30틱 위 가격을 CrossDown하면 매도
하게 해 주는 시스템 식 부탁 드립니다.
감사합니다!
2020-05-11
1740
글번호 138747
시스템