Středa 16. říjen 2019 09:28
reklama
reklama
Admiral Markets SE
reklama
XTB strategie

AOS - problém s kódem

AOS - problém s kódem. Prosím pomoc.

Jste na diskusním fóru jako nepřihlášený uživatel a Vaše funkce jsou tak omezené. Pro neomezený přístup je nutné být registrovaný a přihlášený uživatel. Nejste-li registrován/a klikněte pro bezplatnou registraci. Jednoduchá registrace vám otevře cestu k profesionálním informacím.

Registrací na FXstreet.cz můžete získat:

  • Možnost diskutovat s ostatními tradery.
  • Vkládání nových příspěvků a zakládání nových témat v diskusním fóru.
  • Možnost vyhledávání v tomto velmi rozsáhlém diskusním fóru.
  • Přístup k uzamčeným odborným článkům, sekcím a školy forexu.
  • Ebooky, manuály a obchodní systémy zdarma.
  • Zasílání newsletterů a informací o nových akcích a aktivitách portálu FXstreet.cz
  • Možnost psát vlastní blogy a články.
  • Možnost objednání tradingových knih, seminářů nebo VIP zóny.
  • Další přínosné informace z oblasti obchodování na forexu.
Autor AOS - problém s kódem (30 odpovědí)
Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
AOS 22.11.2010 15:41

Zdravim 

 

 

pokousel sem se napsat si jednoducheho robota ( krizeni  Ema + filtry )

ale ani za boha se mi to ne a ne podarit :( porad mi to pise "\end_of_program - unbalanced left paranthesis" prochazel sem to x krat , a porad se mi zda, ze vsechny zavorky jsou sparovane a nemuzu taam zadnou chybu najit :( muze te mi prosim poradit kde je chyba ??  - vim, ze mezi klavesnici a zidli :)

 

extern double Lots = 0.01;

extern int EmaS = 5;

extern int CCI = 14;

extern int BB_Perioda = 12;  

extern int MACD_fast = 3;

extern int MACD_slow = 15;

extern int MACD_signal = 3;

extern int Stoch_K = 3;

extern int Stoch_D = 3;

extern int Stoch_Period = 8;

extern int Stoch_Citlivost = 20;

 

int start()

{

  int ticket, Sl, Tp;

  double EMA=iMA(NULL,0,EmaS,0,MODE_EMA,PRICE_CLOSE,1);

  double EMAP=iMA(NULL,0,EmaS,0,MODE_EMA,PRICE_CLOSE,2);

  double BBStred=iBands(NULL,0,BB_Perioda,2,0,PRICE_TYPICAL,MODE_MAIN,1);

  double BBStredP=iBands(NULL,0,BB_Perioda,2,0,PRICE_TYPICAL,MODE_MAIN,2);

  double BBHorni = iBands(NULL,0,BB_Perioda,2,0,PRICE_TYPICAL,MODE_UPPER,1);

  double BBSpodni = iBands(NULL,0,BB_Perioda,2,0,PRICE_TYPICAL,MODE_LOWER,1);

  double CCIH = iCCI(NULL,0,CCI,PRICE_TYPICAL,1);

  double MACDH = iMACD(NULL,0,MACD_fast,MACD_slow,MACD_signal,PRICE_TYPICAL,MODE_MAIN,1);

  double Stoch = iStochastic(NULL,0,Stoch_K,Stoch_D,Stoch_Period,MODE_SMA,0,MODE_MAIN,1);

 

 

 

 

 

if (EMAP<BBStredP  && EMA>BBStred && CCIH>0 && MACDH>0 && Stoch<Stoch_Citlivost )

   {

     Sl = MathRound((Ask - BBSpodni)*(MathPow(10,(Digits-1)));

     Tp = MathRound((BBHorni - Bid) *(MathPow(10,(Digits-1))*2));

    ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-Sl*Point,Ask+Tp*Point,"",0,0,Green);

    if(ticket>0)(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Vstup BUY : ",OrderOpenPrice())

       else Print("Chyba Buy : ",GetLastError());          

   return(0);

  }

 if (EMAP > BBStredP  && EMA < BBStred && CCIH < 0 && MACDH < 0 && Stoch < (100-Stoch_Citlivost) ) 

   {

    Sl = MathRound((BBHorni - Bid)*(MathPow(10,(Digits-1)));

    Tp = MathRound((Ask - BBSpodni) *(MathPow(10,(Digits-1))*2));

    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+Sl*Point,Bid-Tp*Point,"-",0,0,Red);

    if(ticket>0)(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Vstup SELL : ",OrderOpenPrice()) else Print("Chyba Sell: ",GetLastError());

  }

}

Mike_I
Veteran member
avatar
Příspěvky: 2146
Více informací o uživateli >>
Re: AOS 22.11.2010 15:55
Odpověď na: Bindig

Zdravim 

 

 

pokousel sem se napsat si jednoducheho robota ( krizeni  Ema + filtry )

ale ani za boha se mi to ne a ne podarit :( porad mi to pise "\end_of_program - unbalanced left paranthesis" prochazel sem to x krat , a porad se mi zda, ze vsechny zavorky jsou sparovane a nemuzu taam zadnou chybu najit :( muze te mi prosim poradit kde je chyba ??  - vim, ze mezi klavesnici a zidli :)

 

extern double Lots = 0.01;

extern int EmaS = 5;

extern int CCI = 14;

extern int BB_Perioda = 12;  

extern int MACD_fast = 3;

extern int MACD_slow = 15;

extern int MACD_signal = 3;

extern int Stoch_K = 3;

extern int Stoch_D = 3;

extern int Stoch_Period = 8;

extern int Stoch_Citlivost = 20;

 

int start()

{

  int ticket, Sl, Tp;

  double EMA=iMA(NULL,0,EmaS,0,MODE_EMA,PRICE_CLOSE,1);

  double EMAP=iMA(NULL,0,EmaS,0,MODE_EMA,PRICE_CLOSE,2);

  double BBStred=iBands(NULL,0,BB_Perioda,2,0,PRICE_TYPICAL,MODE_MAIN,1);

  double BBStredP=iBands(NULL,0,BB_Perioda,2,0,PRICE_TYPICAL,MODE_MAIN,2);

  double BBHorni = iBands(NULL,0,BB_Perioda,2,0,PRICE_TYPICAL,MODE_UPPER,1);

  double BBSpodni = iBands(NULL,0,BB_Perioda,2,0,PRICE_TYPICAL,MODE_LOWER,1);

  double CCIH = iCCI(NULL,0,CCI,PRICE_TYPICAL,1);

  double MACDH = iMACD(NULL,0,MACD_fast,MACD_slow,MACD_signal,PRICE_TYPICAL,MODE_MAIN,1);

  double Stoch = iStochastic(NULL,0,Stoch_K,Stoch_D,Stoch_Period,MODE_SMA,0,MODE_MAIN,1);

 

 

 

 

 

if (EMAP<BBStredP  && EMA>BBStred && CCIH>0 && MACDH>0 && Stoch<Stoch_Citlivost )

   {

     Sl = MathRound((Ask - BBSpodni)*(MathPow(10,(Digits-1)));

     Tp = MathRound((BBHorni - Bid) *(MathPow(10,(Digits-1))*2));

    ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-Sl*Point,Ask+Tp*Point,"",0,0,Green);

    if(ticket>0)(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Vstup BUY : ",OrderOpenPrice())

       else Print("Chyba Buy : ",GetLastError());          

   return(0);

  }

 if (EMAP > BBStredP  && EMA < BBStred && CCIH < 0 && MACDH < 0 && Stoch < (100-Stoch_Citlivost) ) 

   {

    Sl = MathRound((BBHorni - Bid)*(MathPow(10,(Digits-1)));

    Tp = MathRound((Ask - BBSpodni) *(MathPow(10,(Digits-1))*2));

    ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+Sl*Point,Bid-Tp*Point,"-",0,0,Red);

    if(ticket>0)(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Vstup SELL : ",OrderOpenPrice()) else Print("Chyba Sell: ",GetLastError());

  }

}

nechybi tady neco ?

     Sl = MathRound ( ( Ask - BBSpodni )*( MathPow( 10,( Digits-1 ) ) ) ;

 

Michel Aspron - tým traderů FXstreet.cz
Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
Re 22.11.2010 15:59

taky sem se divil, ze tam neni na kolik mist zaokrouhlit, ale v helpu je u MathRound psano pouze 1 cislo s tim ze zjevne se to zaokrouhluje na cele cislo - alespon tak sem to z heplu pochopil

Mike_I
Veteran member
avatar
Příspěvky: 2146
Více informací o uživateli >>
Re: Re 22.11.2010 16:03
Odpověď na: Bindig

taky sem se divil, ze tam neni na kolik mist zaokrouhlit, ale v helpu je u MathRound psano pouze 1 cislo s tim ze zjevne se to zaokrouhluje na cele cislo - alespon tak sem to z heplu pochopil

spis se mi zda, ze nesedi pocty zavorek..

Michel Aspron - tým traderů FXstreet.cz
japapatramtara
Gold member
avatar
Příspěvky: 636
Více informací o uživateli >>
Re: Re 22.11.2010 16:12
Odpověď na: Bindig

taky sem se divil, ze tam neni na kolik mist zaokrouhlit, ale v helpu je u MathRound psano pouze 1 cislo s tim ze zjevne se to zaokrouhluje na cele cislo - alespon tak sem to z heplu pochopil

já nevím, že něktěří lidé mají tak neskutečný problém s pochopením psaného textu. V helpu od MathRound se jasně píše

"Returns value rounded to the nearest integer of the specified numeric value." takže mi tak nějak uniká, proč by to mělo mít víc parametrů. 

Mike spíš myslel, že ti chybí jedna pravá závorka v tom řádku, co ti vykopíroval... 

Jan Mareček - senior teapot manager
Mike_I
Veteran member
avatar
Příspěvky: 2146
Více informací o uživateli >>
Re: Re: Re 22.11.2010 16:19
Odpověď na: japapatramtara

já nevím, že něktěří lidé mají tak neskutečný problém s pochopením psaného textu. V helpu od MathRound se jasně píše

"Returns value rounded to the nearest integer of the specified numeric value." takže mi tak nějak uniká, proč by to mělo mít víc parametrů. 

Mike spíš myslel, že ti chybí jedna pravá závorka v tom řádku, co ti vykopíroval... 

jj. ja sazel prave na "aha zazitek", ze kdyz to biding uvidi sam, vic to utkvi v hlave.. bezna a zpropadena vec ty zavorky.. zname, ze Foot in mouth?

Michel Aspron - tým traderů FXstreet.cz
Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
re 22.11.2010 16:20

ano dekuji moc :) nasel sem to :) asi mi bude chvilku trvat se v tech zavorkach zorientovat uz to alespon funguje:) si spatne , ale da se to testovat :) 

japapatramtara
Gold member
avatar
Příspěvky: 636
Více informací o uživateli >>
. 22.11.2010 16:26

U MT4 skriptů to nedělám, páč ty mají většinou pár řádků a dá se to pohlídat okometricky, ale na cokoliv většího doporučuji stáhnout pokročilejší textový editor třeba notepad++ nebo PSPad a tam zaškrtnout kontrolu syntaxe třeba podle C/C++ potom se budou závorky označovat a jestli bude nějaké chybět kamarád do páru, tak se vysvítí jinou barvou a člověk si toho lépe všimneSmile

ale jinak ano.. tímhle si prošel úplně každý z nás a pořád prochází.. hlavně bych si dal majzla na ty neozávorkované IF co tam máš.. to je taky kapitola sama pro sebe

Jan Mareček - senior teapot manager
Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
Uz to beha :) 23.11.2010 08:32

Trosku sem to upravil a vysledek nevypada zrovna nejhur :) -teda az na fakt ze to udela jenom 25 obchodu za pul roku :(

japapatramtara
Gold member
avatar
Příspěvky: 636
Více informací o uživateli >>
Re: Uz to beha :) 23.11.2010 09:47
Odpověď na: Bindig

Trosku sem to upravil a vysledek nevypada zrovna nejhur :) -teda az na fakt ze to udela jenom 25 obchodu za pul roku :(

25 obchodů na jednom instrumentu za půl roku je až moc.. to máš víc než 4 obchody za měsíc.. Takové množství bych já nikdy ručně uhlídat nedokázalSmile Takže paráda.. jsi prostě kluk šikovná

Jan Mareček - senior teapot manager
Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
AOS 23.11.2010 11:48

tak se to jeste upravil uz to opravdu otevira obchody se zadanym riskem :)

takhle to vypada ted :) kdyby si to chtel nekdo testnout :)

a risk se zadava v celych cislech ( risk=5 -- risk 5% uctu na 1 obchod ) EMA_CCI

Pokman
Silver member
avatar
Příspěvky: 177
Více informací o uživateli >>
Re: AOS 23.11.2010 12:56
Odpověď na: Bindig

tak se to jeste upravil uz to opravdu otevira obchody se zadanym riskem :)

takhle to vypada ted :) kdyby si to chtel nekdo testnout :)

a risk se zadava v celych cislech ( risk=5 -- risk 5% uctu na 1 obchod ) EMA_CCI

Zdravím, čoveče mě to nějak nejede, po spuštění na testeru to pořád píše  " TestGenerator: unmatched data error (volume limit 82 at 2010.07.05 08:45 exceeded)"

************* Programátor AOS pro MT4 a MT5 **************
Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
re 23.11.2010 13:11

mozna nemas nacteny data :( skus si najet na 15 min. graf a proscrolovat ho nadoraz ( kdyz si zhustis cas tak to nezabere moc casu )

Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
Re 23.11.2010 13:12

zajimavy je ze ziskovost to zatim ukazuje jenom u EUR / USD

na JPY parech to ani fungovat nebude ( zatim -- kvuli nastavovani SL a TP )

EaCoder
Nováček v diskuzi
avatar
Příspěvky: 17
Více informací o uživateli >>
Re: Re: AOS 23.11.2010 13:51
Odpověď na: Pokman

Zdravím, čoveče mě to nějak nejede, po spuštění na testeru to pořád píše  " TestGenerator: unmatched data error (volume limit 82 at 2010.07.05 08:45 exceeded)"

Ten volume limit exceeded neřešte, běžná chyba v datech, se kterou se toho v MT nedá moc udělat. Běžná a neškodná chyba, nepátral jsem po příčinách, ale pravděpodobně nesedí "volume" z Vámi testované TF a volume na barech, ze kterých se daný bar skládá. Na testování to efekt nemá.

Spíše důrazně doporučuji si pohlídat, zda máte poravdu konzistentní data, velmi často se stává, že když stáhnete data z history centra, tak máte bar 23.08.2010 v 15:00 a dalš bar je až (třeba) 14.10.2010 v 11:00. TOHLE dost výrazně ovlivní test, na to pozor.

Alfou i omegou jakéhokoli zpětného testu je mít v pořádku data. Nemáte-li, nic nenatestujete a o nějakých nedej bože optimalizacích nemůže být ani řeč.

Jinak, k tématu tohoto vlákna, ale už jste to tady pravděpodobně vyřešili, problém, že máte moc levých závorek jak těch pravých, takže volání funkce máte vlastně přes celý zbytkový program.

A ohledně MathRound : ano, to zaokrouhluje na celé číslo, pro přidávání nul nebo naopak zkracování desetinných míst slouží funkce s prototypem NormalizeDouble(double number, int precision) . Mohu doporučit tuto funkci pro "urovnání" parmetrů pokynu při použití funkce OrderSend() , kde precision nastavte proměnnou Digits, abyste nemusel zvlášť specifikovat JPY a non-JPY :)

nuvacik
Veteran member
avatar
Příspěvky: 1572
Více informací o uživateli >>
Re: Re ziskovost jenom u EURUSD 23.11.2010 14:05
Odpověď na: Bindig

zajimavy je ze ziskovost to zatim ukazuje jenom u EUR / USD

na JPY parech to ani fungovat nebude ( zatim -- kvuli nastavovani SL a TP )

  1. Ja síce tým číselkám veľmi nerozumiem ale to EmaS , CCI , Perioda, MACD ... môžem zmeniť a potom to bude ziskové aj na iných pároch ?
avatar
Veteran member
avatar
Příspěvky: 3196
Více informací o uživateli >>
. 24.11.2010 21:01

Prihodil by niekto alert pri otvorení každej pozície (poprípade aj s poslaním sms) do tohoto celkom úspešného EA?

Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
Re: . 25.11.2010 07:39
Odpověď na: avatar

Prihodil by niekto alert pri otvorení každej pozície (poprípade aj s poslaním sms) do tohoto celkom úspešného EA?

alert ti tam klidne pridelam , ale SMS netusim :( jak , ale Ten EA nejde stahnout 

avatar
Veteran member
avatar
Příspěvky: 3196
Více informací o uživateli >>
Re: Re: . 25.11.2010 08:24
Odpověď na: Bindig

alert ti tam klidne pridelam , ale SMS netusim :( jak , ale Ten EA nejde stahnout 

http://forexchat.eu/phpBB3/viewtopic.php?f=4&t=23  ja som v programovaní laik, ale mala by tam byť nejaká inštrukcia e-mail alert alebo tak nejako Smile

avatar
Veteran member
avatar
Příspěvky: 3196
Více informací o uživateli >>
Re: Re: . 25.11.2010 08:39
Odpověď na: Bindig

alert ti tam klidne pridelam , ale SMS netusim :( jak , ale Ten EA nejde stahnout 

verzia !xMeter_v2.1.1.mq4

japapatramtara
Gold member
avatar
Příspěvky: 636
Více informací o uživateli >>
Re: Re: Re: . 25.11.2010 09:29
Odpověď na: avatar

verzia !xMeter_v2.1.1.mq4

na forexchat musí být registrace chlapeSmile Předpokládám, že všichni z bývalého chatu ji dostali automaticky(třeba jáSmile), ale noví členové tam podle mě přístup nemají a musí si napsat adminovi.. 

Jan Mareček - senior teapot manager
avatar
Veteran member
avatar
Příspěvky: 3196
Více informací o uživateli >>
Re: Re: Re: . 25.11.2010 09:33
Odpověď na: avatar

verzia !xMeter_v2.1.1.mq4

pardon, tak mu to pošlem tajnou poštouSmile

Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
Re: Re: Re: Re: . 25.11.2010 11:38
Odpověď na: avatar

pardon, tak mu to pošlem tajnou poštouSmile

jenom sem tam pripsal alert, tak by to nemelo kod nijak ovlidnit :) X_Metr

avatar
Veteran member
avatar
Příspěvky: 3196
Více informací o uživateli >>
Re: Re: Re: Re: Re: . 25.11.2010 12:42
Odpověď na: Bindig

jenom sem tam pripsal alert, tak by to nemelo kod nijak ovlidnit :) X_Metr

srdečná vďaka - vyskúšam a ozvem sa.

Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
Dalsi problem :( 30.11.2010 08:57

opet mam mensi problemek s robotem :(

v testru to udela spoustu peknych obchodu, ale v realu to neudela ani jeden :(

i kdyz podle zpetnyho testu by mel udelat nekolik obchodu muze mi nekdo prosim ukazat kde mam chybu :(

Robot

avatar
Veteran member
avatar
Příspěvky: 3196
Více informací o uživateli >>
Re: Re: Re: Re: Re: . 05.12.2010 08:05
Odpověď na: Bindig

jenom sem tam pripsal alert, tak by to nemelo kod nijak ovlidnit :) X_Metr

Binding - funguje to perfektne, onedlho bude nová, vraj ziskovejšia verzia EA.

Bindig
Nováček v diskuzi
avatar
Příspěvky: 11
Více informací o uživateli >>
Tak sem si hral a Svaty gral na svete :) 17.12.2010 08:18

tady je EA a tu nastaveni na EUR/USD :)

kdyby se chtel nekdo mrknout :)

 

petrincak
Silver member
avatar
Příspěvky: 296
Více informací o uživateli >>
Oscilator AOS 06.02.2011 19:54

 

Stále se učím z vlastních chyb. Na forexu od 1.8.2010.
Likan
Silver member
avatar
Příspěvky: 339
Více informací o uživateli >>
chyba v kodu? 28.07.2011 17:27

zdar potreboval bych pomoci zde kod EA

//---- Trades limits
extern double    TakeProfit=160;
extern double    TrailingStop=20;
extern double    StopLoss=70;
extern bool      UseStopLoss = false;

//---- EMAs paris
extern int ShortEma = 10;
extern int LongEma = 80;

//---- Crossing options
extern bool immediate_trade = true; //Open trades immediately or wait for cross.
extern bool reversal = true; //Use the originally reversal crossing method or not

//---- Money Management
extern double Lots = 1;
extern bool MM = true; //Use Money Management or not
extern bool AccountIsMicro = false; //Use Micro-Account or not
extern int Risk = 10; //10%

extern bool Show_Settings = true;

//---- Global varaibles
static int TimeFrame = 0;


//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   if(Show_Settings) Print_Details();
   else Comment("");
//----
  
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
      TimeFrame=Period(); //Prevent counting the cross while the user changing the timeframe
//----
   return(0);
  }
 
bool isNewSumbol(string current_symbol)
  {
   //loop through all the opened order and compare the symbols
   int total  = OrdersTotal();
   for(int cnt = 0 ; cnt < total ; cnt++)
   {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      string selected_symbol = OrderSymbol();
      if (current_symbol == selected_symbol)
      return (False);
    }
    return (True);
}

int Crossed (double line1 , double line2)
   {
      static int last_direction = 0;
      static int current_direction = 0;
     
      if(TimeFrame!=Period())
      {
         TimeFrame=Period();
         return (0);
      }
     
      if(line1>line2)current_direction = 1; //up
      if(line1<line2)current_direction = 2; //down
     
      if(immediate_trade==false)
      {
         if(last_direction == 0) //first use
         {
               last_direction = current_direction;
               return(0);
         }
      }

      if(current_direction != last_direction) //changed
      {
            last_direction = current_direction;
            return (last_direction);
      }
      else
      {
            return (0); //not changed
      }
   }

//--- Bassed on Alex idea! More ideas are coming
double LotSize()
{
     double lotMM = MathCeil(AccountFreeMargin() *  Risk / 1000) / 100;
     
      if(AccountIsMicro==false) //normal account
      {
         if (lotMM < 0.1) lotMM = Lots;
         if (lotMM > 1.0) lotMM = MathCeil(lotMM);
         if  (lotMM > 100) lotMM = 100;
      }
      else //micro account
      {
         if (lotMM < 0.01) lotMM = Lots;
         if (lotMM > 1.0) lotMM = MathCeil(lotMM);
         if  (lotMM > 100) lotMM = 100;
      }
     
      return (lotMM);
}

string BoolToStr ( bool value)
{
   if(value) return ("True");
   else return ("False");
}
void Print_Details()
{
   string sComment = "";
   string sp = "----------------------------------------\n";
   string NL = "\n";

   sComment = sp;
   sComment = sComment + "TakeProfit=" + DoubleToStr(TakeProfit,0) + " | ";
   sComment = sComment + "TrailingStop=" + DoubleToStr(TrailingStop,0) + " | ";
   sComment = sComment + "StopLoss=" + DoubleToStr(StopLoss,0) + " | ";
   sComment = sComment + "UseStopLoss=" + BoolToStr(UseStopLoss) + NL;
   sComment = sComment + sp;
   sComment = sComment + "immediate_trade=" + BoolToStr(immediate_trade) + " | ";
   sComment = sComment + "reversal=" + BoolToStr(reversal) + NL;
   sComment = sComment + sp;
   sComment = sComment + "Lots=" + DoubleToStr(Lots,0) + " | ";
   sComment = sComment + "MM=" + BoolToStr(MM) + " | ";
   sComment = sComment + "Risk=" + DoubleToStr(Risk,0) + "%" + NL;
   sComment = sComment + sp;
 
   Comment(sComment);
}

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----

   int cnt, ticket, total;
   double SEma, LEma;
  
   string comment = "";
   if(reversal==true) comment = "EMA_CROSS_Counter-Trend";
   if(reversal==false) comment = "EMA_CROSS_Trend-Following";

   if(Bars<100)
     {
      Print("bars less than 100");
      return(0); 
     }
   if(TakeProfit<10)
     {
      Print("TakeProfit less than 10");
      return(0);  // check TakeProfit
     }
    
   SEma = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0);
   LEma = iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,0);
  
  
  
   static int isCrossed  = 0;
   isCrossed = Crossed (LEma,SEma);
  
   if(reversal==false)
   {
      if(isCrossed==1) isCrossed=2;
      if(isCrossed==2) isCrossed=1;
   }
  
   if(MM==true) Lots = LotSize(); //Adjust the lot size
 
  
   total  = OrdersTotal();

   if(total < 1 || isNewSumbol(Symbol()))
     {
       if(isCrossed == 1)
         {
           
            if(UseStopLoss)
               ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
            else
               ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,comment,MAGICMA,0,Green);
           
            if(ticket>0)
              {
               if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
              }
            else Print("Error opening BUY order : ",GetLastError());
            return(0);
         }
         if(isCrossed == 2)
         {
            if(UseStopLoss)
               ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
            else
               ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,comment,MAGICMA,0,Red);
           
            if(ticket>0)
              {
               if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
              }
            else Print("Error opening SELL order : ",GetLastError());
            return(0);
         }
         return(0);
     }
    
    
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // check for trailing stop
            if(TrailingStop>0) 
              {                
               if(Bid-OrderOpenPrice()>Point*TrailingStop)
                 {
                  if(OrderStopLoss()<Bid-Point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
            // check for trailing stop
            if(TrailingStop>0) 
              {                
               if((OrderOpenPrice()-Ask)>(Point*TrailingStop))
                 {
                  if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+

 

jde mi o to ze se mi ta ea zda dobra ,ale ma par chyb a na forum kde jsem ho stahnul je uplne mrtvo a ja zrovna programovat neumim tudiz vas zadam o pomoc

.jde o to ze pri nastaveny counterTrend pri falce nefunguje a otvyra pouze buy signaly coz je velka skoda

.dalsi vec je ze kdyz si nastavite sema1 lema13 tp51 trailing 117 sl 120 tak v urcityych bodech na grafu tj treba skok 100pips mozna vic to v testeru hodi 10 plusovej obchodu v jedny minute kdyz by tam vubec nemely byt nevim cim to ale strasne to znehodnocuje vysledek testu .

 

mohl by prosimvas nekdo z vas dobrych dusi na to kouknout dekuju

Lord
Veteran member
avatar
Příspěvky: 1750
Více informací o uživateli >>
editor 22.01.2012 15:41

čau,

moc nechápu jak to psát v tom editoru. Chtěl bych jen otestovat bar pattern kdy 5m graf vytvoří tři po sobě jdoucí plné svíce nebo prázdné, přičemž druhá (prostřední) protne EMA 10. Je jedno jestli se jedná o up nebo downtrend. SL 15, PT 30 například  (jedná se o testování, takže hodnoty proměnné). Víc to teda funguje v uptrendu (na TF 15m), kdy z korekce vytvoří svíce formaci tří prázdných svíček, kde druhá protne EMU, případně obráceně na downtrendu (TF 15m).

Chtěl bych poprosit někoho o pomoc s napsáním kódu. Zdlouhavě to vyhledávat v minulosti je děs a hlavně bych to chtěl otestovat v delším časovým horizontu a s proměnnými hodnotami. Měl by teda někdo čas a chuť?

u grafu tisice a tisice hodin

Předchozí témata

Následující témata

Forex - doporučené články:

Co je FOREX?
Základní informace o finančním trhu FOREX. Forex je obchodování s cizími měnami (forex trading) a je zároveň největším a také nejlikvidnějším finančním trhem na světě.
Forex pro začátečníky
Forex je celosvětová burzovní síť, v jejímž rámci se obchoduje se všemi světovými měnami, včetně české koruny. Na forexu obchodují banky, fondy, pojišťovny, brokeři a podobné instituce, ale také jednotlivci, je otevřený všem.
1. část - Co to vlastně forex je?
FOREX = International Interbank FOReign EXchange. Mezinárodní devizový trh - jednoduše obchodování s cizími měnami - obchodování se směnnými kurzy.
VIP zóna - Forex Asistent
Nabízíme vám jedinečnou příležitost stát se součástí týmu elitních obchodníků FXstreet.cz. Ve spolupráci s předními úspěšnými obchodníky jsme pro vás připravili unikátní VIP skupinu, až doposud využívanou pouze několika profesionálními tradery, a k tomu i exkluzivní Price Action VIP indikátor, doposud úspěšně používaný pouze k soukromým účelům. Nyní se vám otevírá možnost stát se součástí této VIP skupiny, díky které získáte jedinečné know-how pro obchodování na forexu, výjimečný Price Action VIP indikátor, a tím také náskok před drtivou většinou ostatních účastníků trhu.
Forex brokeři - jak správně vybrat
V podstatě každého, kdo by chtěl obchodovat forex, čeká jednou rozhodování o tom, s jakým brokerem (přeloženo jako makléř/broker nebo zprostředkovatel) by chtěl mít co do činění a svěřil mu své finance určené k obchodování. Velmi rád bych vám přiblížil problematiku výběru brokera, rozdíl mezi jednotlivými typy brokerů a v neposlední řadě uvedu několik příkladů nejznámějších z nich.
Forex robot (AOS): Automatický obchodní systém
Snem některých obchodníků je obchodovat bez nutnosti jakéhokoliv zásahu do obchodu. Je to pouhá fikce nebo reálná záležitost? Kolik z nás věří, že "roboti" mohou profitabilně obchodovat? Na jakých principech fungují?
Forex volatilita
Forex volatilita, co je volatilita? Velmi užitečným nástrojem je ukazatel volatility na forexu. Grafy v této sekci ukazují volatilitu vybraného měnových párů v průběhu aktuální obchodní seance.
Forex zůstává největším trhem na světě
V dnešním článku se podíváme na nejnovější statistiky globálního obchodování na forexu. Banka pro mezinárodní vyrovnání plateb (BIS) totiž před pár týdny zveřejnila svůj pravidelný tříletý přehled, ve kterém detailně analyzuje vývoj na měnovém trhu. BIS je označována jako "centrální banka centrálních bank". Je nejstarší mezinárodní finanční organizací a hraje klíčovou roli při spolupráci centrálních bank a dalších institucí z finančního sektoru. Dnešní vzdělávací článek sice nebude zcela zaměřen na praktické informace z pohledu běžného tradera, ale i přesto přinese zajímavé a důležité poznatky.

Nejnovější články:


Naposledy čtené:

reklama