답변완료
수식문의
수고하십니다.
아래 수식은 신규진입 매매시간(10시50분~15시30분)을 정해 놓았습니다만
아무때나 진입이 됩니다.
뭐가 잘못 문제일까요?
if Tcond == true 가 빠져서 일까요?
Input : short(12), long(26), signal(9),봉수(32),익절1(50),익절2(100),손절(50);
input : StartTime(105000),EndTime(153000);
Var : MACDV(0) , MACDS(0),t(0);
var : Tcond(false);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
MACDV = MACD(short, long);
MACDS = ema(MACDV,signal);
if CrossUp(macdv,macds) Then
{
t = 1;
var1 = C;
Var2 = O;
Var3 = Index;
}
if CrossDown(macdv,macds) Then
{
t = -1;
var1 = C;
Var2 = O;
Var3 = Index;
}
if t == 1 and Index > Var3 and C > Var1 and C > O Then
{
t = 2;
Var3 = Index;
}
if t == 2 and Index > Var3 and Index <= Var3+20 and
CrossUp(c,var2) and C > O Then
{
t = 3;
if MarketPosition == 0 Then
Buy();
}
if t == -1 and Index > Var3 and C < Var1 and C < O Then
{
t = -2;
Var3 = Index;
}
if t == -2 and Index > Var3 and Index <= Var3+20 and
CrossDown(c,var2) and C < O Then
{
t = -3;
if MarketPosition == 0 Then
Sell();
}
if MarketPosition == 1 Then
{
if BarsSinceEntry >= 봉수 Then
exitlong("bp1",AtLimit,EntryPrice+PriceScale*익절1);
Else
exitlong("bp2",AtLimit,EntryPrice+PriceScale*익절2);
exitlong("bl",AtStop,EntryPrice-PriceScale*손절);
}
if MarketPosition == -1 Then
{
if BarsSinceEntry >= 봉수 Then
ExitShort("sp1",AtLimit,EntryPrice-PriceScale*익절1);
Else
ExitShort("sp2",AtLimit,EntryPrice-PriceScale*익절2);
ExitShort("sl",AtStop,EntryPrice+PriceScale*손절);
}
2021-02-05
610
글번호 146126
시스템
답변완료
수식 질문입니다.
아래 글 관련 추가 질문입니다.
아래에서는 하루 전체의 순 이동량을 누적하여, n일 평균하는 지표를 만들었는데.
만약 하루를 세 개 구간으로 나누어 같은 작업을 하려면 어떻게 해야할런지요.
예를 들어,
9시~11시 반까지의 순이동량/(해당시간의 고가-저가)의 n일 평균선
11시 반~14시까지의 순이동량/(해당시간의 고가-저가)의 n일 평균선
14시~장 마감까지의 순이동량/(해당시간의 고가-저가)의 n일 평균선
따로 따로 구하고 싶습니다.
감사합니다.
----
안녕하세요
예스스탁입니다.
input : P(10);
var : sum(0),mav(0),cnt(0);
Array : value[100](0);
if Bdate != Bdate[1] Then
{
var1 = 0;
For cnt = 1 to 99
{
value[cnt] = value[cnt-1][1];
}
}
Else
var1 = var1 + abs(C-C[1]);
Var2 = DayHigh-DayLow;
value[0] = var1/Var2;
Plot1(value[0],"당일");
if value[P-1] > 0 Then
{
sum = 0;
For cnt = 0 to P-1
{
sum = sum + value[cnt];
}
mav = sum/P;
plot2(mav,"n일평균");
}
즐거운 하루되세요
> 중박주식 님이 쓴 글입니다.
> 제목 : 지표식 부탁드립니다.
> 하루의 최고-최저가 대비, 당일 내 주가의 총 이동거리가 얼마나 되는지를 지표로 표시하고 싶습니다.
즉,
분모 = dayhigh - daylow
분자는 = abs(봉2종가 - 봉1종가) + abs(봉3종가 - 봉2종가) + .... + abs(당일마지막봉종가 - 당일마지막에서전봉종가)
여기서 봉1종가 => 당일 첫봉의 종가,
봉2종가 => 당일 두번째 봉의 종가를 의미합니다.
요렇게해서 분자/분모의 n일 평균값을 구하고 싶습니다.
감사합니다.
----
2021-02-05
570
글번호 146125
지표
답변완료
문의
진입수식에 답변주신
청산수식을 적용해보았습니다.
손절 익절 트레일링스탑 모두 시뮬레이션에 변화가 없는데
검토바랍니다.
*****************************************************************************
Input : up(1800),pyra2(1.5),pyra3(1.5);
input : v1(1),v2(2),v3(3);
var : BH(0);
input : up손절1(1.00),up익절1(99999),upTR1(4.00);
input : up손절2(1.10),up익절2(99999),upTR2(4.10);
input : up손절3(1.20),up익절3(99999),upTR3(4.20);
var : C2(0,data2),entry(false,data2);
C2 = data2(C);
if data2(Bdate != Bdate[1]) Then
entry = false;
if MarketPosition <= 0 and entry == false and data2(Bdate == Bdate[1] and HighD(0) > HighD(0)[1] and HighD(0)-LowD(0) >= up) Then{
entry = true;
Buy("b1",OnClose,DEF,v1);
}
if MarketPosition == 1 and IsEntryName("b1",0) == true Then
{
BH = Highest(H,BarsSinceEntry);
if CurrentContracts > CurrentContracts[1] Then
Condition1 = False;
if BH > BH[1] Then
Condition1 = true;
if MaxEntries == 1 and Condition1 == true Then
Buy("bb2",AtLimit,BH-pyra2,V2);
if MaxEntries == 2 and Condition1 == true Then
Buy("bb3",AtLimit,BH-pyra3,V3);
}
var : E1(0),E2(0),E3(0);
var : H1(0),H2(0),H3(0);
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts and LatestEntryName(0) == "b1" Then
{
E1 = LatestEntryPrice(0);
H1 = H;
}
if H1 > 0 and H > H1 Then
H1 = H;
if CurrentContracts > CurrentContracts and LatestEntryName(0) == "bb2" Then
{
E2 = LatestEntryPrice(0);
H2 = H;
}
if H2 > 0 and H > H2 Then
H2 = H;
if CurrentContracts > CurrentContracts and LatestEntryName(0) == "bb3" Then
{
E3 = LatestEntryPrice(0);
H3 = H;
}
if H3 > 0 and H > H3 Then
H3 = H;
if E1 > 0 then
{
ExitLong("bl1",AtStop,E1-up손절1,"b1");
Exitlong("bp1",AtLimit,E1+up익절1,"b1");
Exitlong("btr1",AtStop,H1-upTR1,"b1");
}
if E2 > 0 Then
{
ExitLong("bl2",AtStop,E2-up손절2,"bb2");
Exitlong("bp2",AtLimit,E2+up익절2,"bb2");
Exitlong("btr2",AtStop,H2-upTR2,"bb2");
}
if E3 > 0 Then
{
ExitLong("bl3",AtStop,E3-up손절3,"bb3");
Exitlong("bp3",AtLimit,E3+up익절3,"bb3");
Exitlong("btr3",AtStop,H3-upTR3,"bb3");
}
}
Else
{
E1 = 0;
E2 = 0;
E3 = 0;
}
2021-02-04
460
글번호 146122
시스템