답변완료
수식전환
오랫만에 인사 드립니다 아래 수식을 에스언어로 변환 좀 부탁 드립니다^^
고점 M10=MA(C,기간1);
M240=MA(C,기간2);
HH=HIGHESTSINCE(1,CROSSUP(M10,M240),M10)
저점 M10=MA(C,기간1);
M240=MA(C,기간2);
LL=LOWESTSINCE(1,CROSSDOWN(M10,M240),M10)
중심 M10=MA(C,기간1);
M240=MA(C,기간2);
HH=HIGHESTSINCE(1,CROSSUP(M10,M240),M10);
LL=LOWESTSINCE(1,CROSSDOWN(M10,M240),M10);
(HH+LL)/2
이평1 MA(C,기간1)
이평2 MA(C,기간2)
//이상입니다 PLOT1 PLOT2 PLOT3 PLOT4 PLOT5 부탁드립니다
2024-06-09
637
글번호 180423
지표
답변완료
수식 문의드립니다
도움 많이 받고 있습니다. 감사합니다
이전 가상거래 추적을 해서 손실시에만 진입하는 필터를 적용하고자 합니다
아래 전략에 적용하는 방법이 있는지요?
제가 짜보려 아무리해도 거래가 초기 2~3개만 되어서....
감사합니다
input:swingPeriod(5);
Var:신고가(False), 신저가(False), j(0),jj(0),최종꼭지점(""),추세구간(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
var : TL1(0);
var : HighStop(0), LowStop(0);
​
# 추세 판정
신고가 = Highest(H,swingPeriod) == H ;
신저가 = Lowest (L,swingPeriod) == L ;
​
If 신고가 == True and 신저가 == True Then { // 신고가 신저가 동시 발생
If 최종꼭지점 == "저점" Then {
If 저[1,1] > L Then
추세구간 = -1;
Else
추세구간 = 1;
}
Else If 최종꼭지점 == "고점" Then {
If 고[1,1] < H Then
추세구간 = 1;
Else
추세구간 = -1;
}
}
Else If 신고가 == True Then //신고가 발생
추세구간 = 1;
Else If 신저가 == True Then //신저가 발생
추세구간 = -1;
​
# 상승추세 구간
If 추세구간 == 1 Then {
If 최종꼭지점 == "저점" Then {
For j = 3 DownTo 2 {
For jj = 1 To 4 {
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,gray);
}
Else If 고[1,1] < H Then { // 1번 고점보다 높은 고가 출현
고[1,1] = H;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
최종꼭지점 = "고점";
}
​
# 하락추세 구간
If 추세구간 == -1 Then {
If 최종꼭지점 == "고점" then {
For j = 3 DownTo 2 {
For jj = 1 To 4 {
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,gray);
}
Else If 저[1,1] > L then {
저[1,1] = L;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
}
​
# 직전 스윙고가, 스윙저가
if 추세구간 == 1 Then
HighStop = 고[2,1];
Else
HighStop = 고[1,1];
​
if 추세구간 == -1 Then
LowStop = 저[2,1];
Else
LowStop = 저[1,1];
​
# 손실필터
if TotalTrades > TotalTrades[1] Then
{
if PositionProfit(1) < 0 Then
trade = true;
Else
{
trade = False;
mp = 0;
}
}
if MarketPosition == 0 and trade == False Then
{
If mp == 0 and CrossUP(C, HighStop) Then
{
ep = c;
mp = 1;
If mp == 1 and CrossDown(C, LowStop ) Then
{
mp = 0;
xp = c;
if xp < ep Then
trade = true;
}
}
If mp == 0 and CrossDown(C, LowStop) Then
{
ep = c;
mp = -1;
If mp == -1 and CrossUp(C, HighStop ) Then
{
mp = 0;
xp = c;
if xp > ep Then
trade = true;
}
}
}
# 매매식
if MarketPosition <> 1 Then
Buy("B", AtStop, HighStop);
​
if MarketPosition <> -1 Then
Sell("S", AtStop, LowStop);
2024-06-09
624
글번호 180417
시스템