Forex



Go Back   Forex Trading > Training > Metatrader > Metatrader 4 mql 4 - Development course > Questions
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
  #101 (permalink)  
Old 05-14-2006, 08:42 AM
Administrator
 
Join Date: Sep 2005
Posts: 20,058
Blog Entries: 241
newdigital has much to be proud ofnewdigital has much to be proud ofnewdigital has much to be proud ofnewdigital has much to be proud ofnewdigital has much to be proud ofnewdigital has much to be proud ofnewdigital has much to be proud ofnewdigital has much to be proud of
Quote:
Originally Posted by cramnhoj
Hi all,

would like to ask how do you facilitate communication between two or more running EAs. What I want to do is maintain a set upper limit on the percentage of equity at risk, and I want several EAs running on different currency pairs. Say the total at risk would be 10% and each trade is set at 1% risk. One way I see this is when an EA has a signal to open a trade, I want it to check a global variable that has the current total percentage at risk, if less than 10%, continue with the trade and increment the global variable (if not, forget the trade).

The question here is if the operation is atomic in execution, what little I remember from college OS concepts is that aside from the global variable containing the percentage at risk I also need a global variable saying whether or not the percentage at risk variable is in use (a lock so to speak). I believe there's a function that sets a value to a global variable but first checks it's current value, this could be used if it's execution is atomic right?

I asked here in case someone has already done this (or remembers their OS concepts course ).
I will be really good to create some script or tool in Metatrader to manage 2 or 3 EAs running (MM, risk, lot sizes and so on). But I don't think that it is easy. It is very difficult. I even can not imagine which kind of program can do it. But it should be very usefull.

Last edited by newdigital; 05-14-2006 at 08: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
  #102 (permalink)  
Old 05-15-2006, 07:00 AM
Junior Member
 
Join Date: Apr 2006
Posts: 4
cramnhoj is on a distinguished road
You're talking about having a script or something to facilitate as a server for the EAs to be able to communicate. I think it'll take a while for metaquotes to come up with something like that. However looking at mql4.com, they say the function I was talking about, GlobalVariableSetOnCondition() is atomic in execution. With that, I can probably come up with a set of functions to do what I need.
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
  #103 (permalink)  
Old 05-15-2006, 08:39 AM
pete7's Avatar
Member
 
Join Date: Jan 2006
Posts: 92
pete7 is on a distinguished road
Can someone help me: Some questions about Time (data & functions). ?
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
  #104 (permalink)  
Old 05-15-2006, 10:40 AM
Senior Member
 
Join Date: Oct 2005
Location: Porto/Portugal
Posts: 333
hellkas is on a distinguished road
Question Help - Zero divide???

Hi all coders...

What I've to do to solve this error: zero divide?

Thank you for any help...
Attached Images
File Type: gif ok.GIF (15.2 KB, 305 views)
File Type: gif error.GIF (15.8 KB, 286 views)
Attached Files
File Type: mq4 TTM Stoch.mq4 (4.3 KB, 62 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
  #105 (permalink)  
Old 05-15-2006, 04:08 PM
shwetha's Avatar
Member
 
Join Date: Feb 2006
Posts: 52
shwetha is on a distinguished road
jma

hello codersguru,
can i use jma instead of ema in EA code?
__________________
your attitude determines your altitude.......
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
  #106 (permalink)  
Old 05-18-2006, 12:58 PM
Bongo's Avatar
Senior Member
 
Join Date: Oct 2005
Posts: 496
Bongo is an unknown quantity at this point
need help-correlation

Hi,
I’m looking for simple expert based on correlation.
Strategy:
If USDCHF jump up 2 pips, sell EURUSD
And vv, if USDCHF jump down 2 ticks, buy EURUSD
Thanks for help.
Bongo
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
  #107 (permalink)  
Old 05-18-2006, 08:22 PM
Member
 
Join Date: Jan 2006
Location: Florida
Posts: 45
HoggZilla is on a distinguished road
need help - adjusted MACD

I am trying to create an indicator that adjusts the signal line based on the value of RSI. Really I would like to draw another signal line on the MACD that is adjusted and leave the regular signal line in place.

edit:

I got the indicator to draw the RSI line (first step) in the same window. But for some reason it won't draw the last period. Please see attached.
Attached Files
File Type: mq4 ModifiedMACD.mq4 (3.5 KB, 54 views)

Last edited by HoggZilla; 05-18-2006 at 09:12 PM.
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
  #108 (permalink)  
Old 05-19-2006, 05:17 AM
Senior Member
 
Join Date: Mar 2006
Posts: 132
automatedtrader is on a distinguished road
anythelp would be great

herel is a bit of code im having a problem with//// it works when i load it up on northfinace 1time then never makes a trade again...but it doesnt do anything on Interbank... it is a reversal system using kama the .0005 is reversal pips...I have no idea whats going on, as it made 1 trade on northfinance perfectly when i first loaded it up, but it was an existing trade that should have already been made...
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
  #109 (permalink)  
Old 05-19-2006, 05:18 AM
Senior Member
 
Join Date: Mar 2006
Posts: 132
automatedtrader is on a distinguished road
the code

#property copyright "Expert Advisor Builder"
#property link "http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/"

extern int MagicNumber = 0;
extern bool SignalMail = False;
extern bool EachTickMode = True;
extern double Lots = 1;
extern int Slippage = 3;
extern bool StopLossMode = True;
extern int StopLoss = 40;
extern bool TakeProfitMode = False;
extern int TakeProfit = 60;
extern bool TrailingStopMode = True;
extern int TrailingStop = 35;

#define SIGNAL_NONE 0
#define SIGNAL_BUY 1
#define SIGNAL_SELL 2
#define SIGNAL_CLOSEBUY 3
#define SIGNAL_CLOSESELL 4

int BarCount;
int Current;
bool TickCheck = False;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init() {
BarCount = Bars;

if (EachTickMode) Current = 0; else Current = 1;

return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit() {
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
int Order = SIGNAL_NONE;
int Total, Ticket;
double StopLossLevel, TakeProfitLevel;



if (EachTickMode && Bars != BarCount) TickCheck = False;
Total = OrdersTotal();
Order = SIGNAL_NONE;

//+------------------------------------------------------------------+
//| Variable Begin |
//+------------------------------------------------------------------+

double Var1 = iCustom(NULL, 0, "KAMATEST", 3, 2, 0.0005, 0, Current + 0);
double Var2 = iCustom(NULL, 0, "KAMA CCI", 14, 0, Current + 0);
double Var3 = iCustom(NULL, 0, "KAMARSI", 14, 0, Current + 0);
double Buy1_1 = Var1 ;
double Buy1_2 = 25;
double Buy2_1 = Var2 ;
double Buy2_2 = 80;
double Buy3_1 = Var3 ;
double Buy3_2 = 50;
double Sell1_1 = Var1 ;
double Sell1_2 = -25;
double Sell2_1 = Var2 ;
double Sell2_2 = -80;
double Sell3_1 = Var3 ;
double Sell3_2 = -50;
double CloseBuy1_1 = Var1 ;
double CloseBuy1_2 = -25;
double CloseBuy2_1 = Var2 ;
double CloseBuy2_2 = -80;
double CloseBuy3_1 = Var3 ;
double CloseBuy3_2 = -50;
double CloseSell1_1 = Var1 ;
double CloseSell1_2 = 25;
double CloseSell2_1 = Var2 ;
double CloseSell2_2 = 80;
double CloseSell3_1 = Var3 ;
double CloseSell3_2 = 50;

//+------------------------------------------------------------------+
//| Variable End |
//+------------------------------------------------------------------+

//Check position
bool IsTrade = False;

for (int i = 0; i < Total; i ++) {
OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
if(OrderType() <= OP_SELL && OrderSymbol() == Symbol()) {
IsTrade = True;
if(OrderType() == OP_BUY) {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Buy) |
//+------------------------------------------------------------------+

if (CloseBuy1_1 <= CloseBuy1_2 && CloseBuy2_1 <= CloseBuy2_2 && CloseBuy3_1 <= CloseBuy3_2) Order = SIGNAL_CLOSEBUY;

//+------------------------------------------------------------------+
//| Signal End(Exit Buy) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSEBUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, MediumSeaGreen);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Close Buy");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(TrailingStopMode && TrailingStop > 0) {
if(Bid - OrderOpenPrice() > Point * TrailingStop) {
if(OrderStopLoss() < Bid - Point * TrailingStop) {
OrderModify(OrderTicket(), OrderOpenPrice(), Bid - Point * TrailingStop, OrderTakeProfit(), 0, MediumSeaGreen);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
} else {
//Close

//+------------------------------------------------------------------+
//| Signal Begin(Exit Sell) |
//+------------------------------------------------------------------+

if (CloseSell1_1 >= CloseSell1_2 && CloseSell2_1 >= CloseSell2_2 && CloseSell3_1 >= CloseSell3_2) Order = SIGNAL_CLOSESELL;

//+------------------------------------------------------------------+
//| Signal End(Exit Sell) |
//+------------------------------------------------------------------+

if (Order == SIGNAL_CLOSESELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, DarkOrange);
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Close Sell");
if (!EachTickMode) BarCount = Bars;
IsTrade = False;
continue;
}
//Trailing stop
if(TrailingStopMode && TrailingStop > 0) {
if((OrderOpenPrice() - Ask) > (Point * TrailingStop)) {
if((OrderStopLoss() > (Ask + Point * TrailingStop)) || (OrderStopLoss() == 0)) {
OrderModify(OrderTicket(), OrderOpenPrice(), Ask + Point * TrailingStop, OrderTakeProfit(), 0, DarkOrange);
if (!EachTickMode) BarCount = Bars;
continue;
}
}
}
}
}
}

//+------------------------------------------------------------------+
//| Signal Begin(Entry) |
//+------------------------------------------------------------------+

if (Buy1_1 >= Buy1_2 && Buy2_1 >= Buy2_2 && Buy3_1 >= Buy3_2) Order = SIGNAL_BUY;
if (Sell1_1 <= Sell1_2 && Sell2_1 <= Sell2_2 && Sell3_1 >= Sell3_2) Order = SIGNAL_SELL;

//+------------------------------------------------------------------+
//| Signal End |
//+------------------------------------------------------------------+

//Buy
if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (StopLossMode) StopLossLevel = Ask - StopLoss * Point; else StopLossLevel = 0.0;
if (TakeProfitMode) TakeProfitLevel = Ask + TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, StopLossLevel, TakeProfitLevel, "Buy(#" + MagicNumber + ")", MagicNumber, 0, DodgerBlue);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("BUY order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Ask, Digits) + " Open Buy");
} else {
Print("Error opening BUY order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

//Sell
if (Order == SIGNAL_SELL && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {
if(!IsTrade) {
//Check free margin
if (AccountFreeMargin() < (1000 * Lots)) {
Print("We have no money. Free Margin = ", AccountFreeMargin());
return(0);
}

if (StopLossMode) StopLossLevel = Bid + StopLoss * Point; else StopLossLevel = 0.0;
if (TakeProfitMode) TakeProfitLevel = Bid - TakeProfit * Point; else TakeProfitLevel = 0.0;

Ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, StopLossLevel, TakeProfitLevel, "Sell(#" + MagicNumber + ")", MagicNumber, 0, DeepPink);
if(Ticket > 0) {
if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
Print("SELL order opened : ", OrderOpenPrice());
if (SignalMail) SendMail("[Signal Alert]", "[" + Symbol() + "] " + DoubleToStr(Bid, Digits) + " Open Sell");
} else {
Print("Error opening SELL order : ", GetLastError());
}
}
if (EachTickMode) TickCheck = True;
if (!EachTickMode) BarCount = Bars;
return(0);
}
}

if (!EachTickMode) BarCount = Bars;

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
  #110 (permalink)  
Old 05-19-2006, 10:27 AM
Senior Member
 
Join Date: Mar 2006
Posts: 132
automatedtrader is on a distinguished road
i changed the value of .0005 of the indicator in the expert as that only shows the channel line ultimately the levels are what you need to change 25,-25 for .0005 ...30,,-30 for .0006, and so on...
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
forex, histogram, JMASlope, ToR 1.20, ZUP_v1.mq4


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


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



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