personov pisze:Pjetja - sformułowanie iCustom jest OK. Wyświetla prawidlowe watości.
Problem jest w kodzie EA, ale nie wiem co rozumiesz przez "rozsypuje się".
Nie wiem też jak sformułowałeś "tp".
W OrderSend() formułę StopLoss daj sobie nawiasy Ask-(.....).
Pokombinuj eliminując powoli wszystko. Np. spróbuj otworzyć pozycję bez TP i SL i zobacz, czy OK. Później dodaj samo TP i zobacz....i tak dalej. Trzeba pokombinować.
Tylko że właśnie po iCustom mam Comment i wypisuje źle.
Tutaj kod EA. Chyba tu nie ma być co nie tak
Kod: Zaznacz cały
#property link ""
#define MAGICV 201301191158
//--- input parameters
extern double Lot=0.1;
extern int TrailingStop=37;
extern int StopLoss = 50;
//--- variables
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//Ilość środków na koncie
Print( "Dostępne środki na koncie=",AccountFreeMargin() );
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| otwarcie pozycji długiej |
//+------------------------------------------------------------------+
int OpenLong(double tp)
{
int ticket;
if (OrdersTotal()==0) //jeżeli nie ma otwartych pozycji
{
ticket=OrderSend(Symbol(),OP_BUY,Lot,Ask,3,Ask-(StopLoss*Point*10),tp,"",MAGICV,0,Blue); //zajmij pozycję długą
}
}//END OpenLong()
//+------------------------------------------------------------------+
//| otwarcie pozycji krótkiej |
//+------------------------------------------------------------------+
int OpenShort(double tp)
{
int ticket;
if (OrdersTotal()==0) //jeżeli nie ma otwartych pozycji
{
ticket=OrderSend(Symbol(),OP_SELL,Lot,Bid,3,Bid+(StopLoss*Point*10),tp,"",MAGICV,0,Red); //zajmij pozycję krótką
}
}//END OpenShort()
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
if(Bars<100)
{
Print("Bład danych. Liczba słupków poniżej 100.");
return(0);
}
//obliczenie własnego wskaźnika
double Pivot = iCustom(NULL,0,"Pivot_Lev",0,0);
double Support = iCustom(NULL,0,"Pivot_Lev",1,0);
double Resistance = iCustom(NULL,0,"Pivot_Lev",2,0);
Comment
(
"\n"+
"Pivot "+Pivot
+"\n"+
"Support "+Support
+"\n"+
"Resistance "+Resistance
);
if(Open[1]>Pivot && Close[1]<Pivot)
{OpenShort(Support);}
if(Open[1]<Pivot && Close[1]>Pivot)
{OpenLong(Resistance);}
return(0);
}
//+------------------------------------------------------------------+
Ze zmianą SL i TP też próbowałem i nic to nie zmienia. Nie wiem co tu jeszcze może nie działać. Albo niedowidzę albo czegoś nie wiem.