Skip to content

Instantly share code, notes, and snippets.

View currencysecrets's full-sized avatar

Ryan currencysecrets

View GitHub Profile
@currencysecrets
currencysecrets / getQtyOrders.mq4
Created April 13, 2013 06:42
This function returns the number of orders, both open or pending, for the currency and the type specified.
// this function will return the quantity of orders (both open and pending)
// on the selected currency for the order type requested.
int getQtyOrders( int type, string sym ) {
int result = 0;
int tot = OrdersTotal();
for ( int i = 0; i < tot; i++ ) {
if ( OrderSelect( i, SELECT_BY_POS, MODE_TRADES ) ) {
if ( OrderSymbol() == sym ) {
if ( OrderType() == type ) {
result += 1;
@currencysecrets
currencysecrets / SimpleChannelBreakout.mq4
Last active May 13, 2017 19:21
This was the simple breakout system designed for the series on creating a MetaTrader 4 system in Sublime Text's text editor. The series can be found on our website http://www.currencysecrets.com.
//+------------------------------------------------------------------+
//| Simple Channel Breakout System.mq4
//| Copyright 2013, Ryan Sheehy
//| http://www.currencysecrets.com
//| v1.1 - errors fixed (getLots & multipleOrders)
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, Ryan Sheehy"
#property link "http://www.currencysecrets.com"
//--- input parameters
@currencysecrets
currencysecrets / checkOpenTrades.mq4
Last active December 14, 2015 11:18
Silent orders with reversable positions.
/*
* checkOpenTrades
* This function checks open trades and compares them to risk levels.
* @param sym
* @return int -1 = error
*/
int checkOpenTrades( string sym ) {
int type, revType, tradeReady, tkt, dir;
double p, revP, profit, trailingStop;
for ( int i = 0; i < OrdersTotal(); i++ ) {
@currencysecrets
currencysecrets / CS Auto Trend Lines (Offline).mq4
Last active December 11, 2015 00:28
This Expert Advisor plots the historical trend lines on the offline charts.
//+------------------------------------------------------------------+
//| CS Auto Trend Lines (Offline).mq4 |
//| Ryan Sheehy |
//| http://www.currencysecrets.com |
//| Version: 1.0 |
//| Released: 12 Jan 13 |
//+------------------------------------------------------------------+
#property copyright "Ryan Sheehy"
#property link "http://www.currencysecrets.com"
@currencysecrets
currencysecrets / CS period_converter.mq4
Created January 11, 2013 03:41
Commenting out of the update in the period_converter script in MetaTrader.
//+------------------------------------------------------------------+
//| Period_Converter.mq4 |
//| Copyright © 2005-2007, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"
#property show_inputs
#include <WinUser32.mqh>
@currencysecrets
currencysecrets / CSAutomatedTrendLines.mq4
Last active May 13, 2017 19:32
Plots automated trend lines and horizontal support and resistance lines on existing chart. This represents now version 3.0 of this script as it has had a rewrite on the level of swings, rather than limiting it to 3 levels through a series of multiple if-statements! This script will also form the basis for the automated trading aspect, so expect …
//+------------------------------------------------------------------+
//| CS Trend Line Breakout.mq4 |
//| Ryan Sheehy |
//| http://www.currencysecrets.com |
//| Version: 3.0 |
//| Released: 7 Jan 13 |
//+------------------------------------------------------------------+
#property copyright "Ryan Sheehy"
#property link "http://www.currencysecrets.com"
@currencysecrets
currencysecrets / ArrayFunctions.mq4
Last active February 13, 2021 12:53
Array utility functions for MetaTrader 4. Helpful functions for doing some of the repetitive tasks in MQL.
/*
* clearIntArray
* This function deletes all items in array (sets it to 0) and resizes array according to size (default = 1).
* @param int& theArray - passing the array by reference
* @param int size - size of the array (default = 1)
* @return int blank array of size
*/
int clearIntArray( int& theArray[], int size = 0 ) {
ArrayResize( theArray, size );
if ( size > 0 ) { ArrayInitialize( theArray, 0 ); }
@currencysecrets
currencysecrets / exitstrategytester.mq4
Last active February 4, 2017 19:36
MQL4: Exit Strategy Tester (Script)
//+------------------------------------------------------------------+
//| Breakout Strategy Tester.mq4 |
//| Copyright 2012, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
//
// With this script we will be doing the following:
// 1. Get all the trades (be wary of reversal trades!)
// 2.
#property copyright "Copyright 2012, MetaQuotes Software Corp."
@currencysecrets
currencysecrets / calcPL.mq4
Created October 3, 2012 08:41
MQL4: Calculate Profit or Loss on Trade
/**
* This method calculates the profit or loss of a position in the home currency of the account
* @param string sym
* @param int type 0 = buy, 1 = sell
* @param double entry
* @param double exit
* @param double lots
* @result double profit/loss in home currency
*/
double calcPL(string sym, int type, double entry, double exit, double lots) {
@currencysecrets
currencysecrets / rorAnalysis.mq4
Created July 17, 2012 21:00
MQL4: RoR Analysis
//+------------------------------------------------------------------+
//| Trades Analysis.mq4 |
//| Ryan Sheehy, CurrencySecrets.com |
//| http://www.currencysecrets.com |
//+------------------------------------------------------------------+
#property copyright "Ryan Sheehy, CurrencySecrets.com"
#property link "http://www.currencysecrets.com"
/*
* With this script we will be running through all trades that have