답변완료
청산 설정이 가능할까요?
설정창에서 매매 청산-사용자가격설정에서 보면 oncloss/atmarket, atstop , atlimit 별로
"현재가""시장가"등을 지정할수 있는데요..
아래 제가 운영하는 청산 수식인데요.. 다 atstop이네요...
혹시 좋은 방법이 없을까요?? 수식에 "#" 으로 하고 싶은 청산 방법을 기재하였습니다.
if MarketPosition == 1 then
{
BuySetup = false;
if countif(CrossDown(CCIv,CCI값),BarsSinceEntry) >= 1 and
CCIv < CCI값 and C < O Then
ExitLong("매수cci청산"); # 현재가 청산 요망
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*즉시익절1 and C < O Then
ExitLong("즉시익절1"); # 현재가 청산 요망
if highest(H,BarsSinceEntry) >= (EntryPrice+PriceScale*즉시익절1*N2) Then
ExitLong("본전청산1",AtStop,EntryPrice+PriceScale*즉시익절1*N3); # 현재가 청산 요망
Else
{
if L <= EntryPrice-PriceScale*즉시손절1 Then
ExitLong("즉시손절1",AtStop,L-PriceScale*저점손절틱수); # 시장가 청산 요망
}
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*tr수익 Then
ExitLong("tr",AtStop, highest(H,BarsSinceEntry)-PriceScale*tr하락); # 현재가 청산 요망
}
2020-02-23
475
글번호 136243
시스템
답변완료
궁금
10880번의 내용을
시스템식으로 써 주시면 고맙겠습니다.
또nput : VV(0.1),Per(3);
input : p1(10),p2(20),P3(30),P4(40),short(12),long(26),sig(9);
var1 = ma(c,p1);
var2 = ma(c,P2);
var3 = ma(c,P3);
var4 = ma(c,P4);
var5 = MACD_OSC(short,long,sig);
if abs(var5) <= VV and max(var1,var2,var3,var4) <= min(var1,var2,var3,var4)*(1+per/100) and
var1 > var1[1] and var1[1] < var1[1] Then
buy();
if MarketPosition == 1 and var1 < var1[1] and var1[1] > var1[2] Then
exitlong();
if abs(var5) <= VV and max(var1,var2,var3,var4) <= min(var1,var2,var3,var4)*(1+per/100) and
var1 < var1[1] and var1[1] > var1[1] Then
sell();
if MarketPosition == -1 and var1 > var1[1] and var1[1] < var1[2] Then
ExitShort();
이식을 복사해서 쓰려는데 오류가 납니다.
수정부탁할께요
Input : short(12), long(26), signal(9);
Var : MACDV(0) , MACDS(0), T(0);
MACDV = MACD(short, long);
MACDS = ema(MACDV,signal);
var1 = ma(C,5);
var2 = ma(C,10);
var3 = var1-var2;
var4 = ma(C,10);
var5 = ma(C,20);
var6 = var4-var5;
var7 = ma(C,20);
var8 = ma(C,60);
var9 = Var7-Var8;
var10 = ma(C,60);
var11 = ma(C,120);
var12 = Var10-var11;
if t <= 0 and crossup(MACDV,MACDS) Then
{
t = 1;
value1 = 0;
value2 = 0;
Value3 = 0;
Value4 = 0;
if var3 > 0 Then
value1 = 1;
if var6 > 0 Then
value2 = 1;
if Var9 > 0 Then
Value3 = 1;
if var12 > 0 Then
value4 = 1;
if t == 1 and t[1] == 1 then
{
if crossup(var3,0) Then
value1 = value1+1;
if crossup(var6,0) Then
value2 = value2+1;
if crossup(Var9,0) Then
value3 = value3+1;
if crossup(var12,0) Then
value4 = value4+1;
if value1 == 1 and value2 == 1 and value1 == 3 and value2 == 4 and (value1[1] != 1 or value2[1] != 1 value3[1] != 1 or value4[1] != 1) Then
Find(1);
}
이식도 오류가 납니다. 수정부탁해요
2020-02-23
480
글번호 136241
시스템
답변완료
답변을 받았으나 생각했던 대로 구현이 되질 않아서 질문드립니다.
안녕하세요. 아래와 같이 답변을 받았으나 생각처럼 진입이 안되어서 재질문 드립니다
제 설명이 미숙했나봐요ㅜㅜ
# <--- 뒤에 있는 글 처럼 진입하려 하는데 주신 코드에서는 그냥 시초가에 되네요.
# 진입 #
# 매수 진입 #
if DayClose(1)> DayOpen and ExitDate(1) <> date then # 갭상승으로 장 시작하면, 포지션이 없다면
buy("매수", AtLimit, DayClose(1)); # 하락하여 갭을 메우는 순간 (반등을 예측하고) 전날 종가로 매수 진입
# 매도 진입 #
if DayClose(1)< DayOpen and ExitDate(1) <> date then # 갭하락으로 장 시작하면, 포지션이 없다면
sell("매도", AtLimit, DayClose(1)); # 상승하여 갭을 메우는 순간 (하락을 예측하고) 전날 종가로 매도진입
SetStopEndofday(153000);
-----------------------------
안녕하세요
예스스탁입니다.
1
매도가 buy 함수로 작성되어 있어 수정했습니다.
2
청산함수의 최소 매개변수는 1입니다. ExitDate(1)이 가장최근 청산의 날짜입니다.
진입과 관련된 함수만 매개변수 0이 가능합니다.
3
시간청산은 당일청산 함수 이용하시면 됩니다.
4
# 진입 #
# 매수 진입 #
if DayClose(1)> DayOpen and ExitDate(1) <> date then # 갭상승으로 장 시작하면, 첫 진입이라면
buy("매수", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입
# 매도 진입 #
if DayClose(1)< DayOpen and ExitDate(1) <> date then # 갭하락으로 장 시작하면, 첫 진입이라면
sell("매도", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입
SetStopEndofday(153000);
즐거운 하루되세요
> 퀀트드래곤 님이 쓴 글입니다.
> 제목 : 코드 구현이 잘 안되어서 질문올렸습니다.
> ## 전략 ##
# 진입 : 개장시 갭이 발생한 날에 갭을 메우면 갭 방향으로 매수 혹은 매도
# 예) 전일 종가 90, 당일 시초가 100 -> 당일 가격이 90으로 떨어져서 갭을 메우면 매수(다시 위로 간다고 판단)
# 예) 전일 종가 100, 당일 시초가 90 -> 당일 가격이 100으로 올라가서 갭을 메우면 매도(다시 아래로 간다고 판단)
# 청산 : 종가 청산
# 진입조건에 당일 재진입 금지
#-----------------------------------------------------------------------------------------
# 진입 #
# 매수 진입 #
if DayClose(1)> DayOpen and ExitDate <> date then # 갭상승으로 장 시작하면, 첫 진입이라면
buy("매수", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입
# 매도 진입 #
if DayClose(1)< DayOpen and ExitDate <> date then # 갭하락으로 장 시작하면, 첫 진입이라면
buy("매도", AtLimit, DayClose(1)); # 갭을 메우는 순간 전날 종가로 진입
# 장마감 청산
if time > 153000 and MarketPosition == 1 Then
ExitLong("매수청산", OnClose);
if time > 153000 and MarketPosition == -1 Then
ExitShort("매도청산", OnClose);
2020-02-22
490
글번호 136240
시스템
답변완료
문의
안녕하세요. 늘 수고가 많으세요.
아래 수식은 특정가격 돌파 붕괴신호인데요 여기서 각 가격에 n틱의 오차범위내에서 n회 이상 돌파 붕괴일때만 신호가 발생되게 하고 싶습니다.
감사합니다.
input:Price1(2.06),Price2(2.60),Price3(2.60),Price4(2.60),Price5(2.60),Price6(2.60);
if CrossDown(c,Price1) or CrossDown(c,Price2) or CrossDown(c,Price3) or CrossDown(c,Price4) or CrossDown(c,Price5) or CrossDown(c,Price6) Then
sell();
if CrossUp(c,Price1) or CrossUp(c,Price2) or CrossUp(c,Price3) or CrossUp(c,Price4) or CrossUp(c,Price5) or CrossUp(c,Price6) Then
buy();
2020-02-22
384
글번호 136238
시스템