Funkcja - zamykanie zlecenia na koniec swiecy

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
xpep
Pasjonat
Pasjonat
Posty: 844
Rejestracja: 02 gru 2007, 11:50

Nieprzeczytany post autor: xpep »

musisz skasowac historie i najlepiej sciagnac dane np z dukaskopy z demo i zaimportowac do mt4

bialy
Stały bywalec
Stały bywalec
Posty: 54
Rejestracja: 16 maja 2011, 20:41

to ja sprecyzuje

Nieprzeczytany post autor: bialy »

do EA najlepszym rozwiazaniem na nowa swieczke jest rozwiazanie z tad
http://sufx.core.t3-ism.net/ExpertAdvisorBuilder/
czyli przed init:

Kod: Zaznacz cały

int BarCount;
jesli chcemy pominac swieczke obecna to w init:

Kod: Zaznacz cały

BarCount = Bars;
dla pewnosci mozna wczesniej umiescic Sleep(5000) co zamrozi EA na 5s
na koncu EA:

Kod: Zaznacz cały

BarCount = Bars;
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

Kod: Zaznacz cały

for(int i=OrdersTotal()-1;i>=0;i--) {
   //warunki i funkcja zamykajaca
}
tak mam w skrypcie: /dziala na pewno/

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);
}
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:

Kod: Zaznacz cały

if(Open[i] == Close[i] && High[i]==Low[i] ...) {
   //warunki/
}
jedyne rozsadne, proste i zawsze dzialajace to te z BarCount
polecam funkcje ErrorDescription()
standardowa z MT4
oszczedzajmy cykle procesora

ODPOWIEDZ