답변완료
수식작성 오류검토 부탁드립니다.^^
안녕하세요
예스스탁입니다.
랭귀지는 청산과 동일포지션 진입이 동시에 발생하면
해당 진입도 같이 다시 청산이 됩니다.
그러므로 청산이후 동일시점에 즉시 재매수가 가능하지 않습니다.
청산이 발생하면 진입은 다음봉 시가에 진입하게 작성했습니다.
1
input : Price(350),익절틱수(50),손절틱수(50);
if TotalTrades == 0 and MarketPosition == 0 and H < Price Then
buy("b",AtStop,price,1);
if TotalTrades > TotalTrades[1] and MarketPosition == 0 Then
buy("bb",AtMarket,price,iff(PositionProfit(1) >= 0,1,MaxContracts(1)*2));
if MarketPosition == 1 Then
{
ExitLong("bp",Atlimit,EntryPrice+PriceScale*익절틱수);
ExitLong("bl",AtStop,EntryPrice-PriceScale*손절틱수);
}
2
input : Price(350),익절틱수(50),손절틱수(50);
if TotalTrades == 0 and MarketPosition == 0 and L > Price Then
sell("s",AtStop,price,1);
if TotalTrades > TotalTrades[1] and MarketPosition == 0 Then
sell("ss",AtMarket,price,iff(PositionProfit(1) >= 0,1,MaxContracts(1)*2));
if MarketPosition == -1 Then
{
ExitShort("sp",Atlimit,EntryPrice-PriceScale*익절틱수);
ExitShort("sl",AtStop,EntryPrice+PriceScale*손절틱수);
}
마틴게일 기법 오래전것인것 같습니다.
적용해보니 실행이 안되어 실행되게 부탁드립니다.
2021-12-27
643
글번호 154907
시스템
답변완료
부탁 드립니다.
도움에 늘 감사 합니다.
MACD를 타주기
1)틱봉용
2)일봉용 부탁 드립니다.
첨부 수식은 macd의 오래전 올려주신 타분봉용 수식 입니다.
input : Atime1(60);
input : short(12),long(26),sig(9);
var : mav(0),dis(0),SS(0),LL(0),MACDV(0),MACDS(0);
var : S1(0),D1(0),TM(0),EP1(0),EP2(0),EP3(0);
var : TF1(0),ema11(0),ema12(0),idx1(0),Xema11(0),Xema12(0),XMACDS1(0),MACDV1(0),MACDS1(0);
var : Didx(0),ema51(0),ema52(0),idx5(0),Xema51(0),Xema52(0),XMACDS5(0),MACDV5(0),MACDS5(0);
Ep1 = 2/(short+1);
Ep2 = 2/(long+1);
Ep3 = 2/(sig+1);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
Didx = Didx + 1;
Xema51 = ema51[1];
Xema52 = ema52[1];
XMACDS5 = MACDS5[1];
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%Atime1;
if bdate != bdate[1] or (TF1 < TF1[1] and bdate == bdate[1]) Then{
idx1 = idx1 + 1;
Xema11 = ema11[1];
Xema12 = ema12[1];
XMACDS1 = MACDS1[1];
}
if idx1 <= 1 then {
ema11 = C;
ema12 = C;
MACDV1 = (ema11-ema12)/ema12*100;
MACDS1 = MACDV1;
}
else{
ema11 = C * EP1 + Xema11 * (1-EP1);
ema12 = C * EP2 + Xema12 * (1-EP2);
MACDV1 = (ema11-ema12)/ema12*100;
MACDS1 = MACDV1 * EP3 + XMACDS1 * (1-EP3);
}
plot4(MACDV1);
plot5(MACDS1);}
타틱용 참고자료)
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
ii = 0;
}
Else
ii = ii +1;
if D1 > 0 then
{
TF = ii%nbar;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
idx = idx+1;
2021-12-27
774
글번호 154903
지표
답변완료
수식 문의
아래 수식은 업다운볼의 차이를 페인트바로 표현한 수식입니다.
아래의 수식에 몇가지 조건을 더하고 싶은데
실력이 미천하여 도움을 구하고자 합니다.
-- 아 래 ---
if upvol > downvol Then
PlotPaintBar(H,L,"1",Rgb(242,150,97));
Else
PlotPaintBar(H,L,"1",rgb(103,153,255));
----------------
여기에 조건을 더하여,
1. 직전봉의 (upvol - downvol)의 값이 양수이고,
현재봉의 값이 음수이고,
2. 그 절대값이 직전봉의 절대값의 x배 이하면
ex : 직전봉값 abs(+1000*0.7) > 현재봉값 abs(-500)
직전봉의 색깔을 유지 합니다.
(직전봉의 값이 양수여도 전전봉의 색깔과 값에 따라
빨간색일수도 파란색일 수도 있음)
3. 그 절대값이 직전봉의 절대값의 x배 이상이면
rgb(103,153,255)(파란색) 색깔을 입힙니다.
4. 직전봉의 (upvol - downvol)의 값이 음수이고,
현재봉의 값이 양수이고,
5. 그 절대값이 직전봉의 절대값의 x배 보다 작으면
ex : 현봉값 abs(+100) < 직전봉값 abs(-500*0.7)
직전봉의 색깔을 유지 합니다.
(직전봉의 값이 음수여도 전전봉의 색깔과 값에 따라
빨간색일수도 파란색일 수도 있음)
6. 그 절대값이 직전봉의 절대값의 x배 보다 크면
(rgb(103,153,255) 빨간색) 색깔을 입힙니다.
즉,
(전봉값 * x) 보다 높은 절대값이 나오면 파란색/빨간색으로 칠하되,
그렇지 않으면 전봉의 색깔을 따라가도록 하고 싶습니다.
2021-12-27
816
글번호 154888
지표
답변완료
문의드립니다
많은 도움을 주시니 감사 드립니다.
아래 시스템에서지금의 매수매도 방법은
매수는 상승추세선의 전저점을 하락추세 캔들이 깨고 내려갈 때 곧 전저점 지수 -1틱에 즉시 시장가 청산하고,
역방향 매수진입은 계속되는 하락추세 중에서 이전 전저점 지수 대비 -50틱 이상 하락추세가 나온 경우 지정가 매수진입하였습니다.
매도는 하락추세선의 전고점을 상승추세 캔들이 깨고 올라갈 때 곧 전고점 지수 +1틱에 즉시 시장가 청산하고,
역방향 매도진입은 계속되는 상승추세 중에서 이전 전고점 지수 대비 +50틱 이상 상승추세가 나온 경우 지정가 매도진입하였습니다.
이것을 아래와 같은 방식으로 수정 부탁드립니다.
먼저
역방향 매수진입은
상승추세선을 하락추세선이 깨고 내려갈 때 곧 상승추세선 또는 계속되는 상승추세선의 마지막 전저점을 기준하여 -50틱에 지정가 매수합니다.
역방향 매도진입은
하락추세선을 상승추세선이 깨고 올라갈 때 곧 하락추세선 또는 계속되는 하락추세선의 마지막 전고점을 기준하여 +50틱에 지정가 매도합니다.
다음
매수진입 물량의 청산은
하락추세선을 상승추세선이 깨고 올라갈 때 곧 하락추세선 또는 계속되는 하락추세선의 마지막 전고점을 캔들이 추세를 깨고 올라갈 때 곧 마지막 전고점 지수 +1틱에 시장가 청산한다.
매도진입 물량의 청산은
상승추세선을 하락추세선이 깨고 내려갈 때 곧 상승추세선 또는 계속되는 상승추세선의 마지막 전저점을 캔들이 추세를 깨고 내려갈 때 곧 마지막 전고점 지수 -1틱에 시장가 청산한다.
#상승추세선의 전저점
if T == 1 Then
var1 = 저점[1,1];
#하락추세선의 전고점
if T == -1 Then
var2 = 고점[1,1];
if MarketPosition <= 0 Then
{
#최근 상승추세선의 전저점에서 50틱 하락하면 매수진입
if var1 > 0 Then
Buy("b",AtLimit,var1-PriceScale*50);
}
if MarketPosition == 1 Then
{
#최근 하락추세선의 전고점에서 1틱 상승하면 매수포지션 청산
if Var2 > 0 Then
ExitLong("bx",AtLimit,Var2+PriceScale*1);
}
if MarketPosition >= 0 Then
{
#최근 하락추세선의 전고점에서 50틱 상승하면 매도진입
if Var2 > 0 Then
Sell("s",AtLimit,Var2+PriceScale*50);
}
if MarketPosition == -1 Then
{
#최근 상승추세선의 전저점에서 1틱 하락하면 매도포지션 청산
if var1 > 0 Then
ExitShort("sx",AtLimit,Sx-PriceScale*1);
}
2021-12-27
1200
글번호 154870
시스템