Orders Execution
Miscellaneous
0
Views
0
Downloads
0
Favorites
MultiOrders
//+------------------------------------------------------------------+
//| MultiOrders.mq4 |
//| `Shu |
//| http://SovetnikShu.ru |
//+------------------------------------------------------------------+
#property copyright "`Shu"
#property link "http://SovetnikShu.ru"
// #property show_confirm
// #property show_inputs
#import "moo.dll"
void ShowIn(double& Arr[]);
// #include <ShuLib.mq4>
extern int Magic=50005;
// #include <TF.mq4>
string shu=" [1.03] (c) `Shu [http://SovetnikShu.ru]";
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
int start()
{
int i;
int t, tb, ts;
int ssi;
int f;
int cmd;
double d;
double pr, sl, tp, lot;
bool b;
string s;
string ss[5];
string ord1[3];
string ord[5][3];
Print(WindowExpertName() + shu);
// if (false) { Qu(); QuTF(); }
double Arr[5];
//----
Arr[0]=1;
Arr[1]=2;
Arr[2]=3;
//----
FileDelete("orders.txt");
ShowIn(Arr);
f=FileOpen("orders.txt", FILE_CSV|FILE_READ, "*");
//----
if (f==-1)
{
Alert("- íå ñìîãëè îòêðûòü ôàéë îðäåðîâ!");
return(false);
}
ssi=0;
while(!FileIsEnding(f))
{
s=FileReadString(f);
if (s!="")
{
ss[ssi]=s;
ssi++;
}
}
FileClose(f);
//----
for(i=0; i < ssi; i++)
{
Print(ss[i]);
MassStr(ss[i], ";", ord1);
if (ArraySize(ord1) < 3)
{
// - åñëè êîììåíòà âäðóã íåò. ìàëî ëè?
ArrayResize(ord1, 3);
ord1[2]="";
}
ord[i][0]=ord1[0];
ord[i][1]=StrRep(ord1[1], ",", ".");
ord[i][2]=ord1[2];
if (MarketInfo(ord[i][0], MODE_POINT)==0)
{
Print("Íå ìîãó ïîëó÷èòü èíôîðìàöèþ î ñèìâîëå " + ord[i][0] + ". Ïðåêðàùàþ ðàáîòó!");
return(false);
}
}
for(i=0; i < ssi; i++)
{
lot=StrToDouble(ord[i][1]);
if (lot==0) continue;
pr =iif(lot > 0, MarketInfo(ord[i][0], MODE_ASK), MarketInfo(ord[i][0], MODE_BID));
cmd=iif(lot > 0, OP_BUY, OP_SELL);
lot=MathAbs(lot);
OrderSend(ord[i][0], cmd, lot, pr, 0, 0, 0, ord[i][2], Magic);
}
//----
return(0);
}
// íà âõîäå: ñòðîêà ñ ðàçäåëèòåëÿìè
// íà âûõîäå: ìàññèâ ñòðîê
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int MassStr( string s, string Ðàçäåëèòåëü, string& mass[])
{
int i;
int Íàøëè;
string s1;
//----
ArrayResize(mass, 100);
Íàøëè=0;
while( s!="")
{
i=StringFind( s, Ðàçäåëèòåëü, 0);
if(i==-1)i=255;
s1=StringTrimRight(StringTrimLeft(StringSubstr( s, 0, i)) );
s=StringTrimRight(StringTrimLeft(StringSubstr( s, i+1, 255)));
mass[Íàøëè]=s1;
Íàøëè++;
}
ArrayResize(mass, Íàøëè);
//----
return(Íàøëè);
}
// óñëîâíîå íàçíà÷åíèå DOUBLE (!)
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
double iif( bool Óñëîâèå, double ÏåðâîåÇíà÷åíèå, double ÂòîðîåÇíà÷åíèå)
{
if (Óñëîâèå) return(ÏåðâîåÇíà÷åíèå);
else return(ÂòîðîåÇíà÷åíèå);
}
string StrRep(string s, string old, string new)
{
string r;
//----
int i;
int iOld, iNew;
int ii;
//----
string ss;
iOld=StringGetChar(old, 0);
iNew=StringGetChar(new, 0);
//----
r="";
ss=" ";
for(i=0; i < StringLen(s); i++)
{
ii=StringGetChar(s, i);
if (ii==iOld)
{
ss=StringSetChar(ss, 0, iNew);
}
else
{
ss=StringSetChar(ss, 0, ii);
}
r=r + ss;
}
//----
return(r);
}
//+------------------------------------------------------------------+
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
---