예스스탁
예스스탁 답변
2023-02-09 13:53:32
안녕하세요
예스스탁입니다.
4번째와 7번째는 진입이 아닌 1계약 청산을 하게 작성해 드립니다.
청산후 5번쨰와 8번째 진입은 청산가격을 기준으로
지정한 간격 상승/하락을 해야 진입을 합니다.
var : B(0),Bcnt(0);
var : S(0),Scnt(0);
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
Bcnt = Bcnt+1;
B = LatestEntryPrice(0);
}
if CurrentContracts < CurrentContracts[1] Then
{
Bcnt = Bcnt+1;
B = LatestExitPrice(0);
}
if Bcnt == 3 or Bcnt == 6 Then
ExitLong("bx1",atlimit,B+PriceScale*매수간격,"",1,1);
Else
buy("bb",AtStop,B+PriceScale*매수간격);
if MaxEntries == 1 Then
ExitLong("매수1손절",AtStop,EntryPrice-PriceScale*손절변수);
if MaxEntries >= 2 Then
ExitLong("bx",AtStop,AvgEntryPrice);
ExitLong("매수이익x",AtLimit,AvgEntryPrice+PriceScale*이익변수 );
}
if MarketPosition == -1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
Scnt = Scnt+1;
S = LatestEntryPrice(0);
}
if CurrentContracts < CurrentContracts[1] Then
{
Scnt = Scnt+1;
S = LatestExitPrice(0);
}
if Scnt == 3 or Scnt == 6 Then
ExitShort("sx1",AtLimit,S-PriceScale*매도간격,"",1,1);
Else
Sell("ss",AtStop,S-PriceScale*매도간격);
if MaxEntries == 1 Then
ExitShort("매도1손절",AtStop,EntryPrice+PriceScale*손절변수 );
if MaxEntries >= 2 Then
ExitShort("sx",AtStop,AvgEntryPrice);
ExitShort("매도이익",AtLimit,AvgEntryPrice-PriceScale*이익변수);
}
즐거운 하루되세요
> 종호 님이 쓴 글입니다.
> 제목 : 재문의드립니다.
> 전략 수정 하겠습니다.
4단계와 7단계가 되면 그냥 1계약씩 팔기만 하고요. 판 가격에 재진입을 안하고
계속 피라미딩이 진행되도옥 하고 싶습니다.
문제는 4단계와 7단계가 최초로 될 때만 1번 팔아주고 두번째로 4단세나 7단계가
될 때는 안팔려야 하는 것입니다. 계속 피라미딩이 진행되도록 부탁드립니다.
안녕하세요
예스스탁입니다.
1
AvgEntryPrice
추가진입이나 일부청산에 따라 자동으로 변동이 됩니다.
2
수식에서 청산과 동일방향 진입이 동시 발생하면
청산함수가 다시 발동해서 발생한 진입을 다시 청산합니다.
즉 피라미딩일때 동일시점에 일부 청산하고 다시 진입하는 것은 가능하지 않습니다.
청산과 진입시점을 달리해 주여야 하는데
올리신 내용만으로 어떤 방식으로 차이를 주어야 할지 알수 없습니다.
즐거운 하루되세요
> 종호 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요.
아래수식은 피라미딩 수식입니다
10단계까지 1계약씩 진입예정이고요.
4단계와 7단계에서 1계약을 팔아주고 다시 사서 중간 이악을 취하도록
수정을 부탁드립니다.
4단계 진입이 되면 1걔약을 우선 팔고 다시 1계약을 매수하고 싶습니다.
즉 4단계와 7단계 에서는 2계약이 매수 되고 1계약이 매도 됩니다,
이렇게 되면
AvgEntryPrice 가격도 원래 보다 높은 가격으로 수정이 되는 것이 맞는 것인지요?
높은 가격으로 수정되어야 이런 과정이 의미가 있기 때문입니다.
매도도 반대논리로 수정을 부탁드립니다.
if MarketPosition == 1 Then
{
buy("bb",AtStop,LatestEntryPrice(0)+PriceScale*매수간격);
if MaxEntries == 1 Then
ExitLong("매수1손절",AtStop,EntryPrice-PriceScale*손절변수);
if MaxEntries >= 2 Then
ExitLong("bx",AtStop,AvgEntryPrice);
ExitLong("매수이익x",AtLimit,AvgEntryPrice+PriceScale*이익변수 );
}
if MarketPosition == -1 Then
{
Sell("ss",AtStop,LatestEntryPrice(0)-PriceScale*매도간격);
if MaxEntries == 1 Then
ExitShort("매도1손절",AtStop,EntryPrice+PriceScale*손절변수 );
if MaxEntries >= 2 Then
ExitShort("sx",AtStop,AvgEntryPrice);
ExitShort("매도이익",AtLimit,AvgEntryPrice-PriceScale*이익변수);
}