커뮤니티
진입현재가 위로 올라갈때마다 매수하는것을 원합니다
2014-08-29 09:18:57
139
글번호 78206
수고하십니다
아래의 수식에서 골든크로스가 발행하면 진입을 하는데
옵션에서 진입가가 1.00이면
처음 1개를 매수하고
현재가가 한틱 상승할때마다 1개씩 매수를 점진적으로 하는것을 원합니다
총 5틱의 상승시마다 한개씩 불타기를 하는것이죠.
그런데 로직상 총 5틱이 상승할때마다 1개씩 불타기로 매수할수 있도록 코딩을 했는데
3개정도만 사지고 하락하면
나중에 청산할때 보유수량인 3개가 청산되는지 아니면 5개의 가능매수 코딩대로 5개가 청산주문 들어가는지 궁금하구요
제가 원하는건 현재 매수한 갯수만큼만 청산되어 보유수량이 하나도 없도록 하고 싶습니다
부탁합니다
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
답변 1
예스스탁 예스스탁 답변
2014-08-29 11:08:25
안녕하세요
예스스탁입니다.
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
If MarketPosition <= 0 and CrossUP(value1, value2) Then
{
Buy("b1",OnClose,def,1);
Buy("b2",AtStop,C+PriceScale*1,1);
Buy("b3",AtStop,C+PriceScale*2,1);
Buy("b4",AtStop,C+PriceScale*3,1);
Buy("b5",AtStop,C+PriceScale*4,1);
}
if MarketPosition == 1 Then{
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*1 Then
Buy("b2.",AtStop,EntryPrice+PriceScale*1,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*2 Then
Buy("b3.",AtStop,EntryPrice+PriceScale*2,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*3 Then
Buy("b4.",AtStop,EntryPrice+PriceScale*3,1);
if highest(H,BarsSinceEntry) < EntryPrice+PriceScale*4 Then
Buy("b5.",AtStop,EntryPrice+PriceScale*4,1);
}
If MarketPosition >= 0 and CrossDown(value1, value2) Then
{
Sell("s1",OnClose,def,1);
Sell("s2",AtStop,C-PriceScale*1,1);
Sell("s3",AtStop,C-PriceScale*2,1);
Sell("s4",AtStop,C-PriceScale*3,1);
Sell("s5",AtStop,C-PriceScale*4,1);
}
if MarketPosition == -1 Then{
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*1 Then
sell("s2.",AtStop,EntryPrice-PriceScale*1,1);
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*2 Then
sell("s3.",AtStop,EntryPrice-PriceScale*2,1);
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*3 Then
sell("s4.",AtStop,EntryPrice-PriceScale*3,1);
if lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*4 Then
sell("s5.",AtStop,EntryPrice-PriceScale*4,1);
}
위와 같이 작성하시고 식 적용시에 시스템 트레이딩 설정창의
피라미딩 탭에서 다른진입신호만 허용으로 설정하고 적용하시면 됩니다.
시스템은 조건만족하면 주문만 발생합니다.
발생된 주문에 대해 체결여부를 알수 없습니다.
청산신호 발생시에 진입신호에 발생되어 누적된 수량으로 청산이 발생합니다
체결한 수량만큼만 청산되게는 작성할수 없습니다.
즐거운 하루되세요
> 이재찬 님이 쓴 글입니다.
> 제목 : 진입현재가 위로 올라갈때마다 매수하는것을 원합니다
> 수고하십니다
아래의 수식에서 골든크로스가 발행하면 진입을 하는데
옵션에서 진입가가 1.00이면
처음 1개를 매수하고
현재가가 한틱 상승할때마다 1개씩 매수를 점진적으로 하는것을 원합니다
총 5틱의 상승시마다 한개씩 불타기를 하는것이죠.
그런데 로직상 총 5틱이 상승할때마다 1개씩 불타기로 매수할수 있도록 코딩을 했는데
3개정도만 사지고 하락하면
나중에 청산할때 보유수량인 3개가 청산되는지 아니면 5개의 가능매수 코딩대로 5개가 청산주문 들어가는지 궁금하구요
제가 원하는건 현재 매수한 갯수만큼만 청산되어 보유수량이 하나도 없도록 하고 싶습니다
부탁합니다
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}