커뮤니티

문의

프로필 이미지
구다이전설
2019-06-17 17:39:29
187
글번호 129516
답변완료
청산식 조합 했는데 돌아 가는것도 있고 않되는 것도 있네요 수정좀 부탁 합니다 Input : BuyATRP(46),SellATRP(6),BuyATRS1(2.5),BuyATRS2(4.0),BuyATRS3(4.0),SellATRS1(3.5),SellATRS2(6.0),SellATRS3(6.0); Input : BuyStoploss(12), SellStoploss(6), BuyTrailing(5), BuyFloor(20), SellTrailing(5),SellFloor(8.5); Input:break(1.9),level(0.3),big(8),sbreak(1.9),slevel(0.3),sbig(8); var:진입후최고가(0),진입후최저가(0); If MarketPosition == 1 Then { 진입후최고가 = Highest(H,BarsSinceEntry + 1); ExitLong("매수추적",AtStop,진입후최고가 - ATR(BuyATRP) * BuyATRS1); ExitLong("매수변동성",AtStop,C - ATR(BuyATRP) * BuyATRS2); If 진입후최고가 >= Entryprice + ATR(BuyATRP) * break Then { ExitLong("매수손익분기",AtStop,Entryprice + ATR(BuyATRP) * level); ExitLong("매수추적1",AtStop,진입후최고가 - ATR(BuyATRP) * BuyATRS3); } If 진입후최고가 >= Entryprice + ATR(BuyATRP) * big Then { ExitLong("매수초과수익",AtStop,Lowest(L,3)); } SetStopLoss(BuyStoploss, PointStop); SetStopTrailing(BuyTrailing,BuyFloor,PointStop); If MarketPosition == 0 Then { // 無포일 때 손절 설정을 clear 해야 만 오류가 안 생김 SetStopLoss(0, PointStop); SetStopTrailing(0, 0, PointStop); } If MarketPosition == -1 Then { 진입후최저가 = Lowest(L,BarsSinceEntry + 1); ExitShort("매도추적",AtStop,진입후최저가 + ATR(SellATRP) * SellATRS1); ExitShort("매도변동성",AtStop,C + ATR(SellATRP) * SellATRS2); If 진입후최저가 <= Entryprice - ATR(SellATRP) * sbreak Then { ExitShort("매도손익분기",AtStop,Entryprice - ATR(SellATRP) * slevel); ExitShort("매도추적1",AtStop,진입후최저가 + ATR(SellATRP) * SellATRS3); } If 진입후최저가 <= Entryprice - ATR(SellATRP) * sbig Then { ExitShort("매도초과수익",AtStop,Highest(H,3)); } SetStopLoss(SellStoploss, PointStop); SetStopTrailing(SellTrailing,SellFloor,PointStop); If MarketPosition == 0 Then { // 無포일 때 손절 설정을 clear 해야 만 오류가 안 생김 SetStopLoss(0, PointStop); SetStopTrailing(0, 0, PointStop); } If MarketPosition == 1 Then ExitLong("스파이크청산-1", AtLimit, C + ATR(20) * 7); // 상승돌파 시 매수청산 } If MarketPosition == -1 Then Exitshort("스파이크청산+1", AtLimit, C - ATR(20) * 7); // 상승돌파 시 매도청산 } Var:SpikeHigh(0), spikelow(0); If MarketPosition == 0 Then { // 무포지션일때 SpikeHigh = 10; // 초기화 Condition1 = false; } If MarketPosition == 1 Then { // 매수포지션일 때 If !Condition1 and // 스파이크 미발생 H > C[1] + ATR(20) * 7 Then { // 전봉 종가보다 7 * ATR 이상 상승 SpikeHigh = H; // 스파이크 고점 설정 Condition1 = true; // 스파이크 발생 } If Condition1 Then { // 스파이크 발생 후 If SpikeHigh < H then SpikeHigh = H; // 신규 고점 나오면 갱신 ExitLong("스파이크청산-2", AtStop, SpikeHigh - ATR(20) * 2); //추적청산처럼 꼭지 찍고 내려올 때 If MarketPosition == 0 Then { // 무포지션일때 Spikelow = 10; // 초기화 Condition1 = false; } If MarketPosition == -1 Then { // 매수포지션일 때 If !Condition1 and // 스파이크 미발생 L < C[1] + ATR(20) * 7 Then { // 전봉 종가보다 7 * ATR 이상 상승 SpikeHigh = L; // 스파이크 고점 설정 Condition1 = true; // 스파이크 발생 } If Condition1 Then { // 스파이크 발생 후 If Spikelow > H then SpikeHigh = L; // 신규 고점 나오면 갱신 Exitshort("스파이크low청산-2", AtStop, Spikelow + ATR(20) * 2); } } } }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-06-18 10:21:47

안녕하세요 예스스탁입니다. 수식에 { }사용에 많은 오류가 있습니다/ 또한 MarketPosition == 1 or MarketPosition == -1 조건과 MarketPosition == 0이 하나로 묶여 있어 성립할수 없는 조건이 되는 부분도 있습니다. { }부분만 정리해 드립니다. 정리해 드린 수식으로 신호가 발생하지 않으면 설정한 조건내용을 직접 살펴보셔야 합니다. 저희가 해당 부분은 알수가 없습니다. Input : BuyATRP(46),SellATRP(6),BuyATRS1(2.5),BuyATRS2(4.0),BuyATRS3(4.0),SellATRS1(3.5),SellATRS2(6.0),SellATRS3(6.0); Input : BuyStoploss(12), SellStoploss(6), BuyTrailing(5), BuyFloor(20), SellTrailing(5),SellFloor(8.5); Input:break(1.9),level(0.3),big(8),sbreak(1.9),slevel(0.3),sbig(8); var:진입후최고가(0),진입후최저가(0); If MarketPosition == 1 Then { 진입후최고가 = Highest(H,BarsSinceEntry + 1); ExitLong("매수추적",AtStop,진입후최고가 - ATR(BuyATRP) * BuyATRS1); ExitLong("매수변동성",AtStop,C - ATR(BuyATRP) * BuyATRS2); If 진입후최고가 >= Entryprice + ATR(BuyATRP) * break Then { ExitLong("매수손익분기",AtStop,Entryprice + ATR(BuyATRP) * level); ExitLong("매수추적1",AtStop,진입후최고가 - ATR(BuyATRP) * BuyATRS3); } If 진입후최고가 >= Entryprice + ATR(BuyATRP) * big Then { ExitLong("매수초과수익",AtStop,Lowest(L,3)); } SetStopLoss(BuyStoploss, PointStop); SetStopTrailing(BuyTrailing,BuyFloor,PointStop); } If MarketPosition == -1 Then { 진입후최저가 = Lowest(L,BarsSinceEntry + 1); ExitShort("매도추적",AtStop,진입후최저가 + ATR(SellATRP) * SellATRS1); ExitShort("매도변동성",AtStop,C + ATR(SellATRP) * SellATRS2); If 진입후최저가 <= Entryprice - ATR(SellATRP) * sbreak Then { ExitShort("매도손익분기",AtStop,Entryprice - ATR(SellATRP) * slevel); ExitShort("매도추적1",AtStop,진입후최저가 + ATR(SellATRP) * SellATRS3); } If 진입후최저가 <= Entryprice - ATR(SellATRP) * sbig Then { ExitShort("매도초과수익",AtStop,Highest(H,3)); } SetStopLoss(SellStoploss, PointStop); SetStopTrailing(SellTrailing,SellFloor,PointStop); } If MarketPosition == 0 Then { // 無포일 때 손절 설정을 clear 해야 만 오류가 안 생김 SetStopLoss(0, PointStop); SetStopTrailing(0, 0, PointStop); } If MarketPosition == 1 Then ExitLong("스파이크청산-1", AtLimit, C + ATR(20) * 7); // 상승돌파 시 매수청산 If MarketPosition == -1 Then Exitshort("스파이크청산+1", AtLimit, C - ATR(20) * 7); // 상승돌파 시 매도청산 Var:SpikeHigh(0), spikelow(0); If MarketPosition == 0 Then { // 무포지션일때 SpikeHigh = 10; // 초기화 Spikelow = 10; // 초기화 Condition1 = false; } If MarketPosition == 1 Then { // 매수포지션일 때 If !Condition1 and // 스파이크 미발생 H > C[1] + ATR(20) * 7 Then { // 전봉 종가보다 7 * ATR 이상 상승 SpikeHigh = H; // 스파이크 고점 설정 Condition1 = true; // 스파이크 발생 } If Condition1 Then { // 스파이크 발생 후 If SpikeHigh < H then SpikeHigh = H; // 신규 고점 나오면 갱신 ExitLong("스파이크청산-2", AtStop, SpikeHigh - ATR(20) * 2); //추적청산처럼 꼭지 찍고 내려올 때 } } If MarketPosition == -1 Then { // 매수포지션일 때 If !Condition1 and // 스파이크 미발생 L < C[1] + ATR(20) * 7 Then { // 전봉 종가보다 7 * ATR 이상 상승 SpikeHigh = L; // 스파이크 고점 설정 Condition1 = true; // 스파이크 발생 } If Condition1 Then { // 스파이크 발생 후 If Spikelow > H then SpikeHigh = L; // 신규 고점 나오면 갱신 Exitshort("스파이크low청산-2", AtStop, Spikelow + ATR(20) * 2); } } 즐거운 하루되세요 > 구다이전설 님이 쓴 글입니다. > 제목 : 문의 > 청산식 조합 했는데 돌아 가는것도 있고 않되는 것도 있네요 수정좀 부탁 합니다 Input : BuyATRP(46),SellATRP(6),BuyATRS1(2.5),BuyATRS2(4.0),BuyATRS3(4.0),SellATRS1(3.5),SellATRS2(6.0),SellATRS3(6.0); Input : BuyStoploss(12), SellStoploss(6), BuyTrailing(5), BuyFloor(20), SellTrailing(5),SellFloor(8.5); Input:break(1.9),level(0.3),big(8),sbreak(1.9),slevel(0.3),sbig(8); var:진입후최고가(0),진입후최저가(0); If MarketPosition == 1 Then { 진입후최고가 = Highest(H,BarsSinceEntry + 1); ExitLong("매수추적",AtStop,진입후최고가 - ATR(BuyATRP) * BuyATRS1); ExitLong("매수변동성",AtStop,C - ATR(BuyATRP) * BuyATRS2); If 진입후최고가 >= Entryprice + ATR(BuyATRP) * break Then { ExitLong("매수손익분기",AtStop,Entryprice + ATR(BuyATRP) * level); ExitLong("매수추적1",AtStop,진입후최고가 - ATR(BuyATRP) * BuyATRS3); } If 진입후최고가 >= Entryprice + ATR(BuyATRP) * big Then { ExitLong("매수초과수익",AtStop,Lowest(L,3)); } SetStopLoss(BuyStoploss, PointStop); SetStopTrailing(BuyTrailing,BuyFloor,PointStop); If MarketPosition == 0 Then { // 無포일 때 손절 설정을 clear 해야 만 오류가 안 생김 SetStopLoss(0, PointStop); SetStopTrailing(0, 0, PointStop); } If MarketPosition == -1 Then { 진입후최저가 = Lowest(L,BarsSinceEntry + 1); ExitShort("매도추적",AtStop,진입후최저가 + ATR(SellATRP) * SellATRS1); ExitShort("매도변동성",AtStop,C + ATR(SellATRP) * SellATRS2); If 진입후최저가 <= Entryprice - ATR(SellATRP) * sbreak Then { ExitShort("매도손익분기",AtStop,Entryprice - ATR(SellATRP) * slevel); ExitShort("매도추적1",AtStop,진입후최저가 + ATR(SellATRP) * SellATRS3); } If 진입후최저가 <= Entryprice - ATR(SellATRP) * sbig Then { ExitShort("매도초과수익",AtStop,Highest(H,3)); } SetStopLoss(SellStoploss, PointStop); SetStopTrailing(SellTrailing,SellFloor,PointStop); If MarketPosition == 0 Then { // 無포일 때 손절 설정을 clear 해야 만 오류가 안 생김 SetStopLoss(0, PointStop); SetStopTrailing(0, 0, PointStop); } If MarketPosition == 1 Then ExitLong("스파이크청산-1", AtLimit, C + ATR(20) * 7); // 상승돌파 시 매수청산 } If MarketPosition == -1 Then Exitshort("스파이크청산+1", AtLimit, C - ATR(20) * 7); // 상승돌파 시 매도청산 } Var:SpikeHigh(0), spikelow(0); If MarketPosition == 0 Then { // 무포지션일때 SpikeHigh = 10; // 초기화 Condition1 = false; } If MarketPosition == 1 Then { // 매수포지션일 때 If !Condition1 and // 스파이크 미발생 H > C[1] + ATR(20) * 7 Then { // 전봉 종가보다 7 * ATR 이상 상승 SpikeHigh = H; // 스파이크 고점 설정 Condition1 = true; // 스파이크 발생 } If Condition1 Then { // 스파이크 발생 후 If SpikeHigh < H then SpikeHigh = H; // 신규 고점 나오면 갱신 ExitLong("스파이크청산-2", AtStop, SpikeHigh - ATR(20) * 2); //추적청산처럼 꼭지 찍고 내려올 때 If MarketPosition == 0 Then { // 무포지션일때 Spikelow = 10; // 초기화 Condition1 = false; } If MarketPosition == -1 Then { // 매수포지션일 때 If !Condition1 and // 스파이크 미발생 L < C[1] + ATR(20) * 7 Then { // 전봉 종가보다 7 * ATR 이상 상승 SpikeHigh = L; // 스파이크 고점 설정 Condition1 = true; // 스파이크 발생 } If Condition1 Then { // 스파이크 발생 후 If Spikelow > H then SpikeHigh = L; // 신규 고점 나오면 갱신 Exitshort("스파이크low청산-2", AtStop, Spikelow + ATR(20) * 2); } } } }