답변완료
69949 수식 수정 부탁합니다.
안녕하세요~ 수식 감사합니다.
그런데, 시스템 적용해보니 첨부 그림과 같이 매수진입 후 위 간격식에 닿을 때 청산이 되어야 하는데, 청산이 안됩니다.
매도로 진입한 경우에도 아래 간격식에 닿으면 청산이 되어야합니다.
차트는 나스닥 1분봉 차트입니다.
수식 수정 부탁드립니다.
감사합니다.
================================================================
안녕하세요
예스스탁입니다.
input : tick(20);
var : sngMx(12000.00), sngDx(125.00);
var : v1(0),v2(0),v3(0),v4(0),v5(0);
var : v6(0),v7(0),v8(0),v9(0),v10(0);
var : v11(0),v12(0),v13(0),v14(0),v15(0);
var : v16(0),v17(0),v18(0),v19(0),v20(0);
v1 = sngMx;
v2 = sngMx - 1 * sngDx;
v3 = sngMx - 2 * sngDx;
v4 = sngMx - 3 * sngDx;
v5 = sngMx - 4 * sngDx;
v6 = sngMx - 5 * sngDx;
v7 = sngMx - 6 * sngDx;
v8 = sngMx - 7 * sngDx;
v9 = sngMx - 8 * sngDx;
v10 = sngMx - 9 * sngDx;
v11 = sngMx - 10 * sngDx;
v12 = sngMx - 11 * sngDx;
v13 = sngMx - 12 * sngDx;
v14 = sngMx - 13 * sngDx;
v15 = sngMx - 14 * sngDx;
v16 = sngMx - 15 * sngDx;
v17 = sngMx - 16 * sngDx;
v18 = sngMx - 17 * sngDx;
v19 = sngMx - 18 * sngDx;
v20 = sngMx - 19 * sngDx;
var1 = 0;
if h < v1+PriceScale*tick Then var1 = v1;
if h < v2+PriceScale*tick Then var1 = v2;
if h < v3+PriceScale*tick Then var1 = v3;
if h < v4+PriceScale*tick Then var1 = v4;
if h < v5+PriceScale*tick Then var1 = v5;
if h < v6+PriceScale*tick Then var1 = v6;
if h < v7+PriceScale*tick Then var1 = v7;
if h < v8+PriceScale*tick Then var1 = v8;
if h < v9+PriceScale*tick Then var1 = v9;
if h < v10+PriceScale*tick Then var1 = v10;
if h < v11+PriceScale*tick Then var1 = v11;
if h < v12+PriceScale*tick Then var1 = v12;
if h < v13+PriceScale*tick Then var1 = v13;
if h < v14+PriceScale*tick Then var1 = v14;
if h < v15+PriceScale*tick Then var1 = v15;
if h < v16+PriceScale*tick Then var1 = v16;
if h < v17+PriceScale*tick Then var1 = v17;
if h < v18+PriceScale*tick Then var1 = v18;
if h < v19+PriceScale*tick Then var1 = v19;
if h < v20+PriceScale*tick Then var1 = v20;
var2 = 0;
if L > v20-PriceScale*Tick Then var2 = v20;
if L > v19-PriceScale*Tick Then var2 = v19;
if L > v18-PriceScale*Tick Then var2 = v18;
if L > v17-PriceScale*Tick Then var2 = v17;
if L > v16-PriceScale*Tick Then var2 = v16;
if L > v15-PriceScale*Tick Then var2 = v15;
if L > v14-PriceScale*Tick Then var2 = v14;
if L > v13-PriceScale*Tick Then var2 = v13;
if L > v12-PriceScale*Tick Then var2 = v12;
if L > v11-PriceScale*Tick Then var2 = v11;
if L > v10-PriceScale*Tick Then var2 = v10;
if L > v9-PriceScale*Tick Then var2 = v9;
if L > v8-PriceScale*Tick Then var2 = v8;
if L > v7-PriceScale*Tick Then var2 = v7;
if L > v6-PriceScale*Tick Then var2 = v6;
if L > v5-PriceScale*Tick Then var2 = v5;
if L > v4-PriceScale*Tick Then var2 = v4;
if L > v3-PriceScale*Tick Then var2 = v3;
if L > v2-PriceScale*Tick Then var2 = v2;
if L > v1-PriceScale*Tick Then var2 = v1;
if MarketPosition <= 0 and var1 > 0 Then
{
Buy("b",AtStop,var1+PriceScale*tick);
}
if MarketPosition >= 0 and Var2 > 0 Then
{
Sell("s",AtStop,Var2-PriceScale*tick);
}
if MarketPosition == 1 Then
{
ExitLong("bp",AtLimit,var1[BarsSinceEntry+1]+sngDx);
ExitLong("bl",AtStop,var1[BarsSinceEntry+1]);
}
if MarketPosition == -1 Then
{
ExitShort("sp",AtLimit,var2[BarsSinceEntry+1]-sngDx);
ExitShort("sl",AtStop,var2[BarsSinceEntry+1]);
}
즐거운 하루되세요
========================================================================
> 모센 님이 쓴 글입니다.
> 제목 : 시스템 수식 문의드립니다.
> 안녕하세요, 수고 많으십니다. 항상 감사드리며 수식 문의드립니다.
아래 간격선 수식에서 매수, 매도조건을 설정하고 싶습니다.
매수진입 : 간격선 + 20틱에 닿을때 실시간 매수진입
매수청산 : 간격선에 닿을 때 실시간 매수청산
매도진입 : 간격선 - 20틱에 닿을때 실시간 매도진입
매도청산 : 간격선에 닿을 때 실시간 매도청산
input : cnt(20) // 20틱을 외부변수로 조정할 수 있도록 부탁합니다.
var : sngMx(12000.00), sngDx(125.00); // 500틱 간격선 중 고점 / sngDx: 500틱 간격(125pt)
v1 = sngMx;
v2 = sngMx - sngDx;
v3 = sngMx - 2 * sngDx;
v4 = sngMx - 3 * sngDx;
v5 = sngMx - 4 * sngDx;
v6 = sngMx - 5 * sngDx;
v7 = sngMx - 6 * sngDx;
v8 = sngMx - 7 * sngDx;
v9 = sngMx - 8 * sngDx;
v10 = sngMx - 9 * sngDx;
v11 = sngMx - 10 * sngDx;
v12 = sngMx - 11 * sngDx;
v13 = sngMx - 12 * sngDx;
v14 = sngMx - 13 * sngDx;
v15 = sngMx - 14 * sngDx;
v16 = sngMx - 15 * sngDx;
v17 = sngMx - 16 * sngDx;
v18 = sngMx - 17 * sngDx;
v19 = sngMx - 18 * sngDx;
v20 = sngMx - 19 * sngDx;
2020-11-17
666
글번호 143974
시스템
답변완료
문의드립니다
1)틱수를 가지고 피보나치처럼 표현을 해볼까 하는데가능할지 .. 전일종가기준으로해서 + 500틱을고점으로잡고-500틱을저점으로 잡고해서 +250틱이중심선이되고-250틱이중심선이되고
+중심선으로표현 -중심선으로표현 해서 50프로만 수평선으로위.아래두개선이 나오게 하고십습니다 ,
var1 = dayhigh;
var2 = daylow;
var3 = var1-var2;
plot1(var1-var3*0.236);
plot2(var1-var3*0.50);
plot3(var1-var3*0.764);
위수식을 응용하여 가능하다면 부탁드리겠습니다~항상감사드립니다
2)if C >= dayopen+PriceScale*1 Then
PlotPaintBar(H,L,"강조",RED);
if C <= dayopen-PriceScale*1 Then
PlotPaintBar(H,L,"강조",LMAGENTA);
시가기준강조를 지표식으로 수정부탁합니다~~
3)Input:length(5);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""),
TL_Val1(0),TL_Val2(0);
Var:TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0),TL20(0);
Var:TL21(0),TL22(0),TL23(0),TL24(0),TL25(0),TL26(0),TL27(0),TL28(0),TL29(0),TL30(0),mav(0),T(0);
Array:고점[10,2](0),저점[10,2](0);
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then
{ If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
Text_Delete(Text1);
If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1]and 저점[2,1][1] < 저점[1,1][1] Then
{
TL_Delete(TL2);
TL_Delete(TL3);
}
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL2 = TL_New(sDate[eBar+1],sTime[eBar+1],고점[1,1]+ PriceScale*1,sDate[eBar],sTime[eBar],고점[1,1]+PriceScale*1);
TL3 = TL_New(sDate[eBar+1],sTime[eBar+1],고점[1,1]+ PriceScale*40,sDate[eBar],sTime[eBar],고점[1,1]+PriceScale*40);
TL_SetExtRight(Tl2,true);
TL_SetColor(Tl2,CYAN);
TL_SetSize(TL2,2);
TL_SetExtRight(Tl3,true);
TL_SetColor(Tl3,CYAN);
TL_SetSize(TL3,2);
TL_SetColor(TL1,BLACK);
TL_SetSize(TL1,0);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] Then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
Text_Delete(Text1);
If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then
{
TL_Delete(TL2);
TL_Delete(TL3);
}
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL2 = TL_New(sDate[eBar+1],sTime[eBar+1],저점[1,1]- PriceScale*1,sDate[eBar],sTime[eBar],저점[1,1]-PriceScale*1);
TL3 = TL_New(sDate[eBar+1],sTime[eBar+1],저점[1,1]- PriceScale*40,sDate[eBar],sTime[eBar],저점[1,1]-PriceScale*40);
TL_SetExtRight(Tl2,true);
TL_SetColor(Tl2,RED);
TL_SetSize(TL2,2);
TL_SetExtRight(Tl3,true);
TL_SetColor(Tl3,RED);
TL_SetSize(TL3,2);
TL_SetColor(TL1,BLACK);
TL_SetSize(TL1,0);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
}
}
}
mav = ma(C,20);
지그재그고점과저점을찍을때+40틱씩위아래로 나타나는데 문재는 고점과저점을 조금이라도 돌파하면 거기서추가한만큼 다시+-40틱씩이추가되니까 어려움이 있습니다~~(예를들어 가격이계속상승하여서 40틱수평선을 1틱2틱10틱30틱 즉돌파한틱수가40틱미만이라면 첫번째 수평선은변하지않고계속유지되게끔 그러니까첫번째수평선으로부터 80틱이상이되어야 변하게끔~~80틱미만이라면 첫번쨰수평선은 계속유지되는거죠, 수정부탁드립니다~`항상감사드립니다
2020-11-17
626
글번호 143956
지표