Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //+----------------------------------------------+
- //| Test_SingleCell_001.mq4 |
- //| Copyright ゥ 2008, Reshetov |
- //| Modyfied by Kamitani&Miyabi |
- //+----------------------------------------------+
- #property copyright "Copyright ゥ2008, Reshetov,modfy:Kamitani&Miyabi"
- //---- input parameters
- input double x1 = 0.5 ;
- input double x2 = 0.5 ;
- input double x3 = 0.5 ;
- input double x4 = 0.5 ;
- input double v = 1;
- extern int tp = 70;
- extern int sl = 70;
- extern int mn =888;
- //var
- static int prevtime = 0;
- static double lot = 0.1;
- //+----------------------------------------------+
- //| init() function |
- //+----------------------------------------------+
- int init(){
- return(0);
- }
- //+----------------------------------------------+
- //| start() function |
- //+----------------------------------------------+
- int start(){
- int youbi=DayOfWeek();
- int jikan=Hour();
- if (youbi==5 && jikan>=13) int TimeOK=0;
- else TimeOK=1;
- if (youbi==5 && jikan>=17) ClosePositions();
- //----
- if (Time[0] == prevtime) return(0);
- prevtime = Time[0];
- int total = OrdersTotal();
- for (int i = 0; i < total; i++) {
- if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false)return(0);
- if (OrderSymbol()==Symbol() && OrderMagicNumber()==mn)return(0);
- }
- //+----------------------------------------------+
- int ticket = -1;
- RefreshRates();
- if (perceptron()<0 && TimeOK==1) {
- ticket = OrderSend(Symbol(),OP_SELL,lot,Bid,10,Ask+sl*Point,
- Ask-tp*Point,"Percep",mn,0,Red);
- if (ticket < 0) again();
- }
- if (perceptron()>0 && TimeOK==1) {
- ticket = OrderSend(Symbol(),OP_BUY,lot,Ask,10,Bid-sl*Point,
- Bid+tp*Point,"Percep",mn,0,Blue);
- if (ticket < 0) again();
- }
- //----
- return(0);
- }
- //+----------------------------------------------+
- double perceptron(){
- double NET=0;
- double w1,w2,w3,w4;
- w1=x1;w2=x2;w3=x3;w4=x4;
- NET=iAC(NULL,0,0)*w1+iAC(NULL,0,7)*w2+iAC(NULL,0,14)*w3+iAC(NULL,0,21)*w4-v;
- //NET*=0.2; //活性化関数の変形数値
- Print("ニューロンout", DoubleToStr(NET,8));
- return((exp(NET)-exp(-NET))/(exp(NET)+exp(-NET)));
- }
- /*/+----------------------------------------------+
- double perceptron(){
- double w1=x1-100;
- double w2=x2-100;
- double w3=x3-100;
- double w4=x4-100;
- double a1=iAC(Symbol(),0,0);
- double a2=iAC(Symbol(),0,7);
- double a3=iAC(Symbol(),0,14);
- double a4=iAC(Symbol(),0,21);
- return (w1*a1+w2*a2+w3*a3+w4*a4);
- }
- //+-----------------------------------------------+*/
- void again() {
- prevtime = Time[1];
- Sleep(30000);
- }
- //+----------------------------------------------+
- void ClosePositions(){
- for(int ii=0; ii<OrdersTotal(); ii++){
- if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES)==false) break;
- if(OrderMagicNumber() != mn || OrderSymbol() != Symbol()){
- continue;
- }
- //Check of Odre Type
- if(OrderType()==OP_BUY){
- if(OrderClose(OrderTicket(),OrderLots(),Bid,20,White)==false)break;
- }
- if(OrderType()==OP_SELL){
- if(OrderClose(OrderTicket(),OrderLots(),Ask,20,White)==false)break;
- }
- }
- }
- //+----------------------------------------------+
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement