커뮤니티
수식 문의 드립니다
2010-08-26 10:34:09
613
글번호 31865
애당초 왜.. 프로그램을 짜도 실력이 늘지가 않는건지... ㅠㅠ
제가 짜고 싶었던 프로그램은 코덱스200(069500)으로
1. 20060515년을 시작으로 매수
2. 일정 rate 하락 시 추가매수(최대 4번)
3. 추가매수 했건 안했건간에 전체적으로 5%의 수익이 나면 청산
4. 청산한 가격에서 3%의 가격변동(위로든 아래로든)이 있을경우 다시 매수
5. goto 2번
입니다.
3번까지는 작동을 하는데.. 그 이후로 가격변동을 인지 못하는지
4번이 작동을 안합니다.......
제 수식보고 수정해주시면 감사하겠습니다. (--)(__)
input: rate(3);
var: Condition1(False), Condition2(False);
If Date == 20060515 Then Buy("buy0", OnClose, DEF, 1);
If C > ExitPrice * (1 + 3 / 100) Then Condition1 == True;
Else Condition1 == False;
If C < ExitPrice * (1 - 3 / 100) Then Condition2 == True;
Else Condition2 == False;
If marketposition == 0 Then
{
If (Condition1 == True or Condition2 == True) Then Buy("buy1", OnClose, DEF, 1);
}
// 피리미딩 진입
If MarketPosition == 1 and CurrentEntries < 5 Then
{
If C < AvgEntryPrice * (1 - rate / 100) Then
Buy("bp", OnClose, AvgEntryPrice * (1 - rate / 100), 1);
}
// 청산
If MarketPosition == 1 and C > AvgEntryPrice * (1 + 5 /100) Then ExitLong("clear");
답변 1
예스스탁 예스스탁 답변
2010-08-26 17:18:28
안녕하세요
예스스탁입니다.
청산이 목표수익만 있으므로 진입후에 (추가진입포함)
이후 계속 해당 가격 이하에서만 시세가 머물면 청산이 나오지 못하므로
이후 거래가 없게 됩니다. 차트를 확인하시기 바랍니다.
손절이나 다른 청산식을 추가하셔야 합니다.
별도로 아래식을 더 간단히 작성하시면 아래와 같습니다.
exitprice는 최소 인자값이 (1)입니다. exitprice는 0값만 리턴합니다.
input: rate(3);
If Date == 20060515 Then Buy("buy0", OnClose, DEF, 1);
If marketposition == 0 Then
{
if crossup(c,ExitPrice(1)*1.03) or CrossDown(C,ExitPrice(1)*.97) Then
Buy("buy1", OnClose, DEF, 1);
}
// 피리미딩 진입
If MarketPosition == 1 and CurrentEntries < 5 Then{
Buy("bp",AtStop,EntryPrice*(1-(rate*CurrentEntries)/100),1);
}
// 청산
If MarketPosition == 1 and C > AvgEntryPrice * (1 + 5 /100) Then ExitLong("clear");
즐거운 하루되세요
> 구구주녀 님이 쓴 글입니다.
> 제목 : 수식 문의 드립니다
> 애당초 왜.. 프로그램을 짜도 실력이 늘지가 않는건지... ㅠㅠ
제가 짜고 싶었던 프로그램은 코덱스200(069500)으로
1. 20060515년을 시작으로 매수
2. 일정 rate 하락 시 추가매수(최대 4번)
3. 추가매수 했건 안했건간에 전체적으로 5%의 수익이 나면 청산
4. 청산한 가격에서 3%의 가격변동(위로든 아래로든)이 있을경우 다시 매수
5. goto 2번
입니다.
3번까지는 작동을 하는데.. 그 이후로 가격변동을 인지 못하는지
4번이 작동을 안합니다.......
제 수식보고 수정해주시면 감사하겠습니다. (--)(__)
input: rate(3);
var: Condition1(False), Condition2(False);
If Date == 20060515 Then Buy("buy0", OnClose, DEF, 1);
If C > ExitPrice * (1 + 3 / 100) Then Condition1 == True;
Else Condition1 == False;
If C < ExitPrice * (1 - 3 / 100) Then Condition2 == True;
Else Condition2 == False;
If marketposition == 0 Then
{
If (Condition1 == True or Condition2 == True) Then Buy("buy1", OnClose, DEF, 1);
}
// 피리미딩 진입
If MarketPosition == 1 and CurrentEntries < 5 Then
{
If C < AvgEntryPrice * (1 - rate / 100) Then
Buy("bp", OnClose, AvgEntryPrice * (1 - rate / 100), 1);
}
// 청산
If MarketPosition == 1 and C > AvgEntryPrice * (1 + 5 /100) Then ExitLong("clear");
다음글
이전글