pnn-system-1

Author: Paco Hern�ndez G�mez
Price Data Components
Series array that contains close prices for each bar
Orders Execution
Checks for the total of open ordersIt automatically opens orders when conditions are reached
0 Views
0 Downloads
0 Favorites
pnn-system-1
//+------------------------------------------------------------------+
//| Example system using trained probabilistic neural network (PNN)  |
//|                                                                  |
//|                                                 PNN System 1.mq4 |
//|                                             Paco Hernández Gómez |
//|                                    http://www.hernandezgomez.com |
//+------------------------------------------------------------------+
#property copyright "Paco Hernández Gómez"
#property link      "http://www.hernandezgomez.com"

// Import PNN library
#import "PNN.ex4"
   void PNNInit();
   void PNNLoad();
   void PNNSave();
   void PNNAddVector(int class, double vector[]);
   int PNNClassifyVector(double vector[]);
#import

/**
 * In this system there is always an open position, either buy or sell.
 */
 
/**
 * Take profits at 18 pips.
 */
extern int LIMIT = 18;

/**
 * Take loses at 54 pips.
 */
extern int STOP_LOSS = 54;

/**
 * Load the trained PNN
 */
int init() {
   PNNLoad();
   return(0);
}

/**
 * Operate the system using the PNN
 */
int start() {
   
   int total;
   total = OrdersTotal();

   // If there is not an opened position
   if (total == 0) {

      double data[60];

      // Calculate the vector to classify using the trading system criteria
      for (int i = 0; i < 60; i++) {
         data[i] = (iClose(Symbol(), PERIOD_M15, i) - iClose(Symbol(), PERIOD_M15, i + 1)) / Point;
      }

      // Use the PNN to classify the vector
      int class = PNNClassifyVector(data);
      
      // If PNN classifies the vector as a buying position
      if (class == 0) {

         // Open a new buying position
         OrderSend(Symbol(), OP_BUY, 0.1, Ask, 3, Ask - STOP_LOSS * Point, Ask + LIMIT * Point, NULL, 16384, 0, Green);
      }

      // If PNN classifies the vector as a selling position
      else if (class != 0) {

         // Open a new selling position
         OrderSend(Symbol(), OP_SELL, 0.1, Bid, 3, Bid + STOP_LOSS * Point, Bid - LIMIT * Point, NULL, 16384, 0, Red);
      }
   }

   return(0);
}

Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---