답변완료
문의드립니다
1.
Inputs: Length(9), StdDev(2), Bars(2);
Variables: BBTop(0),BBBot(0);
BBTop = BollBandup(Length, StdDev);
BBBot = BollBanddown(Length, StdDev);
If CountIF(Close < BBBot, Bars) == Bars Then
Buy("BBtop", AtStop, BBBot);
If CountIF(Close > BBTop, Bars) == Bars Then
Sell("BBbot", AtStop, BBTop);
2.
Input : Period(14), LPercent(30), SPercent(70);
Var : value(0);
value = RSI(Period);
# 매수/매도청산
If CrossUP(value, LPercent) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value, SPercent) Then
{
Sell();
}
1번은 볼랜즈밴드 2번은 rsi전략인데
이두개의 시스템을 하나로 묵고 싶습니다
1. 매수진입
두신호의 교집합 둘다 동일한 매수신호 구간에서 매수진입
2.매수청산
어느 한쪽이 매도로 바뀌면 청산
3.매도진입
두 신호가 매도 교집합 일때 매도 진입
4.매도청산
어느 한쪽이 매수로 바뀌면 청산
이런 전략을 부탁드립니다
항상 감사드립니다
2022-08-25
1394
글번호 161751
시스템
답변완료
파라볼릭 쌍바닥
Input : af(0.02), maxAF(0.2),상(1),하(1);
Var : Sarv(0),tl(0),T(0);
Sarv = sar(af,maxAF);
Plot1(0);
If crossup(c,Sarv) Then
{
T = 1;
var1 = Sarv;
Var2 = var1[1];
Condition1 = False;
if var1 <= var2+PriceScale*상 and var1 >= var2-PriceScale*하 and var2 > 0 Then
{
Condition1 = true;
Plot1(1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL,Red);
TL_SetSize(TL,0.5);
}
}
if CrossDown(C,sarv) Then
T = -1;
Else
{
if T == 1 Then
{
if sarv < var1 Then
{
var1 = sarv;
if Condition1 == False and var1 <= var2+PriceScale*상 and var1 >= var2-PriceScale*하 and var2 > 0 Then
{
Condition1 = true;
Plot1(1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL,Red);
TL_SetSize(TL,0.5);
}
}
}
}
쌍바닥일때 매수, 음전환시 매수청산. 감사합니다.
2022-08-25
1293
글번호 161749
시스템
답변완료
파라볼릭 쌍바닥
Input : af(0.02), maxAF(0.2),상(1),하(1);
Var : Sarv(0),tl(0);
Sarv = sar(af,maxAF);
Plot1(0);
If crossup(c,Sarv) Then
{
var1 = Sarv;
Var2 = var1[1];
if var1 <= var2+PriceScale*상 and var1 >= var2-PriceScale*하 and var2 > 0 Then
{
Plot1(1);
PlaySound("C:₩예스트레이더₩data₩Sound₩alert.wav");
TL = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetColor(TL,Red);
TL_SetSize(TL,0.5);
}
}
눈으로 보면 쌍바닥인데,쌍바닥간 두 지점이 너무 붙어서인지 첫바닥 상승이 2틱 정도로 작아서인지,첨부한 그림 부분에서 쌍바닥 출력이 안됩니다.
파라볼릭 최저가 기준으로 하면 출력이 될까요? 감사합니다.
2022-08-25
1321
글번호 161742
지표
답변완료
78488 추가질문 드립니다
안녕하세요~
지난번에 1분봉차트에서 5분봉 macd로 시스템 오프하는법 문의드려 아래 수식을 작성해주셨습니다
input : 타주기분(5),short(12),long(26),sig(9);
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0),MACDO(0);
var : TF(0),xma1(0),xma2(0),idx(0),Prexma1(0),Prexma2(0),MACDV(0),MACDS(0),PreMACDS(0);
var : Bsystem(true);
//타분봉 macd계산
Ep1 = 2/(short+1);
Ep2 = 2/(long+1);
Ep3 = 2/(sig+1);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
idx = idx + 1;
Prexma1 = xma1[1];
Prexma2 = xma2[1];
PreMACDS = MACDS[1];
}
if idx <= 1 then
{
xma1 = C;
xma2 = C;
MACDV = xma1-xma2;
MACDS = MACDV;
MACDO = MACDV-MACDS;
}
else
{
xma1 = C * EP1 + Prexma1 * (1-EP1);
xma2 = C * EP2 + Prexma2 * (1-EP2);
MACDV = xma1-xma2;
MACDS = MACDV * EP3 + PreMACDS * (1-EP3);
MACDO = MACDV-MACDS;
}
if MACDS < 0 Then
Bsystem = False;
}
-------------------------
하지만 작동 안하는것 같아 로그 확인해보니
MACDS값이 항상 0으로 뜹니다
이 부분 확인 부탁드립니다
감사합니다
2022-08-25
1294
글번호 161740
시스템
답변완료
수정 요청드립니다. ^^ 감사합니다~
아래 수식을 사용하고 있습니다.
추가 내용을 요청드립니다. ^^ 감사합니다.
-----------------------------------------------------------------------------------------------------
포지션에 따라 (1 or -1) 매수/매도 진입을 하는데
이동평균선 돌파 후 진입 기능 (5일선 / 20일선)
*단 정해진 체크시간에 돌파 체크하고 만약 돌파 하지 않는다면 아래 정해진 시간에 강제 진입
[예시]
1. 매수의 경우 22시 부터 22시 30분까지 이동평균선 (5일선 20일선) 5일선이 20일선을 크로스하면 매수진입...
만약 크로스 안하면 22시 30분 강제 진입
매도의 경우 반대
** 5일선 10일선은 마음대로 (일수)수정이 가능했으면 좋겠습니다.
** 이동평균선 진입 시간도 수정이 가능하면 좋겠습니다.
요청 드립니다~ ^^
--------------------------------------------------------------------------------------------------------
input : position1(1),ntime1(223000),vol1(1);
input : xtime(55800);
input : 최소수익틱수(100),수익감소틱수(10);
var : ST(0);
if Bdate != Bdate[1] Then
{
ST = sTime;
}
if ST > 0 then
{
if (sdate != sdate[1] and stime >= ntime1) or
(sdate == sdate[1] and stime >= ntime1 and stime[1] < ntime1) Then
{
if position1 == 1 Then
Buy("매수-1",OnClose,DEf,vol1);
if position1 == -1 Then
Sell("매도-1",OnClose,DEf,vol1);
}
if MarketPosition == 1 and Highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*최소수익틱수 Then
ExitLong("매수스탑x",AtStop,Highest(H,BarsSinceEntry)-PriceScale*수익감소틱수);
if MarketPosition == -1 and lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*최소수익틱수 Then
ExitShort("매도스턉x",AtStop,lowest(L,BarsSinceEntry)+PriceScale*수익감소틱수);
}
IF Xtime > ST Then
SetStopEndofday(Xtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Xtime);
}
if (sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST) Then
{
IF Xtime <= ST Then
{
SetStopEndofday(0);
}
}
2022-08-25
1358
글번호 161738
시스템