Orders Execution
0
Views
0
Downloads
0
Favorites
TestMajor
//+------------------------------------------------------------------+
//| TestMajor.mq4 |
//| Copyright 2013, papaklass. |
//| http://www.mql4.com/ru/users/papaklass |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, papaklass."
#property link "http://www.mql4.com/ru/users/papaklass"
#property strict
#property show_inputs
extern int DIR = OP_BUY; //0 - OP_BUY, 1 - OP_SELL
extern double RISK = 0.05; //ïðîöåíò îò áàëàíñà (AccountBalance * RISK)
//èíñòðóìåíòû ïî êîòîðûì îòêðûâàþòñÿ ïîçèöèè
string sy[6] = {"AUDUSD", "EURUSD", "GBPUSD", "USDCHF", "USDJPY", "USDCAD"};
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
//----
int a;
//öèêë îòêðûòèÿ ïîçèöèé
for(int i = 0; i < 6; i++){
ResetLastError();
//îáúÿâëåíèå ëîêàëüíûõ ïåðåìåííûõ è ïîëó÷åíèå ðûíî÷íîãî îêðóæåíèÿ ïî ñèìâîëó
double vl = AccountBalance() * RISK / MarketInfo( sy[i], MODE_MARGINREQUIRED );
double price = Dbl_If(DIR == OP_BUY, MarketInfo( sy[i], MODE_ASK ), MarketInfo( sy[i], MODE_BID ));
//íîðìàëèçóåì îáúåì îòêðûâàåìîé ïîçèöèè
vl = NormalLot(vl, i);
Print(sy[i]," vl = ",vl," price = ",price);
a = OrderSend(sy[i], DIR, vl, price, 3, 0, 0, "", 12345, 0, Green);
if(a < 0)Print("Îøèáêà ïðè îòêðûòèè îðäåðà ïî ñèìâîëó ", sy[i]," err = ",GetLastError());
}
//----
return(0);
}
//+------------------------------------------------------------------+
double Dbl_If(bool Condition, double value1, double value2){
if(Condition)return(value1);
else return(value2);
}
//+------------------------------------------------------------------+
//âîçâðàùàåò íîðìàëèçîâàííûé ëîò
double NormalLot( double lot, int nmb ){
int k = 0;
double minLot = MarketInfo( sy[nmb], MODE_MINLOT );
double maxLot = MarketInfo( sy[nmb], MODE_MAXLOT );
double step = MarketInfo( sy[nmb], MODE_LOTSTEP );
if( step <= 0.001 ){ k=3; }else{
if( step <= 0.01 ){ k=2; }else{
if( step <= 0.1 ){ k=1; } } }
if( maxLot != 0 ){
return( NormalDbl( MathMin( maxLot, MathMax( minLot, lot ) ), nmb, k ) );
}else{
return( NormalDbl( MathMax( minLot, lot ), nmb, k ) );
}
return( -1 );
}//----------------------------------------------------------------------------+
//âîçâðàùàåò íîðìàëèçîâàííîå çíà÷åíèå òèïà Double â ñëó÷àå óñïåõà
//è -1 â îáðàòíîì ñëó÷àå
double NormalDbl( double d, int nmb, int n = -1 ){
int dgt = (int)MarketInfo( sy[nmb], MODE_DIGITS );
if( n < 0 ){ return( NormalizeDouble( d, dgt ) ); }
if( n >= 0 ){ return( NormalizeDouble( d, n ) ); }
return( -1 );
}//----------------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---