답변완료
안녕하세요. 수식 문의 드립니다.
안녕하세요..
키움 신호 수식인데요.. 종목검색으로 변환 부탁드립니다.
Mv = Macd(20, 60);
LL = Lowest(Mv, 기간);
HH = Highest(Mv, 기간);
NH = Valuewhen(1, Mv > HH(1),Mv);
NL = Valuewhen(1, Mv < LL(1), Mv);
DaL = Valuewhen(1,BarsSince(Mv<LL(1))==(기간 - k) ,HH);
DaH = Valuewhen(1,BarsSince(Mv>HH(1))==(기간 - k) ,NH);
Cnt = CountSince(Crossup(Mv,Dal),CrossUp(Mv,DaH));
Cnt && !Cnt(1) && Mv < 0
기간 5
k 3
매번 감사합니다.
2023-07-08
1361
글번호 170446
검색
답변완료
수치좀 부탁 드립니다.
* 매번 도움에 고맙 습니다.
* 아래 수식에서 수정 좀 요청 드립니다.
* <요청1> 두 수식을 합처 부탁 드립니다.
즉 색상이 변경 되는 첫봉에 수평선을 출력 하려 합니다.
<요청2> 수평선이 색상이 변경되면 끝나게 부탁 드립니다.
<요청3> 수평선 우측 끝부분에 가격 표시
## 윗부분 (hh) 수평선이 계속 되어 색상이 변경되도 출력 됨니다. : hh(60)
## 색상이 변경 되면 이전 수평선은 끝나고
## 다음 색상 첫봉 수평선 출력 되도록 부탁 드립니다.
## 색상 중간에 나오는 모든 수평선은 필요 없습니다. 첫봉의 수평선만 필요 합니다.
## 첫봉 최고가 최저가 가격을 수평선 우축에 출력좀 부탁 드립니다.
## <아래 수식>
Input: aa(5) , bb(15) ;
var1 = ma(c,aa) ;
var2 = ma(c,bb) ;
var : box(0);
if CrossUp(var1,var2) Then
{
box = Box_New(sDate,sTime,h,NextBarSdate,NextBarStime,l);
Box_SetColor(box,Red);
Box_SetFill(box,true);
Box_SetExtFill(box,true);
}
else
if CrossDown(var1,var2) Then
{
box = Box_New(sDate,sTime,h,NextBarSdate,NextBarStime,l);
Box_SetColor(box,Blue);
Box_SetFill(box,true);
Box_SetExtFill(box,true);
}
Else
Box_SetEnd(box,NextBarSdate,NextBarStime,l);
#############################################################
input: n(1), hh(60) ;
## 윗부분 (hh) 수평선이 계속 되어 색상이 변경되도 출력 됨니다. : hh(60)
## 색상이 변경 되면 이전 수평선은 끝나고 다음 색상 첫봉 수평선 출력 되도록 부탁 드립니다.
## 색상 중간에 나오는 모든 선은 필요 없습니다. 첫봉의 수평선만 필요 합니다.
## 첫봉 최고가 최저가 가격을 수평선 우축에 출력좀 부탁 드립니다.
var : dd1(0),cnt2(0);
Array : TL1[100](0),TL2[100](0),V1[100](0),V2[100](0),D1[100](0);
Array : TL3[100](0),TL4[100](0),V3[100](0),V4[100](0),D2[100](0);
if bdate != Bdate[1] Then
dd1 = dd1+1;
if CrossUp(var1, var2) Then
{
For cnt2 = 99 DownTo 1
{
TL1[cnt2] = TL1[cnt2-1];
TL2[cnt2] = TL2[cnt2-1];
V1[cnt2] = V1[cnt2-1];
V2[cnt2] = V2[cnt2-1];
D1[cnt2] = D1[cnt2-1];
}
V1[0] = H;
V2[0] = L;
D1[0] = Index;
TL1[0] = TL_new(sDate,sTime,V1[0],NextBarSdate,NextBarStime,V1[0]);
TL2[0] = TL_new(sDate,sTime,V2[0],NextBarSdate,NextBarStime,V2[0]);
TL_SetColor(TL1[0],Red);
TL_SetColor(TL2[0],Red);
}
Else
{
For cnt2 = 99 DownTo 0
{
if Index < D1[cnt2]+hh Then
{
TL_SetEnd(TL1[cnt2],sDate,sTime,V1[cnt2]);
TL_SetEnd(TL2[cnt2],sDate,sTime,V2[cnt2]);
}
}
}
if CrossDown(var1, var2) Then
{
For cnt2 = 99 DownTo 1
{
TL3[cnt2] = TL3[cnt2-1];
TL4[cnt2] = TL4[cnt2-1];
V3[cnt2] = V3[cnt2-1];
V4[cnt2] = V4[cnt2-1];
D2[cnt2] = D2[cnt2-1];
}
V3[0] = H;
V4[0] = L;
D2[0] = Index;
TL3[0] = TL_new(sDate,sTime,V3[0],NextBarSdate,NextBarStime,V3[0]);
TL4[0] = TL_new(sDate,sTime,V4[0],NextBarSdate,NextBarStime,V4[0]);
TL_SetColor(TL3[0],Blue);
TL_SetColor(TL4[0],Blue);
}
Else
{
For cnt2 = 99 DownTo 0
{
if Index < D2[cnt2]+hh Then
{
TL_SetEnd(TL3[cnt2],sDate,sTime,V3[cnt2]);
TL_SetEnd(TL4[cnt2],sDate,sTime,V4[cnt2]);
}
}
}
###########################################33
고맙습니다. 수고하십시요.
2023-07-10
1226
글번호 170444
지표
답변완료
문의드립니다
input : short1(0),long1(0),sig1(0);
input : shor(0),long(0),sig(0);
input : evPeriod(0),Per(0);
var : mav1(0),mav2(0),;
var : macdv1(0),macdv2(0),macds1(0),macds2(0);
var : evup(0),evdn(0);
macdv1 = macd(short1,long1);
macdv2 = macd(shor,long);
macds1 = Ema(macdv1,sig1);
macds2 = Ema(macdv2,sig);
evup = EnvelopeUp(evPeriod,Per);
evdn = EnvelopeDown(evPeriod,Per);
input : 원금(1000000),시작일(0),시작시간(0);
var : Tcond(False),수량(0) ;
if Tcond == true Then
if sDate == 시작일 and sTime >= 시작시간 Then
Tcond = true;
수량 = (원금+NetProfit)/NextBarOpen;
# 매수/매도청산
if CrossUp(macdv1,0) Then
{
Buy("b");
}
If macdv1 > 0 and macdv2 > 0 and CrossUp(macdv2,macds2) Then
{
Buy("b1");
}
# 매도/매수청산
If CrossDown(macdv1, 0) Then
{
ExitLong("bx");
}
if macdv1 > 0 Then
{
ExitLong("E",AtLimit,evup*0.00);
}
원금 100만원으로 복리식을 사용중입니다.
"b" 매수신호에서 다시 원금을 리셋하는 식을 만들고 싶습니다. 가능할까요?
예)
"b"매수 신호에 100만원 매수
"E"매도 신호에서 20만원의 수익
"b1"매수 신호에서 120만원 매수
"bx"매도
"b"매수 신호에 다시 100만원 매수
"E"매도 신호에서 -20만원의 손실
"b1"매수 신호에서 80만원 매수
"bx"매도
"b"매수 신호에서 100만원 매수
(반복)
감사합니다.
2023-07-08
1617
글번호 170442
시스템