예스스탁
예스스탁 답변
2020-04-03 16:11:56
안녕하세요
예스스탁입니다.
Input :Length(7),Length1(9),Length2(10),Length3(14),simPeriod(7);
var : cnt(0),idx(0),RSIV(0),sim(0);
var : SigSum1(0),DownAmt1(0), UpAmt1(0), UpSum1(0), DownSum1(0), UpAvg1(0), DownAvg1(0);
var : PreUpAvg1(0), preDownAvg1(0),RSIV1(0);
var : SigSum2(0),DownAmt2(0), UpAmt2(0), UpSum2(0), DownSum2(0), UpAvg2(0), DownAvg2(0);
var : PreUpAvg2(0), preDownAvg2(0),RSIV2(0);
var : SigSum3(0),DownAmt3(0), UpAmt3(0), UpSum3(0), DownSum3(0), UpAvg3(0), DownAvg3(0);
var : PreUpAvg3(0), preDownAvg3(0),RSIV3(0);
Array : DC[100](0);
if Bdate != Bdate[1] Then
{
idx = idx + 1;
for cnt = 1 to 99
{
DC[cnt] = DC[cnt-1][1];
}
PreUpAvg1 = UpAvg1[1];
preDownAvg1 = DownAvg1[1];
PreUpAvg2 = UpAvg2[1];
preDownAvg2 = DownAvg2[1];
PreUpAvg3 = UpAvg3[1];
preDownAvg3 = DownAvg3[1];
}
DC[0] = C;
If idx == Length1+2 Then
{
UpSum1 = 0;
DownSum1 = 0;
For cnt = 0 To Length1 - 1
{
UpAmt1 = DC[cnt] - DC[cnt+1];
If UpAmt1 >= 0 Then
DownAmt1 = 0;
Else
{
DownAmt1 = -UpAmt1;
UpAmt1 = 0;
}
UpSum1 = UpSum1 + UpAmt1;
DownSum1 = DownSum1 + DownAmt1;
}
UpAvg1 = UpSum1/ Length1;
DownAvg1 = DownSum1/ Length1;
}
else If idx > Length1+2 Then
{
UpAmt1 = DC[0] - DC[1];
If UpAmt1 >= 0 Then
DownAmt1 = 0;
Else
{
DownAmt1 = -UpAmt1;
UpAmt1 = 0;
}
UpAvg1 = (PreUpAvg1 * (Length1 - 1) + UpAmt1) / Length1;
DownAvg1 = (preDownAvg1 * (Length1 - 1) + DownAmt1) / Length1;
}
If UpAvg1 + DownAvg1 <> 0 Then
RSIv1 = 100 * UpAvg1 / (UpAvg1 + DownAvg1);
Else
RSIv1 = 0;
If idx == Length2+2 Then
{
UpSum2 = 0;
DownSum2 = 0;
For cnt = 0 To Length2 - 1
{
UpAmt2 = DC[cnt] - DC[cnt+1];
If UpAmt2 >= 0 Then
DownAmt2 = 0;
Else
{
DownAmt2 = -UpAmt2;
UpAmt2 = 0;
}
UpSum2 = UpSum2 + UpAmt2;
DownSum2 = DownSum2 + DownAmt2;
}
UpAvg2 = UpSum2/ Length2;
DownAvg2 = DownSum2/ Length2;
}
else If idx > Length2+2 Then
{
UpAmt2 = DC[0] - DC[1];
If UpAmt2 >= 0 Then
DownAmt2 = 0;
Else
{
DownAmt2 = -UpAmt2;
UpAmt2 = 0;
}
UpAvg2 = (PreUpAvg2 * (Length2 - 1) + UpAmt2) / Length2;
DownAvg2 = (preDownAvg2 * (Length2 - 1) + DownAmt2) / Length2;
}
If UpAvg2 + DownAvg2 <> 0 Then
RSIv2 = 100 * UpAvg2 / (UpAvg2 + DownAvg2);
Else
RSIv2 = 0;
If idx == Length3+2 Then
{
UpSum3 = 0;
DownSum3 = 0;
For cnt = 0 To Length3 - 1
{
UpAmt3 = DC[cnt] - DC[cnt+1];
If UpAmt3 >= 0 Then
DownAmt3 = 0;
Else
{
DownAmt3 = -UpAmt3;
UpAmt3 = 0;
}
UpSum3 = UpSum3 + UpAmt3;
DownSum3 = DownSum3 + DownAmt3;
}
UpAvg3 = UpSum3/ Length3;
DownAvg3 = DownSum3/ Length3;
}
else If idx > Length3+2 Then
{
UpAmt3 = DC[0] - DC[1];
If UpAmt3 >= 0 Then
DownAmt3 = 0;
Else
{
DownAmt3 = -UpAmt3;
UpAmt3 = 0;
}
UpAvg3 = (PreUpAvg3 * (Length3 - 1) + UpAmt3) / Length3;
DownAvg3 = (preDownAvg3 * (Length3 - 1) + DownAmt3) / Length3;
}
If UpAvg3 + DownAvg3 <> 0 Then
RSIv3 = 100 * UpAvg3 / (UpAvg3 + DownAvg3);
Else
RSIv3 = 0;
RSIV = RSI(Length);
sim = Simrido(simPeriod);
if RSIV < 30 and
sim < 30 and
RSIV1 > RSIV3 and
RSIV2 >= 40 and RSIV2 <= 80 Then
buy();
if RSIV > 70 and
sim > 70 and
RSIV1 < RSIV3 and
RSIV2 >= 15 and RSIV2 <= 40 Then
sell();
즐거운 하루되세요
> 이형지 님이 쓴 글입니다.
> 제목 : RSI(일봉기준) 8일 기준 및 14일 기준 교집합 수식 부탁드려요~~
> 항상 감사드림니다.
수식 문의
1.해외선물 오일(나스닥)
2. 분봉 30분봉
3. 매수 조건 (교집합)
(1) RSI(7) < 30
(2) 심리도(7) < 30
(3) 일봉RSI(8) > 일봉RSI(14)
(4) 일봉RSI(10) 이 40-80 구간일때
4. 매도 조건 (교집합)
(1) RSI(7) > 70
(2) 심리도(7) > 70
(3) 일봉RSI(8) < 일봉RSI(14)
(4) 일봉RSI(10) 이 15-40 구간일때