Download MetaTrader 5

Need several hours of tutoring!

To add comments, please log in or register
Do you need private account monitoring? The Signals will provide you one!
Steven Bortz
18
Steven Bortz 2016.02.28 19:45 
I need help getting started with MT 4, as it would take me weeks to figure out what I want to do by watching tutorials.  I do not want to use EAs, I want to use scripts to trade single times when certain conditions are met.  I live in the Denver area if someone happens to be local.  I tried to register for the MQL4 forum, but it wouldn't even let me register with the same email address.  Thanks, Steve
Tim Sustar
503
Tim Sustar 2016.02.28 21:27  
Steven Bortz:
I need help getting started with MT 4, as it would take me weeks to figure out what I want to do by watching tutorials.  I do not want to use EAs, I want to use scripts to trade single times when certain conditions are met.  I live in the Denver area if someone happens to be local.  I tried to register for the MQL4 forum, but it wouldn't even let me register with the same email address.  Thanks, Steve

Scripts are not used to open trades when a certain condition is met. They only execute a command and close them selves... For order opening and managament you need EAs.

But  I suggest first learning to trade manually...I am sure will take few years to find some good strategies...

Roberto Jacobs
46404
Roberto Jacobs 2016.02.29 15:33  
Tim:

Scripts are not used to open trades when a certain condition is met. They only execute a command and close them selves... For order opening and managament you need EAs.

But  I suggest first learning to trade manually...I am sure will take few years to find some good strategies...

Hi Tim.. You are wrong..
Script with property script_show_input or not, can do the job as well as EA.

I have a script, which can be opened order with a single click with money management, lot_size, tp, sl as well as EA,

and if I will open order but does not fit the trend, the script will warning me and not let me open the order. ^_^
Tim Sustar
503
Tim Sustar 2016.02.29 17:34  
Roberto Jacobs:
Hi Tim.. You are wrong..
Script with property script_show_input or not, can do the job as well as EA.

I have a script, which can be opened order with a single click with money management, lot_size, tp, sl as well as EA,

and if I will open order but does not fit the trend, the script will warning me and not let me open the order. ^_^
I'm sorry, I guess I had wrong information.
Khurram Mustafa
27622
Khurram Mustafa 2016.02.29 17:48  
Steven Bortz:
I need help getting started with MT 4, as it would take me weeks to figure out what I want to do by watching tutorials.  I do not want to use EAs, I want to use scripts to trade single times when certain conditions are met.  I live in the Denver area if someone happens to be local.  I tried to register for the MQL4 forum, but it wouldn't even let me register with the same email address.  Thanks, Steve

Hi, Steve

I suggest you to please learn or understand forex first then involve in trading atleast 6 months

try to make some strategies, open demo account and trade their with ease 

Steven Bortz
18
Steven Bortz 2016.02.29 19:43  
Hi, I have 5 years of successful live forex trading with another automated system.  But the company that developed it got bought out, and the new company isn't connecting it to live accounts.  So I am trying to learn MT4.   I know exactly what strategies I want to employ.  It is a matter of figuring out what EA or script to use.  If I want, for example, the sample Moving Average EA to trade just once and then stop, do I write a script for that?  Also, do I have to get a Multi Account Manager in order to trade several demo accounts or several live accounts.  Thanks for your responses.  Steve
Carl Schreiber
6586
Carl Schreiber 2016.03.01 00:54  

1.) There are tons of code for probably any trading idea you might have. Just search here (the lense to right) or google like "mt4 indicator CCI"

2.) To learn to code just take a working EA or an indicator and modify it according to your ideas - that's the way I learnt it. Especially good for the trading-order-management!

3.) In case of a question first use the editor's reference: Put the cursor on the mt4-order you want to know more and with the mouse click on help and MQL4-reference - or google.

Atsushi Yamanaka
5416
Atsushi Yamanaka 2016.03.01 05:08  
Steven Bortz:
Hi, I have 5 years of successful live forex trading with another automated system.  But the company that developed it got bought out, and the new company isn't connecting it to live accounts.  So I am trying to learn MT4.   I know exactly what strategies I want to employ.  It is a matter of figuring out what EA or script to use.  If I want, for example, the sample Moving Average EA to trade just once and then stop, do I write a script for that?  Also, do I have to get a Multi Account Manager in order to trade several demo accounts or several live accounts.  Thanks for your responses.  Steve
//+------------------------------------------------------------------+
//|                                          Moving Average once.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//|                                              http://www.mql4.com |
//+------------------------------------------------------------------+
#property copyright   "2005-2014, MetaQuotes Software Corp."
#property link        "http://www.mql4.com"
#property description "Moving Average sample expert advisor"

#define MAGICMA  20131111
//--- Inputs
input double Lots          =0.1;
input double MaximumRisk   =0.02;
input double DecreaseFactor=3;
input int    MovingPeriod  =12;
input int    MovingShift   =6;
bool trade=true;
//+------------------------------------------------------------------+
//| Calculate open positions                                         |
//+------------------------------------------------------------------+
int CalculateCurrentOrders(string symbol)
  {
   int buys=0,sells=0;
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==MAGICMA)
        {
         if(OrderType()==OP_BUY)  buys++;
         if(OrderType()==OP_SELL) sells++;
        }
     }
//--- return orders volume
   if(buys>0) return(buys);
   else       return(-sells);
  }
//+------------------------------------------------------------------+
//| Calculate optimal lot size                                       |
//+------------------------------------------------------------------+
double LotsOptimized()
  {
   double lot=Lots;
   int    orders=HistoryTotal();     // history orders total
   int    losses=0;                  // number of losses orders without a break
//--- select lot size
   lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
//--- calcuulate number of losses orders without a break
   if(DecreaseFactor>0)
     {
      for(int i=orders-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false)
           {
            Print("Error in history!");
            break;
           }
         if(OrderSymbol()!=Symbol() || OrderType()>OP_SELL)
            continue;
         //---
         if(OrderProfit()>0) break;
         if(OrderProfit()<0) losses++;
        }
      if(losses>1)
         lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
     }
//--- return lot size
   if(lot<0.1) lot=0.1;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
  {
   double ma;
   int    res;
//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//--- sell conditions
   if(Open[1]>ma && Close[1]<ma && trade)
     {
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
      return;
     }
//--- buy conditions
   if(Open[1]<ma && Close[1]>ma && trade)
     {
      res=OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
      return;
     }
//---
  }
//+------------------------------------------------------------------+
//| Check for close order conditions                                 |
//+------------------------------------------------------------------+
void CheckForClose()
  {
   double ma;
//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;
//--- get Moving Average 
   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---
   for(int i=0;i<OrdersTotal();i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
      //--- check order type 
      if(OrderType()==OP_BUY)
        {
         if(Open[1]>ma && Close[1]<ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               Print("OrderClose error ",GetLastError());
            else trade=false;
           }
         break;
        }
      if(OrderType()==OP_SELL)
        {
         if(Open[1]<ma && Close[1]>ma)
           {
            if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
               Print("OrderClose error ",GetLastError());
            else trade=false;
           }
         break;
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| OnTick function                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- check for history and trading
   if(Bars<100 || IsTradeAllowed()==false)
      return;
//--- calculate open orders by current symbol
   if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();
   else                                    CheckForClose();
//---
  }
//+------------------------------------------------------------------+
To add comments, please log in or register