예스스탁
예스스탁 답변
2023-05-30 10:36:26
안녕하세요
예스스탁입니다.
Input:매물대기간(50),매물대개수(20);
Input:atrlen(14),atrs1(2.7),atrs2(2.7),atrs3(2.2),break(1.9),level(0.3),big(8);
Input:초기자산(2000000);
Var:누적자산(0),진입후최고가(0),진입후최저가(0);
Array:매물대[30,4](0); // 행번호 = 순위, 열번호 = 1:가격이상,2:가격미만,3:수량,4:비율
누적자산 = 초기자산 + netprofit;
Value1=VolProfile(매물대기간,매물대개수,매물대);
Condition1 = ma(C,5) > ma(C,20) and C > 매물대[1,2]; // 단기이평, 중기이평 정배열이고 최대 매물대 지지
Condition2 = ma(C,5) < ma(C,20) and C < 매물대[1,2]; // 단기이평, 중기이평 정배열이고 최대 매물대 지지
If Condition1[1] != Condition1 and Condition1 Then
Buy("Buy",AtMarket,int(초기자산/NextBarOpen));
If Condition2[1] != Condition2 and Condition2 Then
Sell("Sell",AtMarket,int(초기자산/NextBarOpen));
If MarketPosition == 1 Then
{
진입후최고가 = Highest(H,BarsSinceEntry + 1);
ExitLong("매수손절",Atstop,Entryprice - ATR(atrlen) * atrs1);
ExitLong("매수추적",Atstop,진입후최고가 - ATR(atrlen) * atrs2);
ExitLong("매수변동성",Atstop,C[1] - ATR(atrlen) * atrs3);
If 진입후최고가 >= Entryprice + ATR(atrlen) * break Then
{
ExitLong("매수손익분기",Atstop,Entryprice + ATR(atrlen) * level);
}
If 진입후최고가 >= Entryprice + ATR(atrlen) * big Then
{
ExitLong("매수초과수익",Atstop,Lowest(L,3));
}
}
If MarketPosition == -1 Then
{
진입후최저가 = lowest(L,BarsSinceEntry + 1);
ExitShort("매도손절",Atstop,Entryprice + ATR(atrlen) * atrs1);
ExitShort("매도추적",Atstop,진입후최저가 + ATR(atrlen) * atrs2);
ExitShort("매도변동성",Atstop,C[1] + ATR(atrlen) * atrs3);
If 진입후최저가 <= Entryprice - ATR(atrlen) * break Then
{
ExitShort("매도손익분기",Atstop,Entryprice - ATR(atrlen) * level);
}
If 진입후최저가 <= Entryprice - ATR(atrlen) * big Then
{
ExitShort("매도초과수익",Atstop,highest(H,3));
}
}
즐거운 하루되세요
> 매버릭 님이 쓴 글입니다.
> 제목 : 매도에 대한식 추가 부탁드립니다.
> 안녕하세요? 외부에서 가져온 식인데 매수만 작성되어 있어서, 같은 방식으로 매도에 대한 식을 추가로 작성 좀 부탁드립니다.
//===============================================//
Input:매물대기간(50),매물대개수(20);
Input:atrlen(14),atrs1(2.7),atrs2(2.7),atrs3(2.2),break(1.9),level(0.3),big(8);
Input:초기자산(2000000);
Var:누적자산(0),진입후최고가(0);
Array:매물대[30,4](0); // 행번호 = 순위, 열번호 = 1:가격이상,2:가격미만,3:수량,4:비율
누적자산 = 초기자산 + netprofit;
Value1=VolProfile(매물대기간,매물대개수,매물대);
Condition1 = ma(C,5) > ma(C,20) and C > 매물대[1,2]; // 단기이평, 중기이평 정배열이고 최대 매물대 지지
If Condition1[1] != Condition1 and Condition1 Then
Buy("Buy",AtMarket,int(초기자산/NextBarOpen));
If MarketPosition == 1 Then {
진입후최고가 = Highest(H,BarsSinceEntry + 1);
ExitLong("매수손절",Atstop,Entryprice - ATR(atrlen) * atrs1);
ExitLong("매수추적",Atstop,진입후최고가 - ATR(atrlen) * atrs2);
ExitLong("매수변동성",Atstop,C[1] - ATR(atrlen) * atrs3);
If 진입후최고가 >= Entryprice + ATR(atrlen) * break Then {
ExitLong("매수손익분기",Atstop,Entryprice + ATR(atrlen) * level);
}
If 진입후최고가 >= Entryprice + ATR(atrlen) * big Then {
ExitLong("매수초과수익",Atstop,Lowest(L,3));
}
}