커뮤니티
29060번 부탁 좀 드립니다
2013-03-11 16:51:50
214
글번호 60564
^^
답변 1
예스스탁 예스스탁 답변
2013-03-11 19:53:34
안녕하세요
예스스탁입니다.
식을 수정했습니다.
반복청산1에 이름이 잘못지정되어 있었습니다.
아래 적용해 보시고 의도와 다른 부분 있으시면
다시 올려주시기 바랍니다.
input : rsiPeriod(8), RSVValue(31),N(5),X(3);
input : maPeriod1(9),maPeriod2(13),maPeriod3(18), maPeriod4(66);
input : Vol(0);
input : 간격(0.75);
input : LossPoint(1);
input : ProfitPoint(2.8);
input : MACDP1(12),MACDP2(26),MACDP3(9);
var : MAv1(0), MAv2(0), MAv3(0), MAv4(0);
var : RSV(0);
var : Energe1(0),Energe2(0);
var : MACDO(0),cnt(0);
MAv1 = ma(C,maPeriod1);
MAv2 = ma(C,maPeriod2);
MAv3 = ma(C,maPeriod3);
MAv4 = ma(C,maPeriod4);
RSV = RSI(rsiPeriod);
MACDO = MACD_OSC(MACDP1,MACDP2,MACDP3);//MACD 오실레이터
if date != date[1] Then
Condition1 = false;
#최초 매도조건
if Condition1 == false
&& Condition11 == false
&& MarketPosition == 0
&& V > Vol
&& MAv1 < MAv2
&& MAv2 < MAv3
&& MAv3 < MAv4
&& RSV < RSVValue
&& MAv4 - MAv2 <= 간격
&& C < MAv4
&& MACDO < 0
Then
{
Sell("최초매도", OnClose, DEF);
Condition1 = true;
}
if Condition1 == true
&& MarketPosition == 0
&& IsExitName("반복청산",1) == true
&& IsEntryName("최초매도",1) == true
&& EntryDate(1) == sdate
&& C <= mav4-PriceScale*X
&& (CrossDown(MACDO,0) or C >= ExitPrice(1)+PriceScale*N) Then{
sell("반복매도");
}
#반복매도청산조건
if MarketPosition == -1
&& CrossUp(MACDO,0)
&& IsEntryName("최초매도") == true Then
ExitShort("반복청산");
//종가가 MAv4보다 크면 매도청산
if Condition1 == True
&& C > MAv4 Then {
ExitShort("MAv4청산");
Condition1 = false;
}
//손절/목표청산
if MarketPosition == -1 and (IsEntryName("최초매도") or IsEntryName("반복매도")) Then{
ExitShort("손절",AtStop,EntryPrice+Losspoint);
ExitShort("목표",AtLimit,EntryPrice-Profitpoint);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절",1) == true or IsExitName("목표",1) == True) Then
Condition1 = false;
input : rsiPeriod1(8), RSVValue1(31),N1(5),X1(3);
input : maPeriod11(9),maPeriod21(13),maPeriod31(18), maPeriod41(66);
input : Vol1(0);
input : 간격1(0.75);
input : LossPoint1(1);
input : ProfitPoint1(2.8);
input : MACDP11(12),MACDP21(26),MACDP31(9);
var : MAv11(0), MAv21(0), MAv31(0), MAv41(0);
var : RSV1(0);
var : Energe11(0),Energe21(0);
var : MACDO1(0),cnt1(0);
MAv11 = ma(C,maPeriod11);
MAv21 = ma(C,maPeriod21);
MAv31 = ma(C,maPeriod31);
MAv41 = ma(C,maPeriod41);
RSV1 = RSI(rsiPeriod1);
MACDO1 = MACD_OSC(MACDP11,MACDP21,MACDP31);//MACD 오실레이터
if date != date[1] Then
Condition11 = false;
#최초 매도조건
if Condition11 == false
&& Condition1 == false
&& MarketPosition == 0
&& V > Vol1
&& MAv11 < MAv21
&& MAv21 < MAv31
&& MAv31 < MAv41
&& RSV1 < RSVValue1
&& MAv41 - MAv21 <= 간격1
&& C < MAv41
&& MACDO1 < 0
Then
{
Sell("최초매도1", OnClose, DEF);
Condition11 = true;
}
if Condition11 == true
&& MarketPosition == 0
&& IsExitName("반복청산1",1) == true
&& IsEntryName("최초매도1",1) == true
&& EntryDate(1) == sdate
&& C <= mav41-PriceScale*X1
&& (CrossDown(MACDO1,0) or C >= ExitPrice(1)+PriceScale*N1) Then{
sell("반복매도1");
}
#반복매도청산조건
if MarketPosition == -1
&& CrossUp(MACDO1,0)
&& IsEntryName("최초매도1") == true Then
ExitShort("반복청산1");
//종가가 MAv4보다 크면 매도청산
if Condition11 == true
&& C > MAv41 Then {
ExitShort("MAv4청산1");
Condition11 = false;
}
//손절/목표청산
if MarketPosition == -1 and (IsEntryName("최초매도1") or IsEntryName("반복매도1")) Then{
ExitShort("손절1",AtStop,EntryPrice+Losspoint1);
ExitShort("목표1",AtLimit,EntryPrice-Profitpoint1);
}
if BarsSinceExit(1) == 1 and (
IsExitName("손절1",1) == true or IsExitName("목표1",1) == True) Then
Condition11 = false;
즐거운 하루되세요
> 아라미스33 님이 쓴 글입니다.
> 제목 : 29060번 부탁 좀 드립니다
> ^^