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
Multi Order at the same time~Need your help
Hi Expert,
i was trying to create a script.
Feature of the script:-
1. Open multi oder ( Buy and Sell ) at the same time for 9 Pair
2. Set takeprofit as i like
3. Put Stoploss as 0
Problem facing:-
1. It was not active for all pair
Script:-
--------------------------------------------------------------------------------
#include
#include
extern double Lots = 0.10; // change this number to change the lotsize
extern double stoploss = 100; // change this number to change the stoploss
extern double takeprofit = 100; // change this number to change the takeprofit
//OrderSend("EURUSD",OP_BUY,0.1,MarketInfo("EURUSD",MODE_ASK),3,MarketInfo("EURUSD",MODE_ASK)-stoploss*Point,MarketInfo("EURUSD",MODE_ASK)+takeprofit*Point,"",1234567,0,Blue);
//OrderSend("EURUSD",OP_SELL,0.1,MarketInfo("EURUSD",MODE_BID),3,MarketInfo("EURUSD",MODE_BID)+50*Point,MarketInfo("EURUSD",MODE_BID)-50*Point,"",MAGICMAeu,0,Red)
//OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Ask-takeprofit*Point,"JMSELLER",0,0,CLR_NONE);
int start()
{
OrderSend("EURUSD",OP_BUY,Lots,MarketInfo("EURUSD",MODE_ASK),3,MarketInfo("EURUSD",MODE_ASK)-50*Point,MarketInfo("EURUSD",MODE_ASK)+12*Point,"",0,0,Blue);
OrderSend("EURUSD",OP_SELL,Lots,MarketInfo("EURUSD",MODE_BID),3,MarketInfo("EURUSD",MODE_BID)+50*Point,MarketInfo("EURUSD",MODE_BID)-12*Point,"",0,0,Red);
OrderSend("USDCHF",OP_BUY,Lots,MarketInfo("USDCHF",MODE_ASK),3,MarketInfo("USDCHF",MODE_ASK)-50*Point,MarketInfo("USDCHF",MODE_ASK)+13*Point,"",0,0,Blue);
OrderSend("USDCHF",OP_SELL,Lots,MarketInfo("USDCHF",MODE_BID),3,MarketInfo("USDCHF",MODE_BID)+50*Point,MarketInfo("USDCHF",MODE_BID)-13*Point,"",0,0,Red);
OrderSend("USDJPY",OP_BUY,Lots,MarketInfo("USDJPY",MODE_ASK),3,MarketInfo("USDJPY",MODE_ASK)-50*Point,MarketInfo("USDJPY",MODE_ASK)+12*Point,"",0,0,Blue);
OrderSend("USDJPY",OP_SELL,Lots,MarketInfo("USDJPY",MODE_BID),3,MarketInfo("USDJPY",MODE_BID)+50*Point,MarketInfo("USDJPY",MODE_BID)-12*Point,"",0,0,Red);
OrderSend("AUDUSD",OP_BUY,Lots,MarketInfo("AUDUSD",MODE_ASK),3,MarketInfo("AUDUSD",MODE_ASK)-50*Point,MarketInfo("AUDUSD",MODE_ASK)+13*Point,"",0,0,Blue);
OrderSend("AUDUSD",OP_SELL,Lots,MarketInfo("AUDUSD",MODE_BID),3,MarketInfo("AUDUSD",MODE_BID)+50*Point,MarketInfo("AUDUSD",MODE_BID)-13*Point,"",0,0,Red);
OrderSend("GBPUSD",OP_BUY,Lots,MarketInfo("GBPUSD",MODE_ASK),3,MarketInfo("GBPUSD",MODE_ASK)-50*Point,MarketInfo("GBPUSD",MODE_ASK)+13*Point,"",0,0,Blue);
OrderSend("GBPUSD",OP_SELL,Lots,MarketInfo("GBPUSD",MODE_BID),3,MarketInfo("GBPUSD",MODE_BID)+50*Point,MarketInfo("GBPUSD",MODE_BID)-13*Point,"",0,0,Red);
OrderSend("EURJPY",OP_BUY,Lots,MarketInfo("EURJPY",MODE_ASK),3,MarketInfo("EURJPY",MODE_ASK)-50*Point,MarketInfo("EURJPY",MODE_ASK)+13*Point,"",0,0,Blue);
OrderSend("EURJPY",OP_SELL,Lots,MarketInfo("EURJPY",MODE_BID),3,MarketInfo("EURJPY",MODE_BID)+50*Point,MarketInfo("EURJPY",MODE_BID)-13*Point,"",0,0,Red);
OrderSend("CHFJPY",OP_BUY,Lots,MarketInfo("CHFJPY",MODE_ASK),3,MarketInfo("CHFJPY",MODE_ASK)-50*Point,MarketInfo("CHFJPY",MODE_ASK)+14*Point,"",0,0,Blue);
OrderSend("CHFJPY",OP_SELL,Lots,MarketInfo("CHFJPY",MODE_BID),3,MarketInfo("CHFJPY",MODE_BID)+50*Point,MarketInfo("CHFJPY",MODE_BID)-14*Point,"",0,0,Red);
OrderSend("AUDJPY",OP_BUY,Lots,MarketInfo("AUDJPY",MODE_ASK),3,MarketInfo("AUDJPY",MODE_ASK)-50*Point,MarketInfo("AUDJPY",MODE_ASK)+16*Point,"",0,0,Blue);
OrderSend("AUDJPY",OP_SELL,Lots,MarketInfo("AUDJPY",MODE_BID),3,MarketInfo("AUDJPY",MODE_BID)+50*Point,MarketInfo("AUDJPY",MODE_BID)-16*Point,"",0,0,Red);
OrderSend("GBPJPY",OP_BUY,Lots,MarketInfo("GBPJPY",MODE_ASK),3,MarketInfo("GBPJPY",MODE_ASK)-50*Point,MarketInfo("GBPJPY",MODE_ASK)+17*Point,"",0,0,Blue);
OrderSend("GBPJPY",OP_SELL,Lots,MarketInfo("GBPJPY",MODE_BID),3,MarketInfo("GBPJPY",MODE_BID)+50*Point,MarketInfo("GBPJPY",MODE_BID)-17*Point,"",0,0,Red);
}
-----------------------------------------------------------------------------------
Expert need your help~ Please help me to modify it~
Newbie question: why Alert function not working?
I only add follow two lines to the "Start()" function.
Alert("hsdfsdfsdlfsdfsd");
Print("hsdfsdfsdlfsdfsd");
This is simple enough, alert didnt show up and I checked "expert" tab, log not there.
Do I need to set some options to enable alert and print function?
Library file problem
I have a strange problem with a library file.
I have an EA which uses the LibOrderReliable_V1_1_4
library file by Matthew Kennel.
This file and the stdlib file are in the folder
"C:\Program Files\MT4\experts\libraries".
I can open both files from this location in MetaEditor.
The first lines of the EA are -
#include
#include
#include
When I compile the EA, I get the error message -
'LibOrderReliable_v1_1_4.mqh' - cannot open the program file
Does anyone know why this is so, when there is no problem opening stdlib.mqh?
I have a strange problem with a library file.
I have an EA which uses the LibOrderReliable_V1_1_4
library file by Matthew Kennel.
This file and the stdlib file are in the folder
"C:\Program Files\MT4\experts\libraries".
I can open both files from this location in MetaEditor.
The first lines of the EA are -
#include
#include
#include
When I compile the EA, I get the error message -
'LibOrderReliable_v1_1_4.mqh' - cannot open the program file
Does anyone know why this is so, when there is no problem opening stdlib.mqh?Hi Apres,
I needed that file for my EA also and I ended up finding out that I actually needed two files:
1) 'LibOrderReliable_v1_1_4.mqh' - I put the "mqh" file in the "expert\includes" folder
2) Then I needed a "mq4" file also
'LibOrderReliable_v1_1_4.mq4'
I put this file in the "experts\library" folder:
'LibOrderReliable_v1_1_4.mq4 --> compile to "exe" file
Now run your EA and it should work.
Search this TSD site or the web if you need to find the files (I only have an earlier version).
Hope this helps,
Robert
How to stop "not enough money"
i understand there's lack of margin to allow the ticket to be accepted.
How do i end the cycle and wait for the current trades to close and stop the "Not enough money"? break; somewhere? im using martingale to a trade limit
My order send sell then buy:
void OpenMarketOrders()
{
int cnt=0;
int err=0;
if (myOrderType==1 && ContinueOpening)
{
if ((Bid-LastPrice)>=Pips*Point || OpenOrders<1)
{
SellPrice=Bid;
LastPrice=0;
if (TakeProfit==0) { tp=0; }
else { tp=SellPrice-TakeProfit*Point; }
if (StopLoss==0) { sl=0; }
else { sl=SellPrice+StopLoss*Point; }
if (OpenOrders!=0)
{
mylotsi=lotsi;
for(cnt=0;cnt<OpenOrders;cnt++)
{
if (Lots<0.1) { mylotsi=NormalizeDouble(mylotsi*multiply,2); }
else { mylotsi=NormalizeDouble(mylotsi*multiply,1); }
}
} else { mylotsi=lotsi; }
if (mylotsi>100) { mylotsi=100; }
RefreshRates();
ticket=OrderSend(Symbol(),OP_SELL,mylotsi,SellPrice,slippage,0,0,Comments,MagicNumber,0,ArrowsColor);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,0,ArrowsColor);
err=GetLastError();
if(err==0 || err==4 || err==136 || err==137 || err==138 || err==146) //Busy errors
{
Sleep(5000);
}
else
{
Print("OrderSend failed with error #",GetLastError());
}
}
return(0);
}
}
if (myOrderType==2 && ContinueOpening)
{
if ((LastPrice-Ask)>=Pips*Point || OpenOrders<1)
{
BuyPrice=Ask;
LastPrice=0;
if (TakeProfit==0) { tp=0; }
else { tp=BuyPrice+TakeProfit*Point; }
if (StopLoss==0) { sl=0; }
else { sl=BuyPrice-StopLoss*Point; }
if (OpenOrders!=0) {
mylotsi=lotsi;
for(cnt=0;cnt<OpenOrders;cnt++)
{
if (Lots<0.1) { mylotsi=NormalizeDouble(mylotsi*multiply,2); }
else { mylotsi=NormalizeDouble(mylotsi*multiply,1); }
}
} else { mylotsi=lotsi; }
if (mylotsi>100) { mylotsi=100; }
RefreshRates();
ticket=OrderSend(Symbol(),OP_BUY,mylotsi,SellPrice,slippage,0,0,Comments,MagicNumber,0,ArrowsColor);
if(ticket>0)
{
OrderSelect(ticket,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),sl,tp,0,ArrowsColor);
err=GetLastError();
if(err==0 || err==4 || err==136 || err==137 || err==138 || err==146) //Busy errors
{
Sleep(5000);
}
else
{
Print("OrderSend failed with error #",GetLastError());
}
}
return(0);
}
}
}
Why not just check the margin at the beginning of the fucntion and if it's less than the required amount return.
Lux
isnt that a harder way to go about it being theres multi trades open?
or whats the code for testing FreeMargin to place (noob)
what about...
if(err==0 || err==4 || err==136 || err==137 || err==138 || err==146) //Busy errors
{
Sleep(5000);
}
else
{
Break; //--where do i put the While loop()?
}
}
return(0);
}
}
}
There's a few functions regarding free margin such as AccountMargin( ) . Take a look in the help file and see which one best fits your needs.
Lux
A little help
I am new to programming, i've spent a lot of time trying to figure out how to make this work. Can anyone code an ex.4 so that the moving averages on the file I have attached will show up on one graph for different TF's?
Any help would be greatly appreciated.