커뮤니티

수식 수정 부탁드립니다.

프로필 이미지
브루펜
2022-03-22 01:54:01
1037
글번호 157363
답변완료
페어트레이딩 관련 수식인데요, 예스랭귀지 편집기에서 검증을 해보니 수많은 오류가 뜨네요 오류가 뜨는 부분 수정 부탁드립니다. 수식은 아래와 같습니다. 감사합니다. ---아 래---- //===♠페어트레이딩_ INPUT : ※수량이음수이면_매도(0); INPUT : 진입_일자(20190325), 진입_시간(193000); INPUT : D1_진입가(2808.25), D2_진입가(25553); INPUT : D1_수량(1), D2_수량(-1.4); // 실재 매매시는 2개와 3개 INPUT : ※_수수료는_편도(5); INPUT : D1_수수료(5), D2_수수료(5), 환율(1180); INPUT : 손익원화환산1(1); // 달러 표시 손익일 경우 환산 여부 지정 INPUT : 손익_상단(1572), 손익_하단(-1914); //=== 변수 선언 === var : D1현재가(0), D2현재가(0); //=== 현재가 지정 === D1현재가 = Data1(c); D2현재가 = Data2(c); //=== 틱단위와 틱가치 대입 === var : D1틱단위(0), D1틱가치(0); var : D2틱단위(0), D2틱가치(0); D1틱단위 = data1(PriceScale); D2틱단위 = data2(PriceScale); D1틱가치 = data1(PointValue); D2틱가치 = data2(PointValue); //=== 손익 산출 === var : D1손익(0), D2손익(0), 손익소계(0), 순손익(0); var : D1수수료(0), D2수수료(0), 수수료소계(0); //==== _손익 산출 D1손익 = ((D1현재가 - D1_진입가) / D1틱단위 * D1틱가치 * D1_수량); D2손익 = ((D2현재가 - D2_진입가) / D2틱단위 * D2틱가치 * D2_수량); 손익소계 = D1손익 + D2손익; D1수수료 = abs(D1_수량 * D1_수수료 * 2); //왕복 D2수수료 = abs(D2_수량 * D2_수수료 * 2); 수수료소계 = D1수수료 + D2수수료; 순손익 = 손익소계 - 수수료소계; //===원화 환산. 금액 단위 천원 iF 손익원화환산1 == 1 Then 순손익 = (순손익 * 환율) / 1000; //===== 손익 이평선 ===== Input : 소이평값(5), 중이평값(20), 대이평값(60); var : 소이평(0), 중이평(0), 대이평(0); 소이평 = ma(순손익, 소이평값); 중이평 = ma(순손익, 중이평값); 대이평 = ma(순손익, 대이평값); //=== 손익의 10 구간 계산 var : 중간선(0), 십등분(0); var : 이부선(0), 사부선(0), 육부선(0), 팔부선(0), 방향색(0); 중간선 = (손익_상단 + 손익_하단) / 2; 십등분 = (손익_상단 - 손익_하단) / 10; 이부선 = 손익_하단 + 십등분*2; 사부선 = 손익_하단 + 십등분*4; 육부선 = 손익_하단 + 십등분*6; 팔부선 = 손익_하단 + 십등분*8; //==== 방향표시바 색지정 if 순손익 >= 손익_상단 then 방향색 = RGB(0, 0, 217); // 진청 if 순손익 < 손익_상단 and 순손익 >= 팔부선 then 방향색 = RGB(0, 128, 255); // 연청 if 순손익 < 팔부선 and 순손익 >= 육부선 then 방향색 = RGB(0, 230, 230); //하늘색 if 순손익 < 육부선 and 순손익 >= 사부선 then 방향색 = RGB(0, 204, 0); //녹색 if 순손익 < 사부선 and 순손익 >= 이부선 then 방향색 = RGB(255, 128, 0); //주황 if 순손익 < 이부선 and 순손익 >= 손익_하단 then 방향색 = RGB(255, 128, 192); //연핑크 if 순손익 < 손익_하단 then 방향색 = RGB(255, 0, 255); //진핑크 //========지표의 출력 ============== //--지정일 지정시간 이후 지표 출력을 위한 것 if Condition1 == false and sDate >= 진입_일자 and sTime >= 진입_시간 Then Condition1 = true; if Condition1 == true Then { plot13(순손익, "순손익"); plot16(소이평, "소이평"); plot17(중이평, "중이평"); plot18(대이평, "대이평"); } //==== 손익 상단 하단 출력 및 음성 안내 ========= Input : 음성안내ON1(1); If 손익_상단 <= 순손익 Then { plot21(손익_상단, "손익_상단선"); If 음성안내ON1 == 1 Then playsound("C:₩____Mysound₩11₩풀룻Flute.WAV"); } If 손익_하단 >= 순손익 Then { plot22(손익_하단, "손익_하단선"); If 음성안내ON1 == 1 Then playsound("C:₩____Mysound₩11₩풀룻Flute.WAV"); } if 순손익 >= 이부선 and 순손익 <= 사부선 Then plot23(중간선, "중간선"); //==== 방향바 출력 ======= plot24(0, "■방향바", 방향색); /* //==== 데이터 검증영역 ===== plot41(D1손익, "D1 손익"); plot42(D2손익, "D2 손익"); plot43(손익소계, "손익소계"); plot44(수수료소계, "수수료합계"); Plot51(D1틱단위, "D1틱단위"); Plot52(D1틱가치, "D1틱가치"); Plot53(D2틱단위, "D2틱단위"); Plot54(D2틱가치, "D2틱가치"); Plot61(D1_진입가, "●D1진입가"); Plot62(D2_진입가, "○D2진입가"); Plot63(D1_수량, "■D1수량"); Plot64(D2_수량, "□D2수량"); Plot65(D1_수수료, "▲D1_수수료"); Plot66(D2_수수료, "△D2_수수료"); plot67(손익_상단, "@@손익_상단"); plot68(손익_하단, "@@손익_하단");
사용자 함수
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-03-22 12:35:35

안녕하세요 예스스탁입니다. 올려주신식은 지표식입니다. 검증해 보았지만 오류가 없습니다. 편집창 종류 확인하시기 바랍니다. 즐거운 하루되세요 > 브루펜 님이 쓴 글입니다. > 제목 : 수식 수정 부탁드립니다. > 페어트레이딩 관련 수식인데요, 예스랭귀지 편집기에서 검증을 해보니 수많은 오류가 뜨네요 오류가 뜨는 부분 수정 부탁드립니다. 수식은 아래와 같습니다. 감사합니다. ---아 래---- //===♠페어트레이딩_ INPUT : ※수량이음수이면_매도(0); INPUT : 진입_일자(20190325), 진입_시간(193000); INPUT : D1_진입가(2808.25), D2_진입가(25553); INPUT : D1_수량(1), D2_수량(-1.4); // 실재 매매시는 2개와 3개 INPUT : ※_수수료는_편도(5); INPUT : D1_수수료(5), D2_수수료(5), 환율(1180); INPUT : 손익원화환산1(1); // 달러 표시 손익일 경우 환산 여부 지정 INPUT : 손익_상단(1572), 손익_하단(-1914); //=== 변수 선언 === var : D1현재가(0), D2현재가(0); //=== 현재가 지정 === D1현재가 = Data1(c); D2현재가 = Data2(c); //=== 틱단위와 틱가치 대입 === var : D1틱단위(0), D1틱가치(0); var : D2틱단위(0), D2틱가치(0); D1틱단위 = data1(PriceScale); D2틱단위 = data2(PriceScale); D1틱가치 = data1(PointValue); D2틱가치 = data2(PointValue); //=== 손익 산출 === var : D1손익(0), D2손익(0), 손익소계(0), 순손익(0); var : D1수수료(0), D2수수료(0), 수수료소계(0); //==== _손익 산출 D1손익 = ((D1현재가 - D1_진입가) / D1틱단위 * D1틱가치 * D1_수량); D2손익 = ((D2현재가 - D2_진입가) / D2틱단위 * D2틱가치 * D2_수량); 손익소계 = D1손익 + D2손익; D1수수료 = abs(D1_수량 * D1_수수료 * 2); //왕복 D2수수료 = abs(D2_수량 * D2_수수료 * 2); 수수료소계 = D1수수료 + D2수수료; 순손익 = 손익소계 - 수수료소계; //===원화 환산. 금액 단위 천원 iF 손익원화환산1 == 1 Then 순손익 = (순손익 * 환율) / 1000; //===== 손익 이평선 ===== Input : 소이평값(5), 중이평값(20), 대이평값(60); var : 소이평(0), 중이평(0), 대이평(0); 소이평 = ma(순손익, 소이평값); 중이평 = ma(순손익, 중이평값); 대이평 = ma(순손익, 대이평값); //=== 손익의 10 구간 계산 var : 중간선(0), 십등분(0); var : 이부선(0), 사부선(0), 육부선(0), 팔부선(0), 방향색(0); 중간선 = (손익_상단 + 손익_하단) / 2; 십등분 = (손익_상단 - 손익_하단) / 10; 이부선 = 손익_하단 + 십등분*2; 사부선 = 손익_하단 + 십등분*4; 육부선 = 손익_하단 + 십등분*6; 팔부선 = 손익_하단 + 십등분*8; //==== 방향표시바 색지정 if 순손익 >= 손익_상단 then 방향색 = RGB(0, 0, 217); // 진청 if 순손익 < 손익_상단 and 순손익 >= 팔부선 then 방향색 = RGB(0, 128, 255); // 연청 if 순손익 < 팔부선 and 순손익 >= 육부선 then 방향색 = RGB(0, 230, 230); //하늘색 if 순손익 < 육부선 and 순손익 >= 사부선 then 방향색 = RGB(0, 204, 0); //녹색 if 순손익 < 사부선 and 순손익 >= 이부선 then 방향색 = RGB(255, 128, 0); //주황 if 순손익 < 이부선 and 순손익 >= 손익_하단 then 방향색 = RGB(255, 128, 192); //연핑크 if 순손익 < 손익_하단 then 방향색 = RGB(255, 0, 255); //진핑크 //========지표의 출력 ============== //--지정일 지정시간 이후 지표 출력을 위한 것 if Condition1 == false and sDate >= 진입_일자 and sTime >= 진입_시간 Then Condition1 = true; if Condition1 == true Then { plot13(순손익, "순손익"); plot16(소이평, "소이평"); plot17(중이평, "중이평"); plot18(대이평, "대이평"); } //==== 손익 상단 하단 출력 및 음성 안내 ========= Input : 음성안내ON1(1); If 손익_상단 <= 순손익 Then { plot21(손익_상단, "손익_상단선"); If 음성안내ON1 == 1 Then playsound("C:₩____Mysound₩11₩풀룻Flute.WAV"); } If 손익_하단 >= 순손익 Then { plot22(손익_하단, "손익_하단선"); If 음성안내ON1 == 1 Then playsound("C:₩____Mysound₩11₩풀룻Flute.WAV"); } if 순손익 >= 이부선 and 순손익 <= 사부선 Then plot23(중간선, "중간선"); //==== 방향바 출력 ======= plot24(0, "■방향바", 방향색); /* //==== 데이터 검증영역 ===== plot41(D1손익, "D1 손익"); plot42(D2손익, "D2 손익"); plot43(손익소계, "손익소계"); plot44(수수료소계, "수수료합계"); Plot51(D1틱단위, "D1틱단위"); Plot52(D1틱가치, "D1틱가치"); Plot53(D2틱단위, "D2틱단위"); Plot54(D2틱가치, "D2틱가치"); Plot61(D1_진입가, "●D1진입가"); Plot62(D2_진입가, "○D2진입가"); Plot63(D1_수량, "■D1수량"); Plot64(D2_수량, "□D2수량"); Plot65(D1_수수료, "▲D1_수수료"); Plot66(D2_수수료, "△D2_수수료"); plot67(손익_상단, "@@손익_상단"); plot68(손익_하단, "@@손익_하단");