You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
hello guys
I have a question here... how do I change the following;
extern double MaxLot = 1.50;
double max_lot = GetMaxLot(OP_BUY, OP_SELL);
if (max_lot >= MaxLot) lot = CalcHedgeLot(order_type);
(order_type)]: ", lot);
if (lot == -1) return (lot);
lot = NormalizeDouble(lot, LotPrec);
if (lot > MaxLot) lot = MaxLot;
if (lot < MinLot) lot = MinLot;
return (lot);
}
the above check for OP_BUY AND OP_SELL
question: how do I change it to any OP_BUY ORany OP_SELL
appreciateYou must modify the GetMaxLot() function code, or maybe you can use GetMaxLot(OP_BUY, OP_BUY); and GetMaxLot(OP_SELL, OP_SELL); (depends on the code - can do like that or not).
But I guess it worth to try
Goen
Is this what you looking for ?
-----------
int bars_count=WindowBarsPerChart();
int bar=WindowFirstVisibleBar();
-----------
GoenThank you, Goen .
You must modify the GetMaxLot() function code, or maybe you can use GetMaxLot(OP_BUY, OP_BUY); and GetMaxLot(OP_SELL, OP_SELL); (depends on the code - can do like that or not).
But I guess it worth to try
Goenthanks for answering..
what do I need to change here? appreciate your help
double GetMaxLot(int type1, int type2)
{
double max_lot = 0.0;
int cnt = OrdersTotal();
for (int i=0; i < cnt; i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != Magic) continue;
if (OrderType() != type1 && OrderType() != type2) continue;
if (max_lot == 0 || OrderLots() >= max_lot)
{
max_lot = OrderLots();
}
}
return (max_lot);
}
a bit in a loss here...
how to add alert to tis indicator?
i hv got an MA crossover indicator which work really well, but it doesn't hv the sound alert support tat make me miss a lot of trade, can u please teach me how to add alert to tis indicator as I know nothing about the meta code thing....thanks...
here is the code for the indicator together wif the indicator itself, thanks...
/*[[
Name := EMA Cross
Author := Hapsa
Link := http://www.metaquotes.net/
Separate Window := No
Separate Window := No
First Color := Red
First Draw Type := Symbol
First Symbol := 108
Use Second Data := Yes
Second Color := DarkOliveGreen
Second Draw Type := Symbol
Second Symbol := 108
]]*/
#property copyright "Hapsa"
#property link ""
extern int SlowPeriod=20;
extern int FastPeriod=5;
#property indicator_buffers 3
#property indicator_chart_window
#property indicator_color1 Red
#property indicator_color2 Green
double L20[];
double L50[];
double shift=0,val1=0,val2=0;
int init()
{
IndicatorBuffers(3);
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
SetIndexArrow(0, 108);
SetIndexArrow(1, 108);
SetIndexBuffer(0,L20);
SetIndexBuffer(1,L50);
//---- indicators
//----
return(0);
}
int start()
{
int counted_bars=IndicatorCounted();
//----
int i = Bars - counted_bars - 1;
while (i>=0)
{
val1=0;
val2=0;
double iMaSlowPrevious = iMA(NULL,0,SlowPeriod,0,MODE_EMA, PRICE_CLOSE, i-1);
double iMaSlowCurrent = iMA(NULL,0,SlowPeriod,0,MODE_EMA, PRICE_CLOSE, i);
double iMaFastPrevious = iMA(NULL,0,FastPeriod,0,MODE_EMA, PRICE_CLOSE, i-1);
double iMaFastCurrent = iMA(NULL,0,FastPeriod,0,MODE_EMA, PRICE_CLOSE, i);
if (iMaFastPreviousiMaSlowCurrent ) val1=High;
if (iMaFastPrevious>iMaSlowPrevious && iMaFastCurrent<iMaSlowCurrent ) val2=Low;
L20=val1+5*Point;
L50=val2-5*Point;
i--;
}
//----
return(0);
}
thanks for answering..
what do I need to change here? appreciate your help
double GetMaxLot(int type1, int type2)
{
double max_lot = 0.0;
int cnt = OrdersTotal();
for (int i=0; i < cnt; i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != Magic) continue;
if (OrderType() != type1 && OrderType() != type2) continue;
if (max_lot == 0 || OrderLots() >= max_lot)
{
max_lot = OrderLots();
}
}
return (max_lot);
}Yes, you can use GetMaxLot(OP_BUY,OP_BUY); to get the maxlot for buy open trade only, and GetMaxLot(OP_SELL,OP_SELL); to get the maxlot for sell open trade only.
You can make simplify this code "if (max_lot == 0 || OrderLots() >= max_lot)" with "if (OrderLots() > max_lot)"
Coz if max_lot = 0 automatically it will be lower than any lot of the open trades. And sign ">=" change with ">" coz if it have same value, no need to update max_lot with the same value, useless effort. It will update only if the new value greater than max_lot.
By changing that code, it could make your process faster.
Goen
stoploss issue
Hello,
I'm new to all this forex/metatrading but am trying to understand how it all works.
Now I am trying to write an EA and I'm afraid I'm missing something fundamental.
If, in my code, I replace
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",MAGIC,0,Red);
with
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*10,0,"",MAGIC,0,Red);
And test this new version out in the strategy tester, I get LESS orders. How can adding a stoploss diminish the number of order entries? I can imagine that the number rises in the case that adding a stop order causes orders to exit more early and thus new orders can be added more quickly, but LESS orders...?
Any idea?
Thanks
Hello,
I'm new to all this forex/metatrading but am trying to understand how it all works.
Now I am trying to write an EA and I'm afraid I'm missing something fundamental.
If, in my code, I replace
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0,"",ordercount,0,Red);
with
OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*10,0,"",ordercount,0,Red);
And test this new version out in the strategy tester, I get LESS orders. How can adding a stoploss diminish the number of order entries? I can imagine that the number rises in the case that adding a stop order causes orders to exit more early and thus new orders can be added more quickly, but LESS orders...?
Any idea?
Thanks10 pips may be too close to the broker-imposed stops limit (varies between brokers) - meaning if it's a minimium of 10 pips and price happens to swing 1 pip inside this as the order is being placed, the order will be rejected...
Omelette, you are right, increasing the stoploss fixed it, thanks! :-)
#property indicator_color2 Yellow
extern bool TrendDirectionUp=true;
string Color1;
string Color2;
int init() {
if(TrendDirectionUp==true)//Conditionj 1
{
Color1=Yellow;
Color2=CLR_NONE;
}
if(TrendDirectionUp==false)//Condition2
{
Color1=CLR_NONE;
Color2=Magenta;
}
SetIndexStyle(0,DRAW_ARROW,0,star_size,Color1);
SetIndexStyle(1,DRAW_ARROW,0,star_size,Color2);
SetIndexArrow(0,172);//333
SetIndexArrow(1,172);//334
SetIndexBuffer(0,b1);
SetIndexBuffer(1,b2);
return(0);
}Right now, both Color(s) 1 & 2 show 'black' on the graph!!
Can any expert Guru help me solve this issue???
Thanks in Advance!