Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.13 KB | None | 0 0
  1. //+----------------------------------------------+
  2. //| Test_SingleCell_001.mq4 |
  3. //| Copyright ゥ 2008, Reshetov |
  4. //| Modyfied by Kamitani&Miyabi |
  5. //+----------------------------------------------+
  6. #property copyright "Copyright ゥ2008, Reshetov,modfy:Kamitani&Miyabi"
  7.  
  8. //---- input parameters
  9. input double x1 = 0.5 ;
  10. input double x2 = 0.5 ;
  11. input double x3 = 0.5 ;
  12. input double x4 = 0.5 ;
  13. input double v = 1;
  14.  
  15. extern int tp = 70;
  16. extern int sl = 70;
  17. extern int mn =888;
  18. //var
  19. static int prevtime = 0;
  20. static double lot = 0.1;
  21.  
  22. //+----------------------------------------------+
  23. //| init() function |
  24. //+----------------------------------------------+
  25. int init(){
  26. return(0);
  27. }
  28. //+----------------------------------------------+
  29. //| start() function |
  30. //+----------------------------------------------+
  31. int start(){
  32. int youbi=DayOfWeek();
  33. int jikan=Hour();
  34. if (youbi==5 && jikan>=13) int TimeOK=0;
  35. else TimeOK=1;
  36. if (youbi==5 && jikan>=17) ClosePositions();
  37. //----
  38. if (Time[0] == prevtime) return(0);
  39. prevtime = Time[0];
  40.  
  41. int total = OrdersTotal();
  42. for (int i = 0; i < total; i++) {
  43. if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==false)return(0);
  44. if (OrderSymbol()==Symbol() && OrderMagicNumber()==mn)return(0);
  45. }
  46. //+----------------------------------------------+
  47. int ticket = -1;
  48. RefreshRates();
  49.  
  50. if (perceptron()<0 && TimeOK==1) {
  51. ticket = OrderSend(Symbol(),OP_SELL,lot,Bid,10,Ask+sl*Point,
  52. Ask-tp*Point,"Percep",mn,0,Red);
  53. if (ticket < 0) again();
  54. }
  55. if (perceptron()>0 && TimeOK==1) {
  56. ticket = OrderSend(Symbol(),OP_BUY,lot,Ask,10,Bid-sl*Point,
  57. Bid+tp*Point,"Percep",mn,0,Blue);
  58. if (ticket < 0) again();
  59. }
  60. //----
  61. return(0);
  62. }
  63.  
  64. //+----------------------------------------------+
  65. double perceptron(){
  66. double NET=0;
  67. double w1,w2,w3,w4;
  68. w1=x1;w2=x2;w3=x3;w4=x4;
  69. NET=iAC(NULL,0,0)*w1+iAC(NULL,0,7)*w2+iAC(NULL,0,14)*w3+iAC(NULL,0,21)*w4-v;
  70. //NET*=0.2; //活性化関数の変形数値
  71. Print("ニューロンout", DoubleToStr(NET,8));
  72. return((exp(NET)-exp(-NET))/(exp(NET)+exp(-NET)));
  73. }
  74. /*/+----------------------------------------------+
  75. double perceptron(){
  76. double w1=x1-100;
  77. double w2=x2-100;
  78. double w3=x3-100;
  79. double w4=x4-100;
  80. double a1=iAC(Symbol(),0,0);
  81. double a2=iAC(Symbol(),0,7);
  82. double a3=iAC(Symbol(),0,14);
  83. double a4=iAC(Symbol(),0,21);
  84. return (w1*a1+w2*a2+w3*a3+w4*a4);
  85. }
  86. //+-----------------------------------------------+*/
  87. void again() {
  88. prevtime = Time[1];
  89. Sleep(30000);
  90. }
  91. //+----------------------------------------------+
  92. void ClosePositions(){
  93. for(int ii=0; ii<OrdersTotal(); ii++){
  94. if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES)==false) break;
  95. if(OrderMagicNumber() != mn || OrderSymbol() != Symbol()){
  96. continue;
  97. }
  98. //Check of Odre Type
  99. if(OrderType()==OP_BUY){
  100. if(OrderClose(OrderTicket(),OrderLots(),Bid,20,White)==false)break;
  101. }
  102. if(OrderType()==OP_SELL){
  103. if(OrderClose(OrderTicket(),OrderLots(),Ask,20,White)==false)break;
  104. }
  105. }
  106. }
  107. //+----------------------------------------------+
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement