Funkcja - zamykanie zlecenia na koniec swiecy
to ja sprecyzuje
do EA najlepszym rozwiazaniem na nowa swieczke jest rozwiazanie z tad
http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
czyli przed init:
jesli chcemy pominac swieczke obecna to w init:
dla pewnosci mozna wczesniej umiescic Sleep(5000) co zamrozi EA na 5s
na koncu EA:
to dziala zawsze. zmienne statyczne sa w tym przypadku niepotrzebne
co do zamykania pozycji albo funkcji zamykajacych wszystkie istniejace, zawsze petla musi odliczac wstecz, tak jak bylo kilka postow wczesniej
tak mam w skrypcie: /dziala na pewno/
dla niewtajemniczonych GlobalVariable wywolujemy F3, bardzo przydatne gdy pewne zmienne zmieniamy rzadko
rozwiazanie z Volume[0]==1 dobre jest we wskaznikach,ale po kilku blednych zachowaniach jednak z niego zrezygnowalem
widzialem jeszcze jedno:
jedyne rozsadne, proste i zawsze dzialajace to te z BarCount
polecam funkcje ErrorDescription()
standardowa z MT4
http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
czyli przed init:
Kod: Zaznacz cały
int BarCount;
Kod: Zaznacz cały
BarCount = Bars;
na koncu EA:
Kod: Zaznacz cały
BarCount = Bars;
co do zamykania pozycji albo funkcji zamykajacych wszystkie istniejace, zawsze petla musi odliczac wstecz, tak jak bylo kilka postow wczesniej
Kod: Zaznacz cały
for(int i=OrdersTotal()-1;i>=0;i--) {
//warunki i funkcja zamykajaca
}
Kod: Zaznacz cały
#import "stdlib.ex4"
string ErrorDescription(int error_code);
int start() {
for(int i=OrdersTotal()-1;i>=0;i--) {
if(OrderSelect(i,SELECT_BY_POS, MODE_TRADES)) {
if(OrderSymbol()==Symbol() && (OrderMagicNumber()==GlobalVariableGet("ManualMagic") || GlobalVariableGet("ManualMagic")==0)) {
if(OrderType()==OP_BUY) {
if(OrderClose(OrderTicket(),OrderLots(),Bid,GlobalVariableGet("Slippage"),Orange)) {
Print("Order #"+OrderTicket()+" successfully closed at price ",Bid);
PlaySound("ok");
}
else
Print("Blad zamkniecia pozycji. ",ErrorDescription(GetLastError()));
}
if(OrderType()==OP_SELL) {
if(OrderClose(OrderTicket(),OrderLots(),Ask,GlobalVariableGet("Slippage"),Orange)) {
Print("Order #"+OrderTicket()+" successfully closed at price ",Ask);
PlaySound("ok");
}
else
Print("Blad zamkniecia pozycji. ",ErrorDescription(GetLastError()));
}
}
}
}
return(0);
}
rozwiazanie z Volume[0]==1 dobre jest we wskaznikach,ale po kilku blednych zachowaniach jednak z niego zrezygnowalem
widzialem jeszcze jedno:
Kod: Zaznacz cały
if(Open[i] == Close[i] && High[i]==Low[i] ...) {
//warunki/
}
polecam funkcje ErrorDescription()
standardowa z MT4
oszczedzajmy cykle procesora