답변완료
수식문의합니다~~
수고하십니다.
1. 아래1 식에서
- 다시 돌려보아도 Bcnt, MarketPosition 이 메세지로그에서 0 발생, 이유가 무엇인지요?
- 매수 연속3회 불가, 매도 연속3회 불가로 수식 수정 부탁드립니다.
== 아래1 ==
Input : 청산P(15),청산L(15);
var : SmaA(0),SmaB(0);
SmaA = ma(C,5);
SmaB = ma(C,20);
var : Bcnt(0);
if Bdate != Bdate[1] Then
Bcnt = 0;
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Bcnt+1;
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Bcnt = 0;
//진입청산
if stime > 093500 and stime <163000 and
Bcnt < 3 then
{
//매수
If MarketPosition == 0 and
c > DayOpen and
SmaA>SmaA[1] Then
Buy("B");
If (c>(EntryPrice+청산P) or c <(EntryPrice-청산L)) and
MarketPosition == 1 Then
ExitLong("ELB");
//매도
If MarketPosition == 0 and
c < DayOpen and
SmaA<SmaA[1] Then
Sell("S");
If (c<(EntryPrice-청산P) or c >(EntryPrice+청산L)) and
MarketPosition == -1 Then
ExitShort("ELS");
}
2. 아래2에서 조건문( if SwingHigh(1,mav,Left,Right,Left+Right+1) != -1 Then) 을
사용하는 이유가 무엇인지요?
== 아래2 ==
안녕하세요
예스스탁입니다.
1
H1이나 L1은 3봉전에 이평값을 저장하는 것이 맞습니다.
H2와 L2는 직전 조건만족시의 가격입니다.
L2 = L1[1]이라고 해서 4봉전의 이평가격이 아닙니다.
L1[1]은 L1에 기존에(한봉전) 저장되어 있던 가격을 가져와 L2에 저장한다는 의미입니다.
즉 새롭게 저장해야 할 가격이 생기면
이전까지 저장되어 있던 값을 다른 변수로 옮긴다는 내용입니다.
#스윙하이가 발생하면
if SwingHigh(1,mav,Left,Right,Left+Right+1) != -1 Then{
#H1에 Right봉전 이평값을 저장
H1 = mav[right];
#H2에는 H1의 한봉전까지 저장되어 있던 가격을 가져와 저장
H2 = H1[1];
if H1 < H2 and H2 > 0 Then
sell();
}
#스윙하이가 발생하면
if SwingLow(1,mav,Left,Right,Left+Right+1) != -1 Then{
#L1에 Right봉전 이평값을 저장
L1 = mav[right];
#L2에 L1의 한봉전까지 저장되어 있던 가격을 가져와 저장
L2 = L1[1];
if L1 > L2 and L2 > 0 Then
Buy();
}
3. 캔들이 10시30분 초과시는 c > 103000으로 작성하는데
이것을 105000으로 작성하거나 109000으로 작성하면 프로그램이 몇시로 인식하나요?
예스 덕분에 2번째 자동매매 실투 도전예정입니다.
항상 감사드립니다~~
2022-02-26
1158
글번호 156766
시스템
답변완료
수식작성 부탁드립니다
안녕하세요?
항상 도움주셔서 감사드립니다
또 한번 어려운 부탁 드립니다
아래 조건을 만족하는 신호 부탁드립니다(틱차트 사용)
1. 매수신호
MACD(12,26)가 상승하고, 선물호가잔량 5이평선이 상승하고, 5이평선이 상승할 때
1) 캔들의 몸통의 중심이 20이평선 위이 있거나
2) 20이평 위에서 첫 양봉(도찌캔들 포함) 캔들을 만들 때
위 2가지 지정한 조건을 최초로 만족하는 캔들에 매수신호
2. 매도신호
MACD(12,26)가 하락하고, 선물호가잔량 5이평선이 하락하고, 5이평선이 하락할 때
1) 캔들의 몸통의 중심이 20이평선 아래에 있거나
2) 20이평 아래에서 첫 음봉(도찌캔들 포함) 캔들을 만들 때
위 2가지 지정한 조건을 최초로 만족하는 캔들에 매도신호
3. MACD 보조지표에 매수매도신를 나타낼 수 있는 방법이 있는지요?
60선위에서 상승에서 하락으로 전환시 매도신호
60선 아래서 하락에서 상승으로 전환시 매수신호
-0.15<MACD<+0.15 사이에서 방향전환시 신호 발생하지 않음
꼭 부탁 드립니다
감사합니다
2022-02-25
1167
글번호 156759
시스템
답변완료
함수 한번더 부탁드립니다
아래 인풋변수에서 period의 변수를 바꾼다면
어디어디 변수를 77로 바꿔야하는지 궁금합니다
input : ntime(5),Period(77);
Vars: HH(0), LL(0) ,center(0), LongCondition(False),ShortCondition(False),ExitLongConditon(False), ExitShortCondition(False);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : tH[100](0),tL[100](0);
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%ntime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and ntime > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and ntime > 1 and TM >= TM[1]+ntime) or
(Bdate == Bdate[1] and ntime == 1 and TM > TM[1]) Then
{
tH[0] = H;
tL[0] = L;
For cnt = 1 to 99
{
tH[cnt] = tH[cnt-1][1];
tL[cnt] = tL[cnt-1][1];
}
}
if tH[0] > 0 and H > tH[0] Then
tH[0] = H;
if tL[0] > 0 and L < tL[0] Then
tL[0] = L;
if tH[Period] > 0 and tL[Period] > 0 Then
{
HH = 0;
LL = 0;
For cnt = 1 to Period
{
if HH == 0 or (HH > 0 and tH[cnt] > HH) Then
HH = tH[cnt];
if LL == 0 or (LL > 0 and tL[cnt] < LL) Then
LL = tL[cnt];
}
center= (HH+LL)/2 ;
If MarketPosition <= 0 and C < HH Then
Begin
Buy("매수",AtStop,HH);
End;
If MarketPosition == 1 and C > center Then
Begin
ExitLong("매수청산",AtStop,center);
End;
If MarketPosition >= 0 and C > LL Then
Begin
Sell("매도",AtStop,LL);
End;
If MarketPosition == -1 and C < center Then
Begin
ExitShort("매도청산",AtStop,center);
End;
}
}
2022-02-25
1233
글번호 156757
사용자 함수
답변완료
수식문의드립니다
아래 조건의 수식을 5분봉 차트에서 사용하고있었다면
1분봉 차트에서 5분봉의 아래와같은 수식의 데이터를 불러오고 싶습니다
예를들어
1분봉 차트에서 5분봉차트 N개의 캔들의 고점을 돌파시 진입
1분봉 차트에서 5분봉차트 N개의 캔들의 저점을 돌파시 진입
과 같은 함수를 만들고싶습니다
input : Period(1);
Vars: HH(0), LL(0) ,center(0), LongCondition(False),ShortCondition(False),ExitLongConditon(False), ExitShortCondition(False);
HH = Highest(high, Period);
LL = Lowest(low, Period);
center= (HH+LL)/2 ;
If MarketPosition <= 0 and C < HH Then
Begin
Buy("매수",AtStop,HH);
End;
If MarketPosition == 1 and C > center Then
Begin
ExitLong("매수청산",AtStop,center);
End;
If MarketPosition >= 0 and C > LL Then
Begin
Sell("매도",AtStop,LL);
End;
If MarketPosition == -1 and C < center Then
Begin
ExitShort("매도청산",AtStop,center);
End;
2022-02-25
916
글번호 156752
시스템
답변완료
수식문의합니다~~
안녕하세요?
1. 아래1 수식을 적용하니 하루에 여러번 진입청산이 되는데
메세지로그에는 MarketPositio 과 Bcnt가 0으로 나옵니다
MessageLoG("%.2f",MarketPosition);
MessageLoG("%.2f",Bcntup);
2. 아래2 수식에서 "if SwingLow(1,mav,Left,Right,Left+Right+1) != -1 Then"
이 무엇인지요?
------아래1----------
메세지
안녕하세요
예스스탁입니다.
var : Bcnt(0);
if Bdate != Bdate[1] Then
Bcnt = 0;
if MarketPosition == 1 and MarketPosition != MarketPosition[1] Then
Bcnt+1;
if MarketPosition == -1 and MarketPosition != MarketPosition[1] Then
Bcnt = 0;
if Bcnt < 3 and 매수조건 Then
Buy();
연속적으로 3번 매수 중지하는 식 부탁드립니다.
-아래2-----
input : Left(3),right(3);
var : mav(0),H1(0),H2(0),L1(0),L2(0);
mav = ma(C,4);
if SwingLow(1,mav,Left,Right,Left+Right+1) != -1 Then
{
L1 = mav[right];
L2 = L1[1];
}
2022-02-25
1014
글번호 156748
시스템