답변완료
수식 부탁드립니다
수고하십니다.
아래 신호식에서 조건 완성되어 신호 발생 이후
첨부 그림처럼 3봉 경과 후에 신호 방향과 반대로 진행되는 경우에
반대 신호가 나오도록 신호식 추가 부탁 드립니다.
감사합니다. 수고하세요..
###############
input : SFactor(6.138),SPd(10),lenColoured(36),lenSlow(178),hideSuperTrend(true);
var : src(0),len(0),ma_coloured(0),ma_slow(0),clrdirection(0);
var : TL1(0),TL2(0),v1(0),v2(0);
src = close;
len = lenColoured;
ma_coloured = wma(2 * wma(src, len / 3) - wma(src, len), round(sqrt(len),0));
ma_slow = Ema(src,lenslow);
if ma_coloured > ma_coloured[13] then
clrdirection = 1;
else if ma_coloured < ma_coloured[13] then
clrdirection = -1;
else
clrdirection = clrdirection;
var : hl2(0),ATRV(0),SUp(0),SDn(0),STrendUp(0),STrendDown(0);
var : STrend(0),stbuy(0),stsell(0),long(False),short(False);
var : LongLineMarker(0),ShortLineMarker(0),tx(0);
hl2 = (H+L)/2;
ATRV = ATR(SPd);
SUp = hl2-(SFactor*atrv);
SDn = hl2+(SFactor*atrv);
if C[1] > STrendUp[1] Then
STrendUp = max(SUp,iff(isnan(STrendUp[1])==False,STrendUp[1],0));
else
STrendUp = SUp;
if close[1] < STrendDown[1] then
STrendDown = min(SDn,iff(isnan(STrendDown[1]) == False,STrendDown[1],0));
else
STrendDown = SDn;
if close > IFf(IsNan(STrendDown[1]) == False, STrendDown[1],0) then
STrend = 1;
else if close< IFf(IsNan(STrendUp[1]) == False, STrendUp[1],0) then
STrend = -1;
else
STrend = IFf(IsNan(STrend[1]) == False, STrend[1],1);
if clrdirection == 1 and STrend==1 then
stbuy = stbuy +1;
else
stbuy = 0;
if clrdirection ==-1 and STrend==-1 then
stsell = stsell+1 ;
else
stsell = 0;
If stbuy == 1 then
long = true;
else
long = False;
if stSell == 1 then
short = true;
else
short = False ;
if long then
{
LongLineMarker = low;
#tx = Text_New(sDate,sTime,LongLineMarker,"▲");
#Text_SetColor(tx,Green);
#Text_SetStyle(tx,2,0);
#v1 = LongLineMarker;
#TL1 = TL_New(sDate,sTime,v1,NextBarSdate,NextBarStime,v1);
#TL_SetColor(TL1,Green);
Buy();
}
Else
{
LongLineMarker = Nan;
#TL_SetEnd(TL1,sDate,sTime,v1);
}
if short then
{
ShortLineMarker = High;
#tx = Text_New(sDate,sTime,ShortLineMarker,"▼");
#Text_SetColor(tx,Red);
#Text_SetStyle(tx,2,1);
#v2 = ShortLineMarker;
#TL2 = TL_New(sDate,sTime,v2,NextBarSdate,NextBarStime,v2);
#TL_SetColor(TL2,Red);
Sell();
}
Else
{
ShortLineMarker = Nan;
#TL_SetEnd(TL2,sDate,sTime,V2);
}
2022-06-06
1208
글번호 159612
시스템
답변완료
시스템 수식 부탁드립니다.
Input:전환비율(5);
Var : j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분("");
var : TL1(0),Text1(0),ADXV1(0),tl2(0),tl3(0),tx2(0),tx3(0);
Array:고[10,4](0),저[10,4](0);
HH = H;
LL = L;
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1] * (1 + (전환비율/100)) < HH and hiBar == 0;
Condition2 = 고[1,1] * (1 - (전환비율/100)) > LL and loBar == 0;
처리구분 = "";
If Condition1 and Condition2 Then // 고점과 저점 조건 동시 만족
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
TL_SetEnd(TL2,저[1,3],저[1,4],고[1,1]* (1 - (전환비율/100)) );
Text_SetLocation(TX2,저[1,3],저[1,4],고[1,1]* (1 - (전환비율/100)) );
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,RED);
TL2 = TL_New(고[1,3],고[1,4],고[1,1]*(1-(전환비율/100)) ,NextBarSdate,NextBarStime,고[1,1]*(1-(전환비율/100)) );
TL_SetColor(TL2,Cyan);
TL_SetStyle(TL2,3);
Tx2 = Text_New(NextBarSdate,NextBarStime,고[1,1]*(1-(전환비율/100)),NumToStr(고[1,1]*(1-(전환비율/100)),2));
Text_SetColor(Tx2,Cyan);
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
TL_SetBegin(TL2,고[1,3],고[1,4],고[1,1]* (1-(전환비율/100)) );
Text_SetString(TX2,NumToStr(고[1,1]*(1-(전환비율/100)),2));
}
최종꼭지점 = "고점";
}
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
TL_SetEnd(TL3,고[1,3],고[1,4],저[1,1]* (1 + (전환비율/100)) );
Text_SetLocation(TX3,고[1,3],고[1,4],저[1,1]* (1 + (전환비율/100)) );
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
TL_SetSize(TL1,1);
TL_SetColor(TL1,BLUE);
TL3 = TL_New(저[1,3],저[1,4],저[1,1]* (1 + (전환비율/100)) ,NextBarSdate,NextBarStime,저[1,1]* (1 + (전환비율/100)) );
TL_SetColor(TL3,Magenta);
TL_SetStyle(TL3,3);
TX3 = Text_New(NextBarSdate,NextBarStime,저[1,1]*(1+(전환비율/100)),NumToStr(저[1,1]*(1+(전환비율/100)),2));
Text_SetColor(TX3,Magenta);
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
TL_SetBegin(TL3,저[1,3],저[1,4],저[1,1]* (1 + (전환비율/100)) );
Text_SetString(TX3,NumToStr(저[1,1]*(1+(전환비율/100)),2));
}
최종꼭지점 = "저점";
}
TL_SetEnd(TL2,NextBarSdate,NextBarStime,고[1,1]* (1 - (전환비율/100)) );
Text_SetLocation(TX2,NextBarSdate,NextBarStime,고[1,1]* (1 - (전환비율/100)) );
TL_SetEnd(TL3,NextBarSdate,NextBarStime,저[1,1]* (1 + (전환비율/100)) );
Text_SetLocation(TX3,NextBarSdate,NextBarStime,저[1,1]* (1 + (전환비율/100)) );
=================================================================================
만들어주신 지표 감사합니다..
이걸로 시스템 수식 부탁드립니다.
0. 매수조건 : 전환비율(분홍점선) 돌파시 매수, 파란점선 붕괴시 매도
- 종가봉 완성 전에 조건만족시 즉시 진입
1. 매매시간 09:01~익일 05:55
2. 1회 매매시 익절 21pt, 손절 33pt
3. 하루 수익 40pt 달성시 매매중지
2022-06-06
1266
글번호 159610
시스템