예스스탁
예스스탁 답변
2021-04-01 13:00:51
안녕하세요
예스스탁입니다.
해당 수식을 적용해 보았지만 첨부된 그림과 같이
동일시간에 연속으로 발생하는 경우를 찾지 못했습니다.
추가로직을 다른 방법으로 변경해 드립니다.
피라미딩을 모든진입신호 허용으로 설정하고 적용하시면 됩니다.
Input : 당일수익틱수(20);
Var : N1(0),dayPl(0),당일수익(0),Xcond(false);
당일수익 = PriceScale*당일수익틱수;
if Bdate != Bdate[1] Then
{
Xcond = false;
N1 = NetProfit;
}
daypl = NetProfit-N1;
if TotalTrades > TotalTrades[1] then
{
if daypl >= 당일수익 Then
Xcond = true;
if (IsExitName("dbp",1) == true or IsExitName("dsp",1) == true) then
Xcond = true;
}
## 수식
var1 = ma(c,5) ;
var2 = ma(c,20) ;
if MarketPosition == 0 and crossup(var1,var2) and Xcond == False then buy("SS1",OnClose,DEF,1);
if MarketPosition == 0 and CrossDown(var1,var2) and Xcond == False then Sell("DD1",OnClose,DEF,1);
if MarketPosition == 1 Then
{
if MaxEntries < 5 Then
Buy("SS5",AtLimit,LatestEntryPrice(0)-3,1);
ExitLong("SST",AtLimit,AvgEntryPrice+10);
ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts));
}
if MarketPosition == -1 Then
{
if MaxEntries < 5 Then
Sell("DD2",AtLimit,EntryPrice+3,1);
ExitShort("DDT",AtLimit,AvgEntryPrice-10);
ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts));
}
즐거운 하루되세요
> 요타 님이 쓴 글입니다.
> 제목 : 연속 매수 확인 좀 부탁 드립니다.
> * 항상 많은 도움에 감사 드립니다.
* 요청사항
- 그림 에서 A~C 까지 3포인트 하락 마다 추가 매수가 잘되는데
D와 E가 매수가 안되야 하는데 매수가 됨니다.
- D와 E가 매수 안되게 수정 좀 요청 드립니다.
* 추가로 "하루 수익이 20틱 이상 이면 매매정지" 로직 좀 추가 부탁 드립니다.
<사진 참고>
## 수식
var1 = ma(c,5) ;
var2 = ma(c,20) ;
if MarketPosition == 0 and crossup(var1,var2) then buy("SS1",OnClose,DEF,1);
if MarketPosition == 0 and CrossDown(var1,var2) then Sell("DD1",OnClose,DEF,1);
if MarketPosition == 1 Then
{
if MaxEntries == 1 Then Buy("SS2",AtLimit,EntryPrice-3,1);
if MaxEntries == 2 Then Buy("SS3",AtLimit,LatestEntryPrice(0)-3,1);
if MaxEntries == 3 Then Buy("SS4",AtLimit,LatestEntryPrice(0)-3,1);
if MaxEntries == 4 Then Buy("SS5",AtLimit,LatestEntryPrice(0)-3,1);
ExitLong("SST",AtLimit,AvgEntryPrice+10);
}
if MarketPosition == -1 Then
{
if MaxEntries == 1 Then Sell("DD2",AtLimit,EntryPrice+3,1);
if MaxEntries == 2 Then Sell("DD3",AtLimit,LatestEntryPrice(0)+3,1);
if MaxEntries == 3 Then Sell("DD4",AtLimit,LatestEntryPrice(0)+3,1);
if MaxEntries == 4 Then Sell("DD5",AtLimit,LatestEntryPrice(0)+3,1);
ExitShort("DDT",AtLimit,AvgEntryPrice-10);
}
* 항상 많은 도움 고맙습니다.