답변완료
수식 수정 부탁드립니다.
//★원웨이 예고 신호_22
INPUT : 비차익비중(10), 외인선물비중(20), 외인코스피비중(15);
INPUT : 개인옵션비중(15), 호가잔량비중(40), 미결가중치부여1(1);
INPUT : 원웨이점수(50);
var : 비차익_배점계수(0), 외인선물_배점계수(0), 외인코피_배점계수(0);
var : 개인옵션_배점계수(0), 호가잔량_배점계수(0);
var : 비차익(0), 외인선물(0), 외인코피(0), 개인옵션(0), 호가잔량(0);
var : 미결증감(0), 미결가중치(0);
비차익 = data2(C);
외인선물 = data3(C);
외인코피 = data4(C);
개인옵션 = data5(C);
호가잔량 = (bids-asks);
미결증감 = dayoi-dayOi(1);
비차익_배점계수 = 150000 / 비차익비중; // 억단위로 환산
외인선물_배점계수 = 4000 / 외인선물비중;
외인코피_배점계수 = 2500 / 외인코스피비중;
개인옵션_배점계수 = 40 / 개인옵션비중;
호가잔량_배점계수 = 8000 / 호가잔량비중;
//--미결은 전체 비중에 포함하지 않고 가중치만 부여
If 미결증감 > 0 and 미결가중치부여1 == 1 then
미결가중치 = 1 + ((미결증감 / 400) / 100); // 8000개일 경우 20%
else 미결가중치 = 1;
//*******************************
//--------점수 계산
var : 비차익점수(0), 외인선물점수(0), 외인코피점수(0);
var : 개인옵션점수(0), 호가잔량점수(0), 점수(0);
비차익점수 = 비차익 / 비차익_배점계수;
외인선물점수 = 외인선물 / 외인선물_배점계수;
외인코피점수 = 외인코피 / 외인코피_배점계수;
개인옵션점수 = - 개인옵션 / 개인옵션_배점계수;
호가잔량점수 = 호가잔량 / 호가잔량_배점계수;
//*******************점수의 상하한 제한*******************
//장의 방향을 판단하거나 원웨이 여부를 판단할때
//5개 항목이 골고루 동일 방향일때
//신뢰도가 높다고 할수 있는데
//특정 항목이 예외저으로 과다하게 금등락할 경우
//그 항목 때문에 지표가 왜곡될 수 있다.
//그래서 각항목 점수의 상하한을 제한하는 것이지만
//필요할 경우 여기의 전부 또는 일부항목을 지우거나
//주석처리 할수 있다
//예를들면 호가잔량 만을 중시한다면
//호가잔량만 남기고 나머지 항목은 삭제 또는 주석처리
//input 문으로 전체를 선택 또는 전체를 제외할 수도 있다.
input : 점수상하한제한이면1(0);
if 점수상하한제한이면1 == 1 then {
if 비차익점수 > 비차익비중 then 비차익점수 = 비차익비중;
if 비차익점수 < - 비차익비중 then 비차익점수 = - 비차익비중;
if 외인선물점수 > 외인선물비중 then 외인선물점수 = 외인선물비중;
if 외인선물점수 < - 외인선물비중 then 외인선물점수 = - 외인선물비중;
if 외인코피점수 > 외인코스피비중 then 외인코피점수 = 외인코스피비중;
if 외인코피점수 < - 외인코스피비중 then 외인코피점수 = - 외인코스피비중;
if 개인옵션점수 > 개인옵션비중 then 개인옵션점수 = 개인옵션비중;
if 개인옵션점수 < - 개인옵션비중 then 개인옵션점수 = - 개인옵션비중;
if 호가잔량점수 > 호가잔량비중 then 호가잔량점수 = 호가잔량비중;
if 호가잔량점수 < - 호가잔량비중 then 호가잔량점수 = - 호가잔량비중;
}
//*************************************************
점수 = (비차익점수 + 외인선물점수 + 외인코피점수 +
개인옵션점수 + 호가잔량점수) * 미결가중치;
//**************점수 막대색*************************
var : 점수색(0), 주황색(0), 연주황(0), 연하늘(0), 진하늘(0);
주황색 = RGB(255, 120, 0);
연주황 = RGB(255, 194, 134);
연하늘 = RGB(0, 255, 255);
진하늘 = RGB(0, 176, 176);
if 점수 > 0 AND 점수 [1] < 점수[0] Then 점수색 = 주황색;
if 점수 > 0 AND 점수 [1] > 점수[0] Then 점수색 = 연주황;
if 점수 < 0 AND 점수 [1] < 점수[0] Then 점수색 = 연하늘;
if 점수 < 0 AND 점수 [1] > 점수[0] Then 점수색 = 진하늘;
//**************************************************
//***************이평선****************************
//이평선도 색이나 굵기를 지정할 수 있음
//강도가 변형으로 점차 굵어지거나
//색이 점점 진하게 할수 있지만
//이평선은 지표의 속성에서 수정하는 것을 권장함
//지표내에서 색과 굵기를 지정하게 되면
//지표의 속성에서는 수정이 아니됨
input : 소이평봉수(5), 중이평봉수(20),대이평봉수(60);
var : 소이평값(0), 중이평값(0), 대이평값(0);
var : 소이평(0), 중이평(0), 대이평(0);
if dayindex+1 < 소이평봉수 then 소이평값 = dayindex+1;
if dayindex+1 < 중이평봉수 then 중이평값 = dayindex+1;
if dayindex+1 < 대이평봉수 then 대이평값 = dayindex+1;
대이평 = ma(점수, 대이평값);
중이평 = ma(점수, 중이평값);
소이평 = ma(점수, 소이평값);
//*************************************************
input : 당일분만출력이면1(1), 횡보장표시폭(70);
//===========가두리(횡보)장 라인
Plot11(0, "가두리", RGB(255,255,172), def, 횡보장표시폭); //노란색 일자 그래프
//if 당일분만출력이면1 == 1 then {
// if CurrentDate == sdate then {
// Plot12(점수, "점수막대", 점수색);
// if 점수 >= 원웨이점수 then Plot21( 원웨이점수, "상방원웨이선");
// if 점수 <= -원웨이점수 then Plot22(-원웨이점수, "하방원웨이선");
// plot41(소이평, "소이평");
// plot42(중이평, "중이평");
// plot43(대이평, "대이평");
// }
//}
//else {
Plot12(점수, "점수막대", 점수색);
if 점수 >= 원웨이점수 then Plot21( 원웨이점수, "상방원웨이선");
if 점수 <= -원웨이점수 then Plot22(-원웨이점수, "하방원웨이선");
plot41(소이평, "소이평");
plot42(중이평, "중이평");
plot43(대이평, "대이평");
// }
Plot51(0,"0선");
/*
//--- 아래는 검증용
Plot81(비차익점수, "비차익점수");
Plot82(외인선물점수, "외인선물점수");
Plot83(외인코피점수, "외인코피점수");
Plot84(개인옵션점수, "개인옵션점수");
Plot85(호가잔량점수, "호가잔량점수");
Plot86(미결가중치, "미결가중치");
Plot87(점수, "점수");
/*
//★원웨이 예고 신호
var : 비차익(0), 외인선물(0), 외인코피(0), 개인옵션(0), 호가잔량(0);
비차익 = data2(C);
외인선물 = data3(C);
외인코피 = data4(C);
개인옵션 = data5(C);
호가잔량 = (bids-asks);
//--------점수 계산
var : 비차익점수(0), 외인선물점수(0), 외인코피점수(0);
var : 개인옵션점수(0), 호가잔량점수(0), 점수(0);
비차익점수 = 비차익 / 15000; // 백만원 단위를 억으로 환산
외인선물점수 = 외인선물 / 133;
외인코피점수 = 외인코피 / 166;
개인옵션점수 = - 개인옵션 / 2.7;
호가잔량점수 = 호가잔량 / 266;
점수 = 비차익점수 + 외인선물점수 + 외인코피점수 +
개인옵션점수 + 호가잔량점수;
//---지표의 출력
Plot1(점수, "점수막대");
if 점수 >= 45 then Plot21( 45, "점수상단");
if 점수 <= -45 then Plot22(-45, "점수하단");
위 수식에서 소이평과 중이평 대이평 상승일때 빨간색 하락일때 파란색으로 나오게 수정 부탁드립니다.
2024-08-01
1160
글번호 182132
지표
답변완료
안녕하세요
안녕하세요
항상 도움주셔서 감사드립니다.
아래의 지표를 예스랭귀지로 변환 부탁드릴 수 있을까요?
더운 날씨에 건강 유의하시고 좋은 하루 되세요!
study(title="VQ0_IO")
//---parameters
PriceSmoothing = input(15, title="Price Smoothing")
Filter = input(5, title="Filter")
cHigh = wma(high,PriceSmoothing)
cLow = wma(low,PriceSmoothing)
cOpen = wma(open,PriceSmoothing)
cClose = wma(close,PriceSmoothing)
pClose = cClose[1]
trueRange = max(cHigh,cClose) - min(cLow,pClose)
rrange = cHigh-cLow
vqi=0.0
vqi := (rrange!=0 and trueRange!=0) ? (((cClose-pClose)/trueRange + (cClose-cOpen)/rrange)*0.5) : 0 //vqi[1]
vqi_abs = abs(vqi)*(cClose-pClose+cClose-cOpen)*0.5
//sumVqi = vqi_abs //v1.0
sumVqi = (abs(vqi_abs))>1 ? vqi_abs : ( (abs(vqi_abs)*10)>1 ? vqi_abs*10 : vqi_abs )
vq0_th = input(0.002, title="Threshold")
vq0_mid = 0
secolor= (sumVqi>(vq0_mid+vq0_th)) ? lime : ((sumVqi<(vq0_mid-vq0_th)) ? fuchsia : blue)
plot(sumVqi, color=secolor, title="VQI",linewidth=2)
hline(0)
2024-08-01
1179
글번호 182131
지표
답변완료
검색식 부탁합니다.
다음은 볼린저밴드가 축소상태에서 확장하기 초입의 상태를 알려주는 신호인데요
이것을 검색식으로 만들고 싶습니다. 부탁드립니다.
A1=(C-BBandsDown(20,2))/(BBandsUp(20,2)-BBandsDown(20,2))*100;
A2=((C+O)/2-BBandsDown(20,2))/(BBandsUp(20,2)-BBandsDown(20,2))*100;
A3=(BBandsUp(20,2)-BBandsDown(20,2))/BBandsC(20,2)*100;
A4=A2>50 && A2<=100;
A5=sum(A4,7)==7;
A6=A3<=20;
A7=sum(A6,7)==7;
A7(1) && A5(1) && crossup(A1,100))
2024-08-01
927
글번호 182130
종목검색
답변완료
안녕하세요 종목검색문의 부탁드립니다^^
안녕하세요 언제나 고생이 많으십니다 ㅜㅜ
아래수식을 제가 키움에서 쓰던건데 예스트레이더 수식으로 변환하고 싶습니다
잘부탁드리겠습니다 ㅜㅜ
A1 = valuewhen(1, crossup((highest(high,기간3)+lowest(low,기간3))/2, (highest(high,기간4)+lowest(low,기간4))/2), C);
A2 = valuewhen(1, crossup((highest(high,기간1)+lowest(low,기간1))/2, (highest(high,기간2)+lowest(low,기간2))/2), C);
A3 = valuewhen(1,crossdown(c, sar(af,maxaf)), h);
A4 = valuewhen(1,crossdown(c, sar(af2,maxaf2)), h);
B = (A1 <=C) + (A2 <=C) + (A3 <=C) + (A4 <=C);
B == 4
2024-08-01
770
글번호 182128
종목검색
답변완료
프리장 써머타임/비써머타임에 따른 거래시간 변동 적용
안녕하세요. 수식 문의드립니다.
미국 정규장 이전의 프리장동안만 매매를 하고 싶은데, 써머타임 적용 유무에 따라 시작/종료 시간에 변동을 주고 싶습니다.
커뮤니티에 있는 것들을 보면서 수식을 만들었는데, 이렇게 돌리면 종료시간에 청산을 하지 않고, 다음날까지 넘어가버립니다.
다음날까지 넘어가지 않고, 종가청산은 미국 정규시장 시작시간 전에 실행하고 싶습니다.
전략 예시는 시가 대비 50pt 변동시 그 방향으로 진입하는 간단한 사례를 넣어놓았습니다.
감사합니다.
///////////////////////////////////////////////////////////////////////////////////
#07:00 시가 대비 ±50pt 초과진행시 진입
#써머타임 (당일 07:00 ~ 22:30)
#비써머타임 (당일 08:00 ~ 23:30)
var : Summer(False);
var : S1(0),S2(0),E1(0),E2(0),cnt(0),ST(0),ET(0);
var : Tcond(false);
if sdate != sdate[1] Then
{
S1 = Floor(sdate/10000)*10000+0300;
E1 = Floor(sdate/10000)*10000+1100;
var1 = 0;
var2 = 0;
for cnt = 1 to 31
{
if DayOfWeek(S1+cnt) == 0 Then
{
var1 = var1+1;
if var1 == 2 then
{
S2 = S1+cnt;
}
}
if DayOfWeek(E1+cnt) == 0 and cnt <= 31 Then
{
var2 = var2+1;
if var2 == 1 then
{
E2 = E1+cnt;
}
}
}
Summer = sdate > S2 And sdate < E2;
if Summer == true then
{
ST = 70000;
ET = 223000;
}
Else
{
ST = 80000;
ET = 233000;
}
}
if (sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST) Then
Tcond = true;
if (sdate != sdate[1] and stime >= ET) or
(sdate == sdate[1] and stime >= ET and stime[1] < ET) Then
Tcond = False;
if sdate != sdate[1] Then
SetStopEndofday(ET);
if bdate != bdate[1] Then
SetStopEndofday(0);
if Tcond == true then
{
#진입로직
if H > DayOpen(0)+50 Then Buy("B",OnClose);
if L < DayOpen(0)-50 Then Sell("S",OnClose);
}
2024-08-01
718
글번호 182122
시스템
답변완료
문의드립니다
1
input : jawLength(13),jawOffset(8);
input : teethLength(8),teethOffset(5);
input : lipsLength(5),lipsOffset(3);
Input : 당일수익틱수(100),당일손실틱수(100);
var : hl2(0),jaw(0),teeth(0),lips(0);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0);
var : Tcond(false),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
hl2 = (h+l)/2;
jaw = 0;
if IsNaN(jaw[1]) == true Then
jaw = ma(hl2,jawLength);
Else
jaw = (jaw[1]*(jawLength-1) + hl2)/jawLength;
teeth = 0;
if IsNaN(teeth[1]) == true Then
teeth = ma(hl2,teethLength);
Else
teeth = (teeth[1]*(teethLength-1) + hl2)/teethLength;
lips = 0;
if IsNaN(lips[1]) == true Then
lips = ma(hl2,lipsLength);
Else
lips = (lips[1]*(lipsLength-1) + hl2)/lipsLength;
Condition1 = jaw[jawOffset] > teeth[teethOffset] and teeth[teethOffset] > lips[lipsOffset];
Condition2 = jaw[jawOffset] < teeth[teethOffset] and teeth[teethOffset] < lips[lipsOffset];
if Xcond == true then
{
if Condition1 == true and Condition1[1] == False Then
Buy();
if Condition2 == true and Condition2[1] == False Then
Sell();
}
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
2
input : jawLength(13),jawOffset(8);
input : teethLength(8),teethOffset(5);
input : lipsLength(5),lipsOffset(3);
Input : 당일수익틱수(100),당일손실틱수(100);
var : hl2(0),jaw(0),teeth(0),lips(0);
Var : N1(0),dayPl(0),당일수익(0),당일손실(0);
var : Xcond(false);
당일수익 = PriceScale*당일수익틱수;
당일손실 = PriceScale*당일손실틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 or daypl <= -당일손실 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dbl",1) == true or
IsExitName("dsp",1) == true or IsExitName("dsl",1) == true) then
Xcond = true;
}
hl2 = (h+l)/2;
jaw = 0;
if IsNaN(jaw[1]) == true Then
jaw = ma(hl2,jawLength);
Else
jaw = (jaw[1]*(jawLength-1) + hl2)/jawLength;
teeth = 0;
if IsNaN(teeth[1]) == true Then
teeth = ma(hl2,teethLength);
Else
teeth = (teeth[1]*(teethLength-1) + hl2)/teethLength;
lips = 0;
if IsNaN(lips[1]) == true Then
lips = ma(hl2,lipsLength);
Else
lips = (lips[1]*(lipsLength-1) + hl2)/lipsLength;
if Xcond == true then
{
if CrossUp(lips[lipsOffset],teeth[teethOffset]) Then
Buy();
if CrossDown(lips[lipsOffset],teeth[teethOffset]) Then
Sell();
}
if MarketPosition == 1 then
{
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts));
}
if MarketPosition == -1 then{
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts));
}
수고 많으십니다
문의드릴 내용은 위 수식은
88382번 문의 내용에 대해 작성해 주신 수식인데요
적용해보니 거래가 발생하지 않아
한번 더 검토 부탁드립니다
항상 감사드립니다
2024-08-01
645
글번호 182117
시스템
답변완료
수정부탁합니다. 추세선이 이어져야 하는데 끊어져요.
var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0);
var : hd(0),ht(0),hh(0),ld(0),lt(0),ll(0);
Array : SHD[5](0),SHT[5](0),SHV[5](0);
Array : SLD[5](0),SLT[5](0),SLV[5](0);
var : SHL(0),SLH(0);
if h <= h[1] && h[1] > h[2] then
{
hd = sDate[1];
ht = sTime[1];
hh = H[1];
SHL = L[1];
T = 1;
}
Else
{
if T == 1 and h > hh then
T = 0;
if T == 1 and L < SHL Then
{
T=2;
SHD[0] = hd;
SHT[0] = ht;
SHV[0] = hh;
if SLV[0] > 0 Then
{
TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]);
}
}
}
// 저점은 반대
if l >= l[1] && l[1] < l[2] then
{
ld = sDate[1];
lT = sTime[1];
ll = L[1];
SLH = H[1];
T = -1;
}
Else
{
if T == -1 and l < ll then
T = 0;
if T == -1 and h > Slh Then
{
T=-2;
SLD[0] = ld;
SLT[0] = lt;
SLV[0] = ll;
if SHV[0] > 0 Then
{
TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]);
}
}
}
2024-08-01
692
글번호 182112
지표