1. 퍼셉트론에 대해
퍼셉트론에 대한 자세한 내용은 Dr. Mark Humphrys의 단층 신경망을 참고하세요.
저는 퍼셉트론의 논리를 인공지능이라고 표현했습니다.
2. 알고리즘
2.1. 입력값
w1, w2, w3, w4는 최적화에 의해 결정된 값으로 설정된 가중치입니다.
input int x1 = 0;// weight1 input int x2 = 0;// weight2 input int x3 = 0;// weight3 input int x4 = 0;// weight4
2.2. 퍼셉트론
간단한 EA를 만들 때, 임계값은 0입니다. 출력값은 "발사" 시 1, "비발사" 시 0으로 변하지 않습니다.

double w1 = x1 - 100; double w2 = x2 - 100; double w3 = x3 - 100; double w4 = x4 - 100; // 퍼셉트론 이전 바 2017/03/18 double a11 = ((iRSI(Symbol(), 0, 12,PRICE_MEDIAN,1))/100-0.5)*2; double a21 = ((iRSI(Symbol(), 0, 36,PRICE_MEDIAN,1))/100-0.5)*2; double a31 = ((iRSI(Symbol(), 0, 108,PRICE_MEDIAN,1))/100-0.5)*2; double a41 = ((iRSI(Symbol(), 0, 324,PRICE_MEDIAN,1))/100-0.5)*2; double Current_Percptron = (w1 * a11 + w2 * a21 + w3 * a31 + w4 * a41); // 퍼셉트론 이전 두 바 2017/03/18 double a12 = ((iRSI(Symbol(), 0, 12,PRICE_MEDIAN,2))/100-0.5)*2; double a22 = ((iRSI(Symbol(), 0, 36,PRICE_MEDIAN,2))/100-0.5)*2; double a32 = ((iRSI(Symbol(), 0, 108,PRICE_MEDIAN,2))/100-0.5)*2; double a42 = ((iRSI(Symbol(), 0, 324,PRICE_MEDIAN,2))/100-0.5)*2; double Pre_Percptron = (w1 * a12 + w2 * a22 + w3 * a32 + w4 * a42);
이 EA에서는 RSI를 사용하지만, 다른 오실레이터인 RCI, W%R 등도 괜찮습니다.
2.3. 주문 개시 및 종료
이전 퍼셉트론이 0보다 낮고 현재 퍼셉트론이 0보다 높을 때, 짧은 포지션이 있다면 이를 종료합니다.
그리고 EA가 긴 주문을 보냅니다.
if(Pre_Percptron < 0 && Current_Percptron > 0) // 롱 신호 { // 짧은 포지션이 있다면, 주문 종료 if(pos < 0) { ret = OrderClose(Ticket, OrderLots(), OrderClosePrice(), 0); if(ret) pos = 0; // 주문 종료가 성공하면 포지션 상태는 제로 } // 포지션이 없다면, 롱 주문 발송 if(pos == 0) Ticket = OrderSend( _Symbol, // 심볼 OP_BUY, // 작업 Lots, // 볼륨 Ask, // 가격 0, // 슬리피지 0, // 손절매 0, // 이익 실현 Trade_Comment, // 코멘트 MagicNumber,// 매직 넘버 0, // 보류 주문 만료 Green // 색상 ); }
반면 현재 퍼셉트론이 0보다 낮고 이전 퍼셉트론이 0보다 높을 경우, 롱 포지션이 있다면 종료합니다.
그리고 EA가 숏 주문을 보냅니다.
3. 최적화
"Slime_Mold_RSI_template.set"을 로드하고, 모델에 대해 "오픈 가격만"을 선택하세요.


4. 코멘트 및 매직 넘버
저는 최적화에 사용된 기간을 매직 넘버로 설정했으며, 이 EA는 코멘트에 매직 넘버를 사용합니다.
string Trade_Comment = IntegerToString(MagicNumber,5,' ') + "Days-Optimization";

5. 관련 기사 (일본어)
https://qiita.com/Kei-Sanada/items/cd6b8d9c02bc9eea1e01