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.
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.
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.
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
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.
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...
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 |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| 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);
}
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...