답변완료
추세선 동그라미 위치
input : Period(12),선두께(1),pt(0.35);
Var: 상승색(red), 하락색(blue);
Var:j(0),T(0),txx(0);
Var: date11(0),date12(0),time11(0),time12(0),TL1(0),TL(0),
date21(0),date22(0),time21(0),time22(0),
date31(0),date32(0),time31(0),time32(0),tx(0),tx1(0),tl4(0);
Array:HiVal[20](0),LoVal[20](0),HiBar[20](0),LoBar[20](0)/*,ZZ[20](0)*/;
Array:r[7](0),fr[7](0),TL2[7](0),TL3[7](0),TX2[7](0),TX3[7](0);
r[0] = 0;
r[1] = 2;
r[2] = 3.;
r[3] = -1;
r[4] = -2.;
r[5] = 1;
r[6] = 0.5;
For j = 0 To 19
{
HiBar[j] = HiBar[j] + 1;
LoBar[j] = LoBar[j] + 1;
}
if crossup(c,highest(H,Period)[1]) Then
T = 1;
if CrossDown(c,Lowest(L,Period)[1]) Then
T = -1;
If T == -1 Then
{
If T[1] != -1 Then
{
For j = 18 DownTo 0
{
LoVal[j+1] = LoVal[j];
LoBar[j+1] = LoBar[j];
//ZZ[j+1] = ZZ[j];
}
LoVal[0] = L;
LoBar[0] = 0;
//ZZ[0] = L;
date11 = date[HiBar[0]];
time11 = stime[HiBar[0]];
Value11 = HiVal[0];
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색);
Tx = Text_New(date11,time11,Value11,"●");
#동그라미 색상, 빨강
Text_SetColor(Tx,Blue);
Text_SetStyle(Tx,2,2);
Text_SetSize(tx,6);
//tx = Text_New(date11,time11,Value11,NumToStr(value11,2)+NewLine+NumToStr(value11,2)+NewLine);
//Text_SetStyle(tx,2,1);
date21 = date[HiBar[0]];
time21 = stime[HiBar[0]];
date22 = date[0];
time22 = stime[0];
for j = 0 to 6
{
fr[j] = LoVal[1] + ((HiVal[0] - LoVal[1]) * r[j]);
}
#TL2[1] = TL_New(date21,time21,fr[1],date22,time22,fr[1]);
#TL_SetColor(TL2[1],RED);
#TL_SetStyle(TL2[1], 3);
#TL2[2] = TL_New(date21,time21,fr[2],date22,time22,fr[2]);
#TL_SetColor(TL2[2],RED);
#TL_SetSize(TL2[2],1);
#TX2[2] = Text_New(date22,time22,fr[2],NumToStr(fr[2],2));
#Text_SetColor(Tx2[2],BWHITE);
#Text_SetStyle(TX2[2],1,1);
#TL2[3] = TL_New(date21,time21,fr[3],date22,time22,fr[3]);
#TL_SetColor(TL2[3],RED);
#TL_SetStyle(TL2[3], 3);
#TL2[4] = TL_New(date21,time21,fr[4],date22,time22,fr[4]);
#TL_SetColor(TL2[4],RED);
#TL_SetSize(TL2[4],1);
#TX2[4] = Text_New(date22,time22,fr[4],NumToStr(fr[4],2));
#Text_SetColor(Tx2[4],BWHITE);
#Text_SetStyle(TX2[4],1,0);
}
If LoVal[0] > L Then
{
LoVal[0] = L;
LoBar[0] = 0;
//ZZ[0] = L;
date12 = date[LoBar[0]];
time12 = stime[LoBar[0]];
Value12 = LoVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date22 = date[0];
time22 = stime[0];
TL_SetEnd(TL2[0],date22,time22,fr[0]);
TL_SetEnd(TL2[1],date22,time22,fr[1]);
TL_SetEnd(TL2[2],date22,time22,fr[2]);
Text_SetLocation(TX2[2],date22,time22,fr[2]);
TL_SetEnd(TL2[3],date22,time22,fr[3]);
TL_SetEnd(TL2[4],date22,time22,fr[4]);
Text_SetLocation(TX2[4],date22,time22,fr[4]);
TL_SetEnd(TL2[5],date22,time22,fr[5]);
TL_SetEnd(TL2[6],date22,time22,fr[6]);
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
}
}
If T == 1 Then
{
If T[1] != 1 Then
{
For j = 18 DownTo 0
{
HiVal[j+1] = HiVal[j];
HiBar[j+1] = HiBar[j];
//ZZ[j+1] = ZZ[j];
}
HiVal[0] = H;
HiBar[0] = 0;
//ZZ[0] = H;
date11 = date[LoBar[0]];
time11 = stime[LoBar[0]];
Value11 = LoVal[0];
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색);
Tx1 = Text_New(date11,time11,Value11,"●");
#동그라미 색상, 파랑
Text_SetColor(Tx1,Red);
Text_SetStyle(Tx1,2,2);
Text_SetSize(tx1,6);
//tx = Text_New(date11,time11,Value11,NewLine+NumToStr(value11,2)+NewLine+NumToStr(value11,2));
//Text_SetStyle(tx,2,0);
date31 = date[LoBar[0]];
time31 = stime[LoBar[0]];
date32 = date[0];
time32 = stime[0];
for j = 0 to 5
{
fr[j] = LoVal[0] + ((HiVal[1] - LoVal[0]) * r[j]);
}
if LoVal[2] > 0 and max(LoVal[0],LoVal[1],LoVal[2]) <= min(LoVal[0],LoVal[1],LoVal[2])+pt Then
{
txx = Text_New(sDate[LoBar[0]],sTime[LoBar[0]],Loval[0],"●");
Text_SetSize(txx,20);
Text_SetStyle(Txx,2,2);
Text_SetColor(txx,Red);
}
}
If HiVal[0] < H Then
{
HiVal[0] = H;
HiBar[0] = 0;
//ZZ[0] = H;
date12 = date[HiBar[0]];
time12 = stime[HiBar[0]];
Value12 = HiVal[0];
TL_SetEnd(TL1, date12,time12,Value12);
date32 = date[0];
time32 = stime[0];
//Tx = Text_New_Self(date12,time12,Value12,NumToStr(abs(value11-value12)/PriceScale,0)+" ");
#동그라미 색상, 빨강
//Text_SetColor(Tx,RED);
//Text_SetStyle(Tx,1,1);
TL_SetEnd(TL3[0],date32,time32,fr[0]);
TL_SetEnd(TL3[1],date32,time32,fr[1]);
TL_SetEnd(TL3[2],date32,time32,fr[2]);
Text_SetLocation(TX3[2],date32,time32,fr[2]);
TL_SetEnd(TL3[3],date32,time32,fr[3]);
TL_SetEnd(TL3[4],date32,time32,fr[4]);
Text_SetLocation(TX3[4],date32,time32,fr[4]);
TL_SetEnd(TL3[5],date32,time32,fr[5]);
TL_SetEnd(TL3[6],date32,time32,fr[6]);
TL_Delete(tl);
TL = TL_New(sdate,stime,Value12,NextBarSdate,NextBarStime,NextBarOpen);
}
}
TL_SetSize(TL1,선두께);
쓰리바닥 동그라미 위치를 위로 5틱 올려주세요. 감사합니다.
2022-10-28
838
글번호 163349
지표
답변완료
문의 드립니다
input : N(8),진입Per(-23.6),청산Per(61.8);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),hh(0),ll(0),cnt(0),EP(0),XP(0);
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
if ((NextBarSdate != sDate and NextBarStime >= ST) or
(NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then
{
ExitLong();
hh = 0;
ll = 0;
For cnt = 0 to N-1
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if NextBarOpen < EP Then
Buy("b1",AtStop,EP);
Else
Buy("b1.",AtLimit,EP);
}
Else
{
hh = 0;
ll = 0;
For cnt = 1 to N
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if H < EP Then
Buy("b2",AtStop,EP);
if L > EP Then
Buy("b2.",AtLimit,EP);
}
if MarketPosition == 1 Then
{
if MarketPosition != MarketPosition[1] Then
XP = ll[BarsSinceEntry]+(hh[BarsSinceEntry]-ll[BarsSinceEntry])*(청산Per/100);
ExitLong("bx",AtLimit,XP);
}
}
-----------------
청산이 당일신호로 나옵니다.
수식어에서 진입 N값은 8일입니다.
청산 N값을 진입 N값하고 기간을 다르게 숫자로 표기 하고 싶습니다.
예를들면 8일 기간값에서 진입신호후 청산은 10일중에 청산값에 도달하면
되는걸 말합니다.
익절 200 손절 40 포함해 주셨으면 합니다.
------------------------
input : N(8),진입Per(38.2),청산Per(61.8);
var : DD(0),Year(0),V1(0),V2(0),V3(0),V4(0),summer(False);
var : ST(0),ET(0),hh(0),ll(0),cnt(0),EP(0),XP(0);
if NextBarSdate != sDate Then
{
DD = DayOfWeek(NextBarSdate);
Year = Floor(NextBarSdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1);
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3);
Summer = Sdate > (10000 * Year) + (100 * 3) + v2 and Sdate < (10000 * Year) + (100 * 11) + v4;
if summer == true Then
{
ST = 70000;
ET = 55000;
}
Else
{
ST = 80000;
ET = 65000;
}
}
if Year > 0 Then
{
IF ET > ST Then
SetStopEndofday(ET);
Else
{
if NextBarSdate != sDate Then
SetStopEndofday(ET);
}
if ((NextBarSdate != sDate and NextBarStime >= ST) or
(NextBarSdate == sDate and NextBarStime >= ST and sTime < ST)) Then
{
SetStopEndofday(0);
hh = 0;
ll = 0;
For cnt = 0 to N-1
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if NextBarOpen < EP Then
Buy("b1",AtStop,EP);
Else
Buy("b1.",AtLimit,EP);
}
Else
{
hh = 0;
ll = 0;
For cnt = 1 to N
{
if hh == 0 or (hh > 0 and DayHigh(cnt) > hh) Then
hh = DayHigh(cnt);
if ll == 0 or (ll > 0 and DayLow(cnt) < ll) Then
ll = DayLow(cnt);
}
EP = ll+(hh-ll)*(진입Per/100);
if H < EP Then
Buy("b2",AtStop,EP);
if L > EP Then
Buy("b2.",AtLimit,EP);
}
if MarketPosition == 1 Then
{
if MarketPosition != MarketPosition[1] Then
XP = ll[BarsSinceEntry]+(hh[BarsSinceEntry]-ll[BarsSinceEntry])*(청산Per/100);
ExitLong("bx",AtLimit,XP);
}
}
---------------
위 수식어를 익절150 손절 40을 포함한 당일청산이 아닌 식으로 부탁드립니다.
2022-10-28
1014
글번호 163347
시스템
답변완료
부탁드립니다
수고하십니다
저번에 전화드린거 잘해결했습니다
아래수식은 제가 엉터리로 한수식입니다
((수식내용은 콜,풋중 현재가가 같으면 조건에 만족하면 선긋기))
그런데 현재가를 도저히 어땋게 해야할지 모르겠내요?
#조건1.ElseIf 콜고 <= 풋저 + 0.15 And 콜고 >= 풋저 - 0.15 Then 에 선긋기,조건1은Plot1에
#조건2.ElseIf 풋고 <= 콜저 + 0.15 And 풋고 >= 콜저 - 0.15 Then 에 선긋기))조건2은Plot2
var : cnt(0,Data1);
var : Ci(0,Data1),Pi(0,Data1),count(0,Data1);
Array : CS[7](0),CH[7](0),PS[7](0),PL[7](0),CT[7](0),PT[7](0);
#콜고가
CH[2] = Data2(h); #→→고가
CH[3] = Data4(h);
CH[4] = Data5(h);
CH[5] = Data6(h);
CH[6] = Data7(h);
#풋저가
PL[2] = Data3(L); #→→저가
PL[3] = Data8(L);
PL[4] = Data9(L);
PL[5] = Data10(L);
PL[6] = Data11(L);
if data1(Bdate != Bdate[1]) then
{
#콜행사가 #고가→→이러면 콜행사가의 고가를가져오는수식이 안되나요? 아니면 어떻게하나요?
CS[2]= data2(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
CS[3]= data4(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
CS[4]= data5(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
CS[5]= data6(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
CS[6]= data7(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
#풋행사가 #저가→→이러면 콜행사가의 고가를가져오는수식이 안되나요?
PS[2]= data3(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
PS[3]= data8(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
PS[4]= data9(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
PS[5]= data10(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
PS[6]= data11(iff(StrToNum(RightStr(SymbolCode,1)) == 5 or StrToNum(RightStr(SymbolCode,1)) == 0, StrToNum(RightStr(SymbolCode,3)), StrToNum(RightStr(SymbolCode,3))+0.5));
var1 = 0;
Var2 = 0;
Var3 = 0;
For cnt = 2 to 6
{
if CS[cnt] == PS[cnt] Then #→→ #CS[2]~CS[6]의 값중 == PS[2]~PS[6]의 값중 현재가가 같으면 그때의 조건
var1 = cnt; (( #조건 1.ElseIf 콜고 <= 풋저 + 0.15 And 콜고 >= 풋저 - 0.15 Then 에 선긋기
#조건 2.ElseIf 풋고 <= 콜저 + 0.15 And 풋고 >= 콜저 - 0.15 Then 에 선긋기))
if PS[cnt] == CS[cnt] Then
value1 = cnt;
}
}
if var1 > 0 and value1 > 0 Then #→→ #조건1.
Plot1((CH[var1] + PL[Var2]) / 2);
if var1 > 0 and value1 > 0 Then #→→ #조건2.
Plot2((CH[var1] + PL[Var2]) / 2);
2022-10-27
890
글번호 163342
지표