답변완료
지표문의
1.안녕하세요
2가지 선을 만들구 싶어요.
첨부 그림보면
1번 추세선이 생기면 추세선 시작봉 저가선(흰선)
2번 추세선이 생기면 추세선 시작봉 고가선(흰선)
하나하고요.
두번째 선은 추세선이 생기면 추세선 시작과끝의 구간의 ,해당구간 선물지수고점,저점 파악해서 만드는 구간저점고점의1/2선(첨부그림 그린선),이선은 지수두 출력하게 좀 해주세요.
Input : short(12), long(26), signal(9),굵기(1);
Var : MACDV(0) , MACDS(0),T(0);
var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0);
var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0);
var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0);
var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0);
var : TL1(0),TL2(0);
MACDV = MACD(short, long);
MACDS = ema(MACDV,signal);
if crossup(MACDV,MACDS) Then
{
T = 1;
HIV = MACDV;
HID = sdate;
HIT = stime;
HIV1 = HIV[1];
HID1 = HID[1];
HIT1 = HIT[1];
HPV = L;
HPD = sdate;
HPT = stime;
HPV1 = HPV[1];
HPD1 = HPD[1];
HPT1 = HPT[1];
Condition1 = false;
}
if CrossDown(MACDV,MACDS) Then
{
T = -1;
LIV = MACDV;
LID = sdate;
LIT = stime;
LIV1 = LIV[1];
LID1 = LID[1];
LIT1 = LIT[1];
LPV = L;
LPD = sdate;
LPT = stime;
LPV1 = LPV[1];
LPD1 = LPD[1];
LPT1 = LPT[1];
Condition2 = false;
}
if T == 1 Then
{
if MACDV > HIV Then
{
HIV = MACDV;
HID = sdate;
HIT = stime;
}
if H > HPV Then
{
HPV = H;
HPD = sdate;
HPT = stime;
}
if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then
{
TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV);
TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV);
TL_SetColor(TL1,BLUE);
TL_SetColor(TL2,BLUE);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:예스트레이더dataSound1point.wav");
Condition1 = true;
}
if Condition1 == true then
{
if HPV > HPV1 and HIV < HIV1 then
{
TL_SetEnd(TL1,HPD,HPT,HPV);
TL_SetEnd(TL2,HID,HIT,HIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
if T == -1 Then
{
if MACDV < LIV Then
{
LIV = MACDV;
LID = sdate;
LIT = stime;
}
if L < LPV Then
{
LPV = L;
LPD = sdate;
LPT = stime;
}
if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then
{
TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV);
TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV);
TL_SetColor(TL1,RED);
TL_SetColor(TL2,RED);
TL_SetSize(TL1,굵기);
TL_SetSize(TL2,굵기);
PlaySound("C:예스트레이더dataSound1point.wav");
Condition2 = true;
}
if Condition2 == true then
{
if LPV < LPV1 and LIV > LIV1 then
{
TL_SetEnd(TL1,LPD,LPT,LPV);
TL_SetEnd(TL2,LID,LIT,LIV);
}
Else
{
TL_Delete(TL1);
TL_Delete(TL2);
}
}
}
plot1(MACDV);
plot2(MACDS);
PlotBaseLine1(0, "기준선1");
2. 그럼 즐거운 하루되세요.
2020-05-05
871
글번호 138569
지표
답변완료
문의드립니다
안녕하세요?
1.
아래수식의 표현모습이 바챠트같이 생겨 ,마지막봉이라 표현하겠습니다 그것의 고가와 저가의 가격을 그봉의 상단과하단에 표현하고싶습니다 수치의 위치와 크키도 조정할수있으면 좋겠습니다
2. 아래수식의 반대식이 존재할수 있다면 만들어주세요.
도움주셔서 감사합니다
input : len(40),len2(40);
var : o1(0),c1(0),h1(0),l1(0);
var : haclose(0),haopen(0),hahigh(0),halow(0);
var : o2(0),c2(0),h2(0),l2(0);
var : col(0);
o1=ema(open,len);
c1=ema(close,len);
h1=ema(high,len);
l1=ema(low,len);
if CurrentBar >= 1 then
{
haclose = (o1+h1+l1+c1)/4;
haopen = (haopen[1] + haclose[1]) / 2;
hahigh = max (h1, max(haopen,haclose));
halow = min (l1, min(haopen,haclose));
o2=ema(haopen, len2);
c2=ema(haclose, len2);
h2=ema(hahigh, len2);
l2=ema(halow, len2);
col = iff(o2>c2,red,GREEN);
PlotPaintBar(h2, l2, o2, c2,"hs",col);
}
2020-05-05
787
글번호 138567
강조
답변완료
수정 좀 부탁드립니다.
아래 수식은 타주기 분봉의 이평을 작은 분봉에 적용하는 수식인데요
수식을 적용할 경우 꾸불꾸불 지렁이 처럼 움직이는 선입니다.
이 선을 일목의 전환선과 기준선처럼 수평이동으로 수정하고 싶습니다.
예를 들어 60분으로 설정했을 경우 매 60분마다 해당 이평선의 시작가에서
60분동안 가격의 변화 없이 수평유지 되고 그다음 60분이 되면 해당 이평의 시작가로
가격이 이동되어 또 60분동안 수평유지 되는 형식입니다.
도움 부탁드립니다.
input : ntime(60),P1(5),P2(20);
var : S1(0),D1(0),TM(0),TF(0);
var : cnt(0),sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0);
Array : C1[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P2] > 0 then
{
sum1 = 0;
sum2 = 0;
for cnt = 0 to P2-1{
if cnt < P1 then
sum1 = sum1+C1[cnt];
if cnt < P2 then
sum2 = sum2+C1[cnt];
}
mav1 = sum1/P1;
mav2 = sum2/P2;
plot1(mav1);
plot2(mav2);
}
}
2020-05-04
942
글번호 138564
지표
답변완료
질문답글중에서 67257에 주신 수식을 실현하면 청산이 안되요..
국내 주식 kodex200 300분봉을 적용하였습니다.
분할매수 수식에서 일괄청산하는 식에
알려주신 4회 분할 청산 수식을 주어서 적용을 해보면 ... 매수만 되고 청산은 안되네요..
나름대로 원인을 찾아보려고 했지만 잘 모르겠어서 이렇게 도움을 요청합니다.
한번 차트에서 구현해주셔서 문제점을 해결 해주시면 감사하겠습니다.
아래 알려주신 수식 입니다.
input : n(200),하락퍼센트(0.95),하락퍼센트률(0.05);
input : p(20),MFI값(70), MFI값하락률(5);
input : 전일대비하락률(0.5);
input : 매매수(300),금액1(10),금액2(20),금액3(30),금액4(100),금액5(200),금액6(200),금액7(300),금액8(300);
var1 = highest(H,n);
var2 = mfi(P);
if stime < 143000 then
{
if MaxEntries < 매매수 and
c < var1*하락퍼센트 and
var2 < MFI값 and
c < o and
c <= c[1]*(100-전일대비하락률)/100 Then
buy("b1",OnClose,def,Floor(금액1*10000/c));
if MaxEntries < 매매수 and
c < var1*(하락퍼센트- 하락퍼센트률) and
var2 < (MFI값- MFI값하락률) and
c < o and
c <= c[1]*(99.4-전일대비하락률)/100 Then
buy("b2",OnClose,def,Floor(금액2*10000/c));
if MaxEntries < 매매수 and
c < var1*(하락퍼센트- 하락퍼센트률*2) and
var2 < (MFI값- MFI값하락률*2) and
c < o and
c <= c[1]*(100-전일대비하락률*2)/100 Then
buy("b3",OnClose,def,Floor(금액3*10000/c));
if MaxEntries < 매매수 and
c < var1*(하락퍼센트- 하락퍼센트률*3) and
var2 < (MFI값- MFI값하락률*3) and
c < o and
c <= c[1]*( 100-전일대비하락률*3)/100 Then
buy("b4",OnClose,def,Floor(금액4*10000/c));
if MaxEntries < 매매수 and
c < var1*(하락퍼센트- 하락퍼센트률*4) and
var2 < (MFI값- MFI값하락률*4) and
c < o and
c <= c[1]*( 100-전일대비하락률*4)/100 Then
buy("b5",OnClose,def,Floor(금액5*10000/c));
if MaxEntries < 매매수 and
c < var1*(하락퍼센트- 하락퍼센트률*5) and
var2 < (MFI값- MFI값하락률*5) and
c < o and
c <= c[1]*( 100-전일대비하락률*5)/100 Then
buy("b6",OnClose,def,Floor(금액6*10000/c));
if MaxEntries < 매매수 and
c < var1*(하락퍼센트- 하락퍼센트률*6) and
var2 < (MFI값- MFI값하락률*6) and
c < o and
c <= c[1]*( 100-전일대비하락률*6)/100 Then
buy("b7",OnClose,def,Floor(금액6*10000/c));
if MaxEntries < 매매수 and
c < var1*(하락퍼센트- 하락퍼센트률*7) and
var2 < (MFI값- MFI값하락률*7) and
c < o and
c <= c[1]*( 100-전일대비하락률*7)/100 Then
buy("b8",OnClose,def,Floor(금액6*10000/c));
}
if MarketPosition == 1 then
{
if CurrentContracts > CurrentContracts[1] Then
{
Condition1 = false;
Condition2 = false;
Condition3 = false;
Condition4 = false;
}
if CurrentContracts > CurrentContracts[1] Then
{
if LatestExitName(0) == "bx1" Then
Condition1 = true;
if LatestExitName(0) == "bx2" Then
Condition2 = true;
if LatestExitName(0) == "bx3" Then
Condition3 = true;
if LatestExitName(0) == "bx4" Then
Condition4 = true;
}
if Condition1 == true then
ExitLong("bx1",Atlimit,AvgEntryPrice*1.05,"",Floor(CurrentContracts*0.25),1);
if Condition2 == true then
ExitLong("bx2",Atlimit,AvgEntryPrice*1.10,"",Floor(CurrentContracts*0.50),1);
if Condition3 == true then
ExitLong("bx3",Atlimit,AvgEntryPrice*1.15,"",Floor(CurrentContracts*0.75),1);
if Condition4 == true then
ExitLong("bx4",Atlimit,AvgEntryPrice*1.20);
}
Else
{
Condition1 = false;
Condition2 = false;
Condition3 = false;
Condition4 = false;
}
2020-05-04
1010
글번호 138563
시스템