#property strict
#import "C:\\MBW.dll"
void save1(double a,double b);
double get2(int t);
double get1(int t1);
#import
int Magic=1245;
double lot=0.01;
double mindiffrent=1;
double mindiffrentclose=0.5;
double daltabuy,daltasell,sp1,sp2;
int D=1;
void OnStart()
{
if(Point==0.00001||Point==0.001)D==10;
GlobalVariableSet("stop",1);
int r=1;double stop,yy,now;
while(r==1){
Comment("Script is working");
stop=GlobalVariableGet("stop");
if(stop==10)break;
double ask,bid;
ask=get2(1);
bid=get2(2);
if(ask==0||bid==0||ask<1||bid<1||ask>500||bid>500)continue;
daltabuy=(bid-Ask)/(Point*D);
daltasell=(Bid-ask)/(Point*D);
if(Tick(0)==0){
if(daltabuy>=mindiffrent){OpenBuy();Print("Buy==ask="+Ask+" bid="+bid);}
if(daltasell>=mindiffrent&&Tick(0)==0){OpenSell();Print("Sell==bid"+Bid+" ask="+ask);}
}
if(Tick(1)==1&&Tick(2)==0){
if(daltasell>=mindiffrentclose){CloseAll();save1(33,33);now=33;}
}
if(Tick(2)==2&&Tick(1)==0){
if(daltabuy>=mindiffrentclose){CloseAll();save1(33,33);now=33;}
}
if(Tick(1)==1){save1(11,11);now=11;}
if(Tick(2)==2){save1(22,22);now=22;}
yy=get1(1);
if(yy!=now){// emergency
Sleep(1);
RefreshRates();
}else{
Sleep(100);
RefreshRates();
}
}
save1(0,0);
Comment("Script is stopped");
}
int Tick(int t){
int T=0;
for (int i = 0; i < OrdersTotal(); i++) {
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if (OrderSymbol() == Symbol()&& OrderMagicNumber() == Magic) {
if ((OrderType() == OP_BUY||OrderType() == OP_SELL)&& T< OrderTicket()) {
if(OrderType() == OP_BUY&&(t==1||t==0))T= 1;
if(OrderType() == OP_SELL&&(t==2||t==0))T= 2;
}
}
}
}
return(T);
}
int OpenBuy(){
int R=0;
R=OrderSend(Symbol(),OP_BUY,lot,Ask,3,0,0,"",Magic,0,Green);
if(R<0){
Sleep(1);
RefreshRates();
Print(GetLastError());
}
return(0);
}
int OpenSell(){
int R=0;
R=OrderSend(Symbol(),OP_SELL,lot,Bid,3,0,0,"",Magic,0,Red);
if(R<0){
Sleep(1);
RefreshRates();
}else{Print(GetLastError());}
return(0);
}
int CloseAll()
{
int T=OrdersTotal();
for (int r=T-1;r>=0;r--)
{
if(OrderSelect(r,SELECT_BY_POS,MODE_TRADES)){
if(OrderMagicNumber()==Magic&&OrderSymbol()==Symbol())
{
if(OrderType()==OP_BUY)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3);
Sleep(1);
RefreshRates();
}
if(OrderType()==OP_SELL)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3);
Sleep(1);
RefreshRates();
}
}
}
}
return(0);
}