skrypt w mql nie zawiera wogóle tranzakcji

O jezykach programowania w platformach i nie tylko.
Mateusz Mazurek
Uczestnik
Uczestnik
Posty: 1
Rejestracja: 11 lis 2010, 14:09

skrypt w mql nie zawiera wogóle tranzakcji

Nieprzeczytany post autor: Mateusz Mazurek »

Tutaj daje skrypcik, ale niestety nie zawiera żadnej transakcji, może jakiś doświadczony gracz mi pomoże

Kod: Zaznacz cały

//+------------------------------------------------------------------+ 
//|                                                      M&M Inc.mq4 | 
//|                      Copyright ˆ 2011, MetaQuotes Software Corp. | 
//|                                        http://www.metaquotes.net | 
//+------------------------------------------------------------------+ 
#property copyright "Copyright ˆ 2011, MetaQuotes Software Corp." 
#property link      "http://www.metaquotes.net" 

//+------------------------------------------------------------------+ 
//| script program start function                                    | 
//+------------------------------------------------------------------+ 
int start() 
  { 
//---- 
   if(OrdersTotal() == 0) 
    { 
    double cena = Bid; 
    double   ma = iMA(NULL,0,21,6,MODE_SMA,PRICE_CLOSE,3); 
        if(cena - ma > 4) 
        { 
        OrderSend("EURUSD",OP_BUY,0.2,Ask,2,Bid-20*Point,Bid+10*Point); 
        return; 
        } 
        else if(ma - cena > 4) 
        { 
        OrderSend("EURUSD",OP_SELL,0.2,Ask,2,Bid-20*Point,Bid+10*Point); 
        return; 
        } 
    } 
//---- 
   return(0); 
  } 
//+------------------------------------------------------------------+ 

Awatar użytkownika
thisredone
Stały bywalec
Stały bywalec
Posty: 72
Rejestracja: 05 sie 2010, 17:07

Nieprzeczytany post autor: thisredone »

(cena - ma) poda ci wynik typu 0.0005 więc musisz zrobić 4*Point
poza tym przy OrderSend z type OP_SELL take profit musi być poniżej ceny, a stoploss powyżej. Dodatkowo warto zaznaczyć, że sprzedaje się po Bid, a nie po Ask.

Kod: Zaznacz cały

int start() 
{
 if(OrdersTotal() == 0) 
  { 
  double cena = Bid; 
  double ma = iMA(NULL,0,21,6,MODE_SMA,PRICE_CLOSE,3);
      if(cena - ma > 4*Point)
         OrderSend("EURUSD",OP_BUY,0.2,Ask,2,Bid-20*Point,Bid+10*Point);
      else if(ma - cena > 4*Point) 
         OrderSend("EURUSD",OP_SELL,0.2,Bid,2,Ask+20*Point,Ask-10*Point);
      int err=GetLastError();
      if(err!=0) Alert(err);
  }
}

ODPOWIEDZ