Forex



Go Back   Forex Trading > Programming > MetaTrader
Forex Forum Register More recent Blogs Calendar Advertising Others Help






Register
Welcome to Forex-TSD!, one of the largest Forex forums worldwide, where you will be able to find the most complete and reliable Forex information imaginable.

From the list below, select the forum that you want to visit and register to post, as many times you want. It’s absolutely free. Click here for registering on Forex-TSD.

Exclusive Forum
The Exclusive Forum is the only paid section. Once you subscribe, you will get free access to real cutting-edge Trading Systems (automated and not), Indicators, Signals, Articles, etc., that will help and guide you, in ways that you could only imagine, with your Forex trading.
  • Elite Section
    Get access to private discussions, specialized support, indicators and trading systems reported every week.
  • Advanced Elite Section
    For professional traders, trading system developers and any other member who may need to use and/or convert, the most cutting-edge exclusive indicators and trading systems for MT4 and MT5.
See more

Reply
 
Thread Tools Display Modes
  #1481 (permalink)  
Old 12-04-2008, 08:48 PM
Senior Member
 
Join Date: Oct 2008
Location: Vancouver, BC
Posts: 158
Roger09 is on a distinguished road
Quote:
Originally Posted by paypascal View Post
It does not have any parameters and as I said it looks fine on screen only the function returns this huge number.
If you send me your code, I'll test it and can help you.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1482 (permalink)  
Old 12-04-2008, 08:52 PM
Senior Member
 
Join Date: Feb 2006
Posts: 587
Michel is on a distinguished road
Quote:
Originally Posted by paypascal View Post
My indicator does not work properly, the indicator works fine on screen but when I try to use in an EA and let it Alert(iCustom(....)); it gives an enormous value.

TSD = iCustom(NULL,0,"Pascal_Indicator1",0,0);
Alert(TSD); // gives 214723948223...

The indicator 's code is :
Code:
int start()
  {
   int    counted_bars=IndicatorCounted();
   if(counted_bars <= 0) return(0);

   int i = counted_bars;
   while(i >= 0){
      if(i > 0){
         ExtMapBuffer1[i] = calculateData();
      }
      i--;
   }
   return(0);
  }
I must be doing something dramatically wrong

Pascal.

iCustom() try to get the bar[0] value, but your indic does not calcul it " if(i>0) ", so the returned value is EMPTY_VALUE = 214....
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1483 (permalink)  
Old 12-06-2008, 10:18 PM
Junior Member
 
Join Date: Aug 2008
Location: Sacramento
Posts: 10
kevin07 is on a distinguished road
Red face Problem migrating Indicator into EA as a filter function

When attempting to use part of an indicator as a function in my EA, I now realize that there are three types of functions. The first type is a Void which performs a process and returns 0. The second type performs calculations and returns one result. The third type expects to be given a set of specific values to process and then returns one result.

What can I do if my calculations produce three results which need to by used at least two different ways? Those calculations may need to be located in the Start() function for the following reason: Information flows from the External variables (which may be manually adjusted) and the Global variables (which remain static unless recompiled) into the various functions of the EA. The Start() function is the brain of the EA and reaches out to the other functions for their information. It may pass a set of variables to a function as arguments of that function if that function has declared those variables within it's () brackets. It then receives a result back and may pass more variables to another function to finish it's process.

Once I bagan to pass variables as arguments to other functions, I was hoping to enjoy a level of success with my EA coding. Unfortunately, I created a zero divide error, possibly because I tried to pass a value along as an argument from one function to another so that the value did not arrive were needed. Since it was actually missing, I got the zero divide error. My next revision removed intermediate steps and delivered values directly to the functions where they were used.
(I don't thing I do myself any favors by recording this point in my first two months experience learning MQL4 coding. However, anyone who may be googling "MQL4 zero divide error," might be glad to know how I managed to resolve it.)

My next EA revision cured my zero divide error, but the journal comment of my stratagy tester now indicated a stack overrun. For those googling "MQL4 stack overrun," I'll post the cause I found. It was failure to convert lots to their decimal equivelant by use of the "Points" constant when changing a price for opening or modifying an order.

The last tip I'd like to post here (after my initial two months coding experience and more than 12 EA rewrites) is a way I was able to solve a hard to find "unequal left parantheses" bracket. The MetaEditor does not highlight bracket text in color. If you have an AutoDesk product with Visual LISP Editor, you can open your MQ4 file in that editor and see almost all the bracket pairs in color. This makes it much easier to proof read for the missing bracket.

Thanks to everyone who shares their answers on this forum,
Happy Coding!

Last edited by kevin07; 01-02-2009 at 11:36 PM. Reason: for those learing to Code MQL4 using Coder's Guru course and Google
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1484 (permalink)  
Old 12-07-2008, 12:40 AM
Junior Member
 
Join Date: Oct 2008
Posts: 24
tk748 is on a distinguished road
Code for adding alert to nonlagZigZag indicator

Can anyone tell me how to add an alert to this indicator? The indicator code is posted below. I would like the alert to occur (appear/sound off) when a new zigzag line paints. I am missing these signals and any help would improve my entry timing. Thanks, Tom.

//+------------------------------------------------------------------+
//| NonLagZigZag_v2.mq4 |
//| Copyright © 2006, TrendLaboratory |
//| TrendLaboratory : TrendLaboratory |
//| E-mail: igorad2003@yahoo.co.uk |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, TrendLaboratory"
#property link "http://finance.groups.yahoo.com/group/TrendLaboratory"


#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Yellow
#property indicator_width1 1
#property indicator_style1 3

//---- input parameters
extern int Price = 0; //Apply to Price(0-Close;1-Open;2-High;3-Low;4-Median price;5-Typical price;6-Weighted Close)
extern int Length = 100; //Period of NonLagMA
extern double PctFilter = 2; //Dynamic filter in decimals

double ZZBuffer[];
double MABuffer[];
double trend[];
double Del[];
double AvgDel[];

int ilow, ihigh, nlow, nhigh, prevnhigh,prevnlow, BarsBack;
double alfa[];
datetime lotime,hitime;
int i, Phase, Len, Cycle=4, Back=0;
double Coeff, beta, t, Sum, Weight, g;
double pi = 3.1415926535;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
IndicatorBuffers(5);
SetIndexStyle(0,DRAW_SECTION);
SetIndexBuffer(0,ZZBuffer);
SetIndexBuffer(1,MABuffer);
SetIndexBuffer(2,trend);
SetIndexBuffer(3,Del);
SetIndexBuffer(4,AvgDel);
string short_name;
//---- indicator line

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));
//---- name for DataWindow and indicator subwindow label
short_name="NonLagZigZag("+Length+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"NonLagZigZag");
//----
SetIndexEmptyValue(0,0.0);
SetIndexDrawBegin(0,Length*Cycle+Length);
//----

Coeff = 3*pi;
Phase = Length-1;
Len = Length*Cycle + Phase;
ArrayResize(alfa,Len);
Weight=0;

for (i=0;i<Len-1;i++)
{
if (i<=Phase-1) t = 1.0*i/(Phase-1);
else t = 1.0 + (i-Phase+1)*(2.0*Cycle-1.0)/(Cycle*Length-1.0);
beta = MathCos(pi*t);
g = 1.0/(Coeff*t+1);
if (t <= 0.5 ) g = 1;
alfa[i] = g * beta;
Weight += alfa[i];
}

return(0);
}

//+------------------------------------------------------------------+
//| NonLagZigZag_v2 |
//+------------------------------------------------------------------+
int start()
{
int i,shift, counted_bars=IndicatorCounted(),limit;
double price,smin,smax;
if ( counted_bars > 0 ) limit=Bars-counted_bars;
if ( counted_bars < 0 ) return(0);
if ( counted_bars ==0 ) limit=Bars-1;
if ( counted_bars < 1 )
{
for(i=0;i<Bars-1;i++)
ZZBuffer[i]=0;
for(i=1;i<Len;i++)
MABuffer[Bars-i]=iMA(NULL,0,1,0,MODE_SMA,Price,Bars-i);
}

for(shift=limit;shift>=0;shift--)
{
Sum = 0;
for (i=0;i<=Len-1;i++)
{
price = iMA(NULL,0,1,0,3,Price,i+shift);
Sum += alfa[i]*price;
}

if (Weight > 0) MABuffer[shift] = Sum/Weight;

Del[shift] = MathAbs(MABuffer[shift] - MABuffer[shift+1]);

double sumdel=0;
for (i=0;i<=Length-1;i++) sumdel += Del[shift+i];

AvgDel[shift] = sumdel/Length;

double sumpow = 0;
for (i=0;i<=Length-1;i++) sumpow += MathPow(Del[shift+i]-AvgDel[shift+i],2);
double StdDev = MathSqrt(sumpow/Length);

double Filter = PctFilter * StdDev;
if (Filter < Point) Filter = Point;

if( MathAbs(MABuffer[shift]-MABuffer[shift+1]) < Filter ) MABuffer[shift]=MABuffer[shift+1];

trend[shift]=trend[shift+1];
if (MABuffer[shift]-MABuffer[shift+1] > Filter) trend[shift]= 1;
if (MABuffer[shift+1]-MABuffer[shift] > Filter) trend[shift]=-1;

if(trend[shift]>0)
{
if( trend[shift]!=trend[shift+1])
{
ilow = LowestBar(iBarShift(NULL,0,hitime,FALSE)-shift,shift);
lotime = Time[ilow];
ZZBuffer[ilow] = Low[ilow];
}
else
if (shift==0)
{
int hilen = iBarShift(NULL,0,lotime,FALSE);
nhigh = HighestBar(hilen,0);
ZZBuffer[nhigh]=High[nhigh];
if (nhigh== 0) for (i=hilen-1;i>=1;i--) ZZBuffer[i]=0;
if (nhigh > 0) for (i=nhigh-1;i>=0;i--) ZZBuffer[i]=0;
}
}

if (trend[shift]<0)
{
if( trend[shift]!=trend[shift+1])
{
ihigh = HighestBar(iBarShift(NULL,0,lotime,FALSE)-shift,shift);
hitime=Time[ihigh];
ZZBuffer[ihigh] = High[ihigh];
}
else
if (shift==0)
{
int lolen = iBarShift(NULL,0,hitime,FALSE);
nlow = LowestBar(lolen,0);
ZZBuffer[nlow] = Low[nlow];
if (nlow==0) for (i=lolen-1;i>=1;i--) ZZBuffer[i]=0;
if (nlow >0) for (i=nlow-1;i>=0;i--) ZZBuffer[i]=0;
}
}
}
return(0);
}

int LowestBar(int len,int k)
{
double min = 10000000;
int lobar;

for (int i=k+len-1;i>=k;i--)
if(Low[i] < min) {min = Low[i]; lobar = i;}
if(len<=0) lobar=k;
return(lobar);
}

int HighestBar(int len,int k)
{
double max = -10000000;
int hibar;

for (int i=k+len-1;i>=k;i--)
if(High[i] > max) {max = High[i]; hibar = i;}

if(len<=0) hibar=k;
return(hibar);
}

Last edited by tk748; 12-07-2008 at 12:49 AM.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1485 (permalink)  
Old 12-07-2008, 08:51 AM
Junior Member
 
Join Date: Aug 2008
Location: Sacramento
Posts: 10
kevin07 is on a distinguished road
added alert to nonlagZigZag indicator

Thank you tk748, for providing a possible work-around for my request. In turn, I have attached my attempt to provide your requested alerts on the NonLagZigZag indi. Although I can see that the alerts are working, please note that because today is Saturday, I have not tested to see if alerts occure at a useful time. I left a few comments in the code to show why I believe the alerts are in the correct location. I think you will like to try this out as soon as the markets are open.
Best regards, kevin07
Attached Files
File Type: mq4 NonLagZigZag_signal_v2.mq4 (7.6 KB, 30 views)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1486 (permalink)  
Old 12-07-2008, 08:19 PM
Junior Member
 
Join Date: Oct 2008
Posts: 24
tk748 is on a distinguished road
nonlagzigzag signal

Thank you kevin07. I will try the nonlagzigzag signal when the market opens later today.

Regards, tom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1487 (permalink)  
Old 12-08-2008, 03:21 AM
Junior Member
 
Join Date: Oct 2008
Posts: 24
tk748 is on a distinguished road
Nonlagzigzag signal problem

Hi kevin07,

The alerts for nonlagzigzag are working but they do not correspond with a zigzag line. I have received several alerts but the zigzag line has not painted. Also, when I first load the indicator it gives an alert. Can you look at the code and see if you can spot the problem? The email alert works great also, thanks for including it. Anything you can do will be very much appreciated.

Best regards, Tom

Last edited by tk748; 12-08-2008 at 03:34 AM.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1488 (permalink)  
Old 12-08-2008, 06:39 AM
Junior Member
 
Join Date: Aug 2008
Location: Sacramento
Posts: 10
kevin07 is on a distinguished road
nonlagzigzag

Hello tk748, The initial alert that poped up when you loaded the indi tells the current direction of trade since the last highest high or lowest low (which may have occured several candles back). Sorry to hear that intermediate alerts go out prior to the next line being drawn. The IF statement for the alert could have an additional filter to check that CurrentDirection != PreviousDirection so that additional alerts don't pop up until the next line is drawn. (I'm involved in finishing my EA and cannot tackle that for you at this time.) During the day, I have to work. During the night, I have to sleep. Without an EA, I won't get many (any) trades. My priority is to use a zigzag or volitility indi as a filter to prevent some unprofitable trades from opening.
If I find how to add that additional code in the process, I'll let you know.
Best Wishes, kevin07
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1489 (permalink)  
Old 12-09-2008, 12:15 AM
Junior Member
 
Join Date: Aug 2008
Posts: 4
Rengoku is on a distinguished road
Straddle Script

I got this script but would love to have the option of setting a timer to have it trade the London open... how hard would it be to add this and could you point me in the right direct or show me the code to do it?

As always... I appreciate your help!!

Code:
#include <stdlib.mqh>
#include <stderror.mqh>

#define LOOK_TO_BUY      1
#define LOOK_TO_SELL     2

extern int Magic_Number = 412625; // set this to a unique number if you intend to use the script simulataneously across many charts on the same account.
extern int UserDefinedSpread = 0; // set this to 0 if you want to use market spread. valid value is >= 0
extern double LotSize = 0.1;
extern int Slippage = 3;
extern int StopLoss = 25; // If you set StopLoss to 0, no stop loss level will be placed.
extern int TakeProfit = 0; // If you set TakeProfit to 0, no stop loss level will be placed.
extern bool OneCancelsOther = true; // This determines if you want the script to stay running and track, then delete the opposite pending order when an order has executed.
extern int NumOfCandles = 3; // This determines how many previous candles you want the EA to look for the High Lows. (buy and sell prices). valid value is > 0
extern int PositionalMarginPips = 40; // The distance excluding spread from the high lows for the opening prices. valid value is >= 0
extern int intervalseconds = 1.0; //The time interval for the script to check your trades. allows fractional seconds.

double BuyPrice = 0;
double SellPrice = 0;
int CustomSpread = 0;
bool KeepRunning = true;
int ticketToDelete = 0;

void GetPrices()
{
   double HighestHigh = High[1];
   if (NumOfCandles > 1)
   {
      for (int i=2; i<=NumOfCandles; i++)
      {
         if (High[i] > HighestHigh)
         {
            HighestHigh = High[i];
         }
      }
   }
   BuyPrice = HighestHigh + (PositionalMarginPips * Point);
   BuyPrice = NormalizeDouble(BuyPrice,Digits);
   
   double LowestLow = Low[1];
   if (NumOfCandles > 1)
   {
      for (i=2; i<=NumOfCandles; i++)
      {
         if (Low[i] < LowestLow)
         {
            LowestLow = Low[i];
         }
      }
   }
   SellPrice = LowestLow - (PositionalMarginPips * Point);
   BuyPrice = NormalizeDouble(BuyPrice,Digits);
}

void PlaceTrades()
{
   double TakeProfitPrice, StopLossPrice;
   if (TakeProfit==0)
   {
      TakeProfitPrice = 0;
   }
   else
   {
      TakeProfitPrice = BuyPrice + (TakeProfit * Point);
      TakeProfitPrice = NormalizeDouble(TakeProfitPrice,Digits);
   }
   if (StopLoss == 0)
   {
      StopLossPrice = 0;
   }
   else
   {
      StopLossPrice = BuyPrice - (StopLoss * Point);
      StopLossPrice = NormalizeDouble(StopLossPrice,Digits);
   }
   SendOrders (LOOK_TO_BUY, LotSize, BuyPrice, Slippage, StopLossPrice, TakeProfitPrice, "Straddle Buy", 0);
   
   if (TakeProfit==0)
   {
      TakeProfitPrice = 0;
   }
   else
   {
      TakeProfitPrice = SellPrice - (TakeProfit * Point);
      TakeProfitPrice = NormalizeDouble(TakeProfitPrice,Digits);
   }
   if (StopLoss == 0)
   {
      StopLossPrice = 0;
   }
   else
   { 
      StopLossPrice = SellPrice + (StopLoss * Point);
      StopLossPrice = NormalizeDouble(StopLossPrice,Digits);
   }
   SendOrders (LOOK_TO_SELL, LotSize, SellPrice, Slippage, StopLossPrice, TakeProfitPrice, "Straddle Sell", 0);
}

void SendOrders (int BuyOrSell, double LotSize, double PriceToOpen, double Slippage, double SL_Price, double TP_Price, string comments, datetime ExpirationTime)
{
   int PositionType, ticket, errorType;
   if (BuyOrSell == LOOK_TO_BUY)
   {  
      if (PriceToOpen > Ask)
      {
         PositionType = OP_BUYSTOP;
      }
      if (PriceToOpen < Ask)
      {
         PositionType = OP_BUYLIMIT;
      }
      Print("Bid: "+Bid+" Ask: "+Ask+" | Opening Buy Order: "+Symbol()+", "+PositionType+", "+LotSize+", "+PriceToOpen+", "+Slippage+", "+SL_Price+", "+TP_Price+", "+comments+", "+Magic_Number+", "+ExpirationTime+", Green");
      ticket=OrderSend(Symbol(),PositionType,LotSize,PriceToOpen,Slippage,SL_Price,TP_Price,comments,Magic_Number,ExpirationTime,CLR_NONE);
      if(ticket>0)
      {
         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
         {
            Print("BUY order opened : ",OrderOpenPrice());
         }
      }
      else 
      {  
         errorType = GetLastError();
         Print("Error opening BUY order : ", ErrorDescription(errorType));
         
      }
   }
   if (BuyOrSell == LOOK_TO_SELL)
   {  
      if (PriceToOpen < Bid)
      {
         PositionType = OP_SELLSTOP;
      }
      if (PriceToOpen > Bid)
      {
         PositionType = OP_SELLLIMIT;
      }
      Print("Bid: "+Bid+" Ask: "+Ask+" | Opening Sell Order: "+Symbol()+", "+PositionType+", "+LotSize+", "+PriceToOpen+", "+Slippage+", "+SL_Price+", "+TP_Price+", "+comments+", "+Magic_Number+", "+ExpirationTime+", Red");
      ticket=OrderSend(Symbol(),PositionType,LotSize,PriceToOpen,Slippage,SL_Price,TP_Price,comments,Magic_Number,ExpirationTime,CLR_NONE);
      if(ticket>0)
      {
         if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) 
         {
            Print("Sell order opened : ",OrderOpenPrice());
         }
      }
      else 
      {  
         errorType = GetLastError();
         Print("Error opening SELL order : ", ErrorDescription(errorType));
      }
   }
}

void GetSpread()
{
   if (UserDefinedSpread <= 0)
   {
      CustomSpread = MarketInfo(Symbol(),MODE_SPREAD);
   }
   else
   {
      CustomSpread = UserDefinedSpread;
   }
}

int GetNumberOfPending()
{
   int count = 0;
   int total = OrdersTotal();
   if (total > 0)
   {
      for(int cnt=0;cnt<total;cnt++)
      {
         if(OrderSelect(cnt,SELECT_BY_POS))
         {
            if(OrderSymbol()==Symbol() && OrderMagicNumber() == Magic_Number)
            {
               if(OrderType() != OP_BUY && OrderType() != OP_SELL)
               {
                  ticketToDelete = OrderTicket();
                  count++;
               }
            }
         }
      }
   }
   return (count);
}

void ManageTrades()
{
   // If there's only one pending trade left, assume the other one is opened.
   // So Delete this one.
   if (GetNumberOfPending() == 1)
   {
      if (OrderDelete(ticketToDelete))
      {
         KeepRunning = false;
         Alert ("Straddle script has ended");
      }
   }
}

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
{
//----
   GetSpread();
   GetPrices();
   PlaceTrades();
   Alert ("Pending Trades Placed. Please Wait...");
   int intervalMilliseconds = intervalseconds * 1000;
   while (KeepRunning && OneCancelsOther)
   {
      Sleep(intervalMilliseconds);
      ManageTrades();
   }
//----
   return(0);
}
//+------------------------------------------------------------------+
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
  #1490 (permalink)  
Old 12-09-2008, 12:25 AM
Junior Member
 
Join Date: Oct 2008
Posts: 24
tk748 is on a distinguished road
nonlagzigzag alert

Hi kevin07,

Thanks for the work you did on this indicator. Perhaps during your EA coding you will have an idea about how to make the signals appear at the proper time. In the meantime maybe someone else here will have time to solve the problem. Good luck with your EA.

Regards,

Tom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!StumbleUpon this Post!Reddit this Post!Facebook this Post!BlinkList this Post!Google Bookmarks this Post!Yahoo! My Web this Post!
Reply With Quote
Reply

Bookmarks

Tags
#include, candle time, CHinGsMAroonCLK, code, coders guru, conditionally, dll, eli hayun, Eur_harvester.ex4, expert adviser, expert advisor, forex, higher high, how to code, indicator, I_XO_A_H, kehedge, mechanical trading, metatrader command line, mt4, MT4-LevelStop-Reverse, OrderReliable.mqh, programming, rectangle tool, trading, volty channel stop


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
How to code this? iscuba11 Metatrader 4 mql 4 - Development course 1 08-03-2007 05:22 PM


All times are GMT. The time now is 03:50 PM.



Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.