Kasia20 pisze:Witam,
mam problem z napisaniem własnego EA. Moim celem jest otwieranie pozycji długiej, kiedy wskaźnik zaczyna rosnąć i na odwrót. Próbowałam stworzyć to na zasadzie, że jeżeli wartość wskaźnika z danego okresu jest większa od wartości wskaźnika z okresu poprzedniego, wtedy BUY. Wtedy jednak kupowanie odbywałoby się również przez kolejne okresy. Czy jest jakaś dobra osoba, która pomogłaby mi rozwiązać ten problem lub też widziała podobny EA, żebym mogła sama do tego dojść? Dodam, iż EA próbowałam robić w "Expert Advisor Builder for MetaTrader 4".
Kasia
Można to zrobić na kilka sposobów. Na przykład w przypadku iMA skorzystać jak napisał Andrzej z "shift". Dla innych wskaźników korzystamy z funkcji iCustom tylko w samym wskaźniku trzeba stworzyć bufory i na nich operować.
Można stworzyć obiekty graficzne (jakieś strzałki), gdy określone warunki są spełnione w wskaźniku a następnie EA odczytuje czy owe obiekty zostały stworzone. Jeżeli tak to otwiera określone zlecenie. Przykład współpracy EA i wskaźnika
IND
Kod: Zaznacz cały
if( określone warunki )
{
// ARROW_BUY
ObjectDelete("ARROW_BUY");
ObjectCreate("ARROW_BUY", OBJ_ARROW, 0, iTime(Symbol(),PERIOD_CURRENT,SHIFT_BUY), Low[SHIFT_BUY]);
ObjectSet("ARROW_BUY",OBJPROP_WIDTH,4);
ObjectSet("ARROW_BUY",OBJPROP_COLOR,DarkOrange);
}
EA
Kod: Zaznacz cały
void OnTick()
{
// BUY
if(!ObjectFind(0,"ARROW_BUY") && NewBar() == true)
{
if(!ObjectFind("TP_BUY"))
{
TP_BUY = ObjectGetDouble(0,"TP_BUY",OBJPROP_PRICE,0);
}
if(!ObjectFind("SL_BUY"))
{
SL_BUY = ObjectGetDouble(0,"SL_BUY",OBJPROP_PRICE,0);
}
bool BUY = OrderSend(NULL,OP_BUY,LOT,Ask,3,SL_BUY,TP_BUY,NULL,MAGIC,0,clrRed);
}
}