Čtvrtek 28. březen 2024 14:31
reklama
Dukascopy new
reklama
InstaForex Autochartist
reklama
Purple pivot points
reklama
Fintokei ProTrader

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í)
STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
Jak dlouho by měl být ziskový?? 31.01.2014 20:39

Ahoj všem, 
rád bych se vás, zkušených, na něco zeptal. Vytvořil jsem několik AOS, které jsou celkem ziskové, jen je problém, že jsou ziskové třeba jen poslední tři roky. tedy 2013,2012 a 2011. Během let 2007-2010  to nebylo podle testů nic moc a tak mě zajímá, jestli byste takové strategie nasadily nebo si trvali na tom, aby byly ziskové každý rok? 

předem všem děkuji za názory.

Tom2082
Veteran member
avatar
Příspěvky: 8902
Více informací o uživateli >>
Re: Jak dlouho by měl být ziskový?? 31.01.2014 21:10
Odpověď na: STEFIINO

Ahoj všem, 
rád bych se vás, zkušených, na něco zeptal. Vytvořil jsem několik AOS, které jsou celkem ziskové, jen je problém, že jsou ziskové třeba jen poslední tři roky. tedy 2013,2012 a 2011. Během let 2007-2010  to nebylo podle testů nic moc a tak mě zajímá, jestli byste takové strategie nasadily nebo si trvali na tom, aby byly ziskové každý rok? 

předem všem děkuji za názory.

Tak je zveřejni a můžem to probrat

____________ u platformy stál a pořád, a pořád vysával...... vysávat přestal a přešel do vyšší formy bytí a zisků
Jarda Kajtman
Gold member
avatar
Příspěvky: 954
Více informací o uživateli >>
Re: Jak dlouho by měl být ziskový?? 31.01.2014 21:18
Odpověď na: STEFIINO

Ahoj všem, 
rád bych se vás, zkušených, na něco zeptal. Vytvořil jsem několik AOS, které jsou celkem ziskové, jen je problém, že jsou ziskové třeba jen poslední tři roky. tedy 2013,2012 a 2011. Během let 2007-2010  to nebylo podle testů nic moc a tak mě zajímá, jestli byste takové strategie nasadily nebo si trvali na tom, aby byly ziskové každý rok? 

předem všem děkuji za názory.

Záleží na jakém páru, zda to je v trendu nebo v chopu... je tam hodně věcí , takhle to říct nejde. Musíš to upřesnit.

GT34
Veteran member
avatar
Příspěvky: 1362
Více informací o uživateli >>
Re: Jak dlouho by měl být ziskový?? 31.01.2014 21:20
Odpověď na: STEFIINO

Ahoj všem, 
rád bych se vás, zkušených, na něco zeptal. Vytvořil jsem několik AOS, které jsou celkem ziskové, jen je problém, že jsou ziskové třeba jen poslední tři roky. tedy 2013,2012 a 2011. Během let 2007-2010  to nebylo podle testů nic moc a tak mě zajímá, jestli byste takové strategie nasadily nebo si trvali na tom, aby byly ziskové každý rok? 

předem všem děkuji za názory.

Já také obchoduji několik strategií, které mají dobré výsledky až poslední 3 roky. Nevidím v tom problém. Na druhou stranu robustní stratege by měla fungovat o několik let nazpět, nebo alespoň neprodělávat. Také záleží, jestli testuješ základní myšlenku strategie nebo již zahrnutou optimalizaci parametrů, které mohou fungovat dobře na určité fázi trhu.

FOREX forever...
nuvacik
Veteran member
avatar
Příspěvky: 1912
Více informací o uživateli >>
Re: Jak dlouho by měl být ziskový?? 31.01.2014 21:34
Odpověď na: STEFIINO

Ahoj všem, 
rád bych se vás, zkušených, na něco zeptal. Vytvořil jsem několik AOS, které jsou celkem ziskové, jen je problém, že jsou ziskové třeba jen poslední tři roky. tedy 2013,2012 a 2011. Během let 2007-2010  to nebylo podle testů nic moc a tak mě zajímá, jestli byste takové strategie nasadily nebo si trvali na tom, aby byly ziskové každý rok? 

předem všem děkuji za názory.

Čo to znamená, že sú ziskové? Na jednom páre, na skupine, či na 28? Vieš posúdiť, prečo sú ziskové na určitom páre, či na skupine a prečo sú stratové na inom páre, či skupine? Sú ziskové preto lebo sú optimalizované na daný pár a dané obdobie alebo majú nejakú logickú výhodu? Sú vhodné pre obdobie s nižšou volatilitou a preto v predchádzajúcich rokoch, keď bola volatilita vyššia nezarábali? Vedia sa prispôsobiť trendovým a netrendovým obdobiam? Sú overené v hodnoverných testoch a aká je potrebná presnosť testov pre ich použitie? Má nasadenie AOS na demo účte aspoň podobné výsledky s testami na historických dátach? Vieš rozlíšiť, kedy jednotlivé AOS zo súboru vyradiť a kedy im zmeniť parametre? Ako vplývajú na výsledky zriedkavé udalosti, sú proti nim ochranné prvky? ...

Rozoznávať dlhodobé súvislosti a nachádzať metódy ich využitia.
29BERI
Nováček v diskuzi
avatar
Příspěvky: 33
Více informací o uživateli >>
metatrader build 610 02.03.2014 10:51

mam EA ale funguje ve starší verzi a ted mi hlásí chybu 

if(D == 0 && h == 00 && m < 5)

  { ticket = OrderSend(Symbol(),OP_BUY,0.01,Ask,0,Ask-SL,Ask+PT,Text, Magic_number,0,Blue); }

'if' - expressions are not allowed on a global scope

děkuji za pomoc Beri


STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
Jak uložit cenu do proměnné? 02.08.2014 22:45

Ahoj všem, potřeboval bych pomoci s jedním problémem. Jak uložit do proměnné, například double POKUS cenu EurUSD v tento okamžit a třeba za pět minut do proměnné POKUS_B novou cenu EURUSD abych za dalších pět minut mohl s proměnou POKUS a POKUS_B pracovat a ceny z minulosti se mi uchovaly? Předem děkuji za pomoc.

Vykuk
Veteran member
avatar
Příspěvky: 1271
Více informací o uživateli >>
Re: Jak uložit cenu do proměnné? 03.08.2014 12:23
Odpověď na: STEFIINO

Ahoj všem, potřeboval bych pomoci s jedním problémem. Jak uložit do proměnné, například double POKUS cenu EurUSD v tento okamžit a třeba za pět minut do proměnné POKUS_B novou cenu EURUSD abych za dalších pět minut mohl s proměnou POKUS a POKUS_B pracovat a ceny z minulosti se mi uchovaly? Předem děkuji za pomoc.

Pouzij globalni promennou. To se definuje na zacatku kodu, tam nahore jak jsou extern promenny. Ale bez toho extern. ;-) Proste mimo telo void OnTick()...

| Broker: IC Markets (live) | FX od 2012 |
STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
Re: Re: Jak uložit cenu do proměnné? 03.08.2014 13:44
Odpověď na: Vykuk

Pouzij globalni promennou. To se definuje na zacatku kodu, tam nahore jak jsou extern promenny. Ale bez toho extern. ;-) Proste mimo telo void OnTick()...

JOJO, díky moc. Taková pitomost a nenapadne mě to. Díky.

Jozza
Nováček v diskuzi
avatar
Příspěvky: 30
Více informací o uživateli >>
AOS macd 25.08.2014 11:19

Dobrý den,

chtěl bych Vás poprosit zda by mi někdo poradil jak z indikátoru FPK-MACD udělat aos aby mi sám vstoupil do obchodu (nejlepší signály jsou když jsem mimo pc Laughing) pokud indikátor přejde přes 0  a to i bez SL a TP (ty si pak zadávám ručně dle fibo)  na 1H - 4H.  

Indikator - http://leteckaposta.cz/225279714

Zkoušel jsem to programovat dle ,,kuchařky,, na internetu ale nenašel jsem kde se dá vložit indikator.

Děkuji

jirouda1
Silver member
avatar
Příspěvky: 341
Více informací o uživateli >>
Re: AOS macd 25.08.2014 12:12
Odpověď na: Jozza

Dobrý den,

chtěl bych Vás poprosit zda by mi někdo poradil jak z indikátoru FPK-MACD udělat aos aby mi sám vstoupil do obchodu (nejlepší signály jsou když jsem mimo pc Laughing) pokud indikátor přejde přes 0  a to i bez SL a TP (ty si pak zadávám ručně dle fibo)  na 1H - 4H.  

Indikator - http://leteckaposta.cz/225279714

Zkoušel jsem to programovat dle ,,kuchařky,, na internetu ale nenašel jsem kde se dá vložit indikator.

Děkuji

http://docs.mql4.com/indicators/icustom

Jozza
Nováček v diskuzi
avatar
Příspěvky: 30
Více informací o uživateli >>
Re: Re: AOS macd 25.08.2014 14:45
Odpověď na: jirouda1

http://docs.mql4.com/indicators/icustom

Pořád se mi to nechce nějak načítat. Asi budu muset zkoušet zatím něco lehčího, nebo myslíte si že je to někdo do by mi to mohl udělat, abych podle toho mohl zkoušet další?

Děkuji za odpověď

 

STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
JAK SPOČÍTAT POČET LOTŮ? 14.09.2014 11:10

Ahoj všem, zrovna tu spekuluji, jak spočítat celkový počet otevřených lotů? Např. : mám otevřeno pět obchodů, každý má jinou velikost lotů, a já bych potřeboval celkový počet otevřených lotů spočítat. Zkusil jsem vytvořit následující kod, ale ten spočte jen první otevřený obchod, ale ne celkový počet. v čem dělám chybu?

double POCET_SELL()
{for(int poc = OrdersTotal()-1; poc>=0; poc--)
{if (OrderSelect(poc, SELECT_BY_POS, MODE_TRADES)&& OrderType()==OP_SELL)
{ return(pocet_lotu+OrderLots());}}}

Předem děkuji za radu.

Vykuk
Veteran member
avatar
Příspěvky: 1271
Více informací o uživateli >>
Re: JAK SPOČÍTAT POČET LOTŮ? 14.09.2014 12:42
Odpověď na: STEFIINO

Ahoj všem, zrovna tu spekuluji, jak spočítat celkový počet otevřených lotů? Např. : mám otevřeno pět obchodů, každý má jinou velikost lotů, a já bych potřeboval celkový počet otevřených lotů spočítat. Zkusil jsem vytvořit následující kod, ale ten spočte jen první otevřený obchod, ale ne celkový počet. v čem dělám chybu?

double POCET_SELL()
{for(int poc = OrdersTotal()-1; poc>=0; poc--)
{if (OrderSelect(poc, SELECT_BY_POS, MODE_TRADES)&& OrderType()==OP_SELL)
{ return(pocet_lotu+OrderLots());}}}

Předem děkuji za radu.

To je jednoduchý, zkus si ten kód rozepsat, aby byl pro tebe čitelnější...

double POCET_SELL()
{
   for(int poc = OrdersTotal()-1; poc>=0; poc--)
   {
      if (OrderSelect(poc, SELECT_BY_POS, MODE_TRADES)&& OrderType()==OP_SELL)
      {
         return(pocet_lotu+OrderLots());
      }
   }
}

Když se na to podíváš, tak kód vběhne do smyčky, kde spočítá první obchod a return smyčku ukončí dřív, než smyčka proběhne podruhé.

Pro inspiraci přikládám funkci, jak bych to asi řešil já. Vzhledem k názvu POCET_SELL předpokládám, že chceš sčítat všechny short příkazy a long příkazy pak zlvášť. Tohle teda sečte jen SELL, SELL STOP a SELL LIMIT příkazy.

int POCET_SELL()
{
   double soucetLotu = 0;
   
   for( int pos = 0; pos < OrdersTotal(); pos++ )
   {
      if( OrderSelect( pos, SELECT_BY_POS ) == false )
         continue;
      
      if( Symbol() != OrderSymbol() )
         continue;
         
      if( OrderType() == OP_BUY || OrderType() == OP_BUYSTOP || OrderType() == OP_BUYLIMIT )
         continue;
         
      soucetLotu += OrderLots();
   }
 
   return( soucetLotu );
}
| Broker: IC Markets (live) | FX od 2012 |
Vykuk
Veteran member
avatar
Příspěvky: 1271
Více informací o uživateli >>
Re: JAK SPOČÍTAT POČET LOTŮ? 14.09.2014 13:01
Odpověď na: STEFIINO

Ahoj všem, zrovna tu spekuluji, jak spočítat celkový počet otevřených lotů? Např. : mám otevřeno pět obchodů, každý má jinou velikost lotů, a já bych potřeboval celkový počet otevřených lotů spočítat. Zkusil jsem vytvořit následující kod, ale ten spočte jen první otevřený obchod, ale ne celkový počet. v čem dělám chybu?

double POCET_SELL()
{for(int poc = OrdersTotal()-1; poc>=0; poc--)
{if (OrderSelect(poc, SELECT_BY_POS, MODE_TRADES)&& OrderType()==OP_SELL)
{ return(pocet_lotu+OrderLots());}}}

Předem děkuji za radu.

Jo, a ten typ nemá bejt INT ale DOUBLE (mám tam chybu). A taky jsem si ještě všiml, že ty chceš počítat jen SELLy, takže by to vypadalo nějak takto:

double POCET_SELL()
{
   double soucetLotu = 0;
   
   for( int pos = 0; pos < OrdersTotal(); pos++ )
   {
      if( OrderSelect( pos, SELECT_BY_POS ) == false )
         continue;
      
      if( Symbol() != OrderSymbol() )
         continue;
         
      if( OrderType() == OP_SELL )   
         soucetLotu += OrderLots();
   }
 
   return( soucetLotu );
}
| Broker: IC Markets (live) | FX od 2012 |
STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
Re: Re: JAK SPOČÍTAT POČET LOTŮ? 14.09.2014 14:12
Odpověď na: Vykuk

Jo, a ten typ nemá bejt INT ale DOUBLE (mám tam chybu). A taky jsem si ještě všiml, že ty chceš počítat jen SELLy, takže by to vypadalo nějak takto:

double POCET_SELL()
{
   double soucetLotu = 0;
   
   for( int pos = 0; pos < OrdersTotal(); pos++ )
   {
      if( OrderSelect( pos, SELECT_BY_POS ) == false )
         continue;
      
      if( Symbol() != OrderSymbol() )
         continue;
         
      if( OrderType() == OP_SELL )   
         soucetLotu += OrderLots();
   }
 
   return( soucetLotu );
}

No to je bomba, funguje to, hurááá.. Díky, díky, díky moc.

STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
POSUVNY SELLSTOP. KDE dělám chybu? 21.09.2014 16:51

Ahoj všem, opět si nevím rady a opět vás žádám o drahocenou radu. Myslím si, že nechci moc, když pracuji na prográmku, který mi posouvá SELLSTOP nebo BUYSTOP. O co mi jde. Jde o čekající pokyny, které se otevřou (vždy jen jeden SELLSTOP nebo BUYSTOP) když se splní nějaká podmínka. Dále, mi jde o to, aby se otevírací cena posouvala, podle toho jak se mění cena. Tedy 1.3200 je otevírací cena SELLSTOPU s tím, že je tento příkaz zadán o 15 pipsů nad touto cenou a pokud cena půjde ještě více nahoru, tak aby se otevírací cena posunula vždy o těchto 15 pipsů. naprogramoval jsem to takto:

if(1.32000< Bid && OPEN_TRADE_WAIT (OP_SELLSTOP) ==false)            
 {ticket_sell = OrderSend (Symbol (),OP_SELLSTOP, VYSE_LOTU,Bid-150*Point ,0,0,0, NULL,0,0,CLR_NONE );}    
                             
 if(1.32000> Ask && OPEN_TRADE_WAIT(OP_BUYSTOP)==false)            
 {ticket_buy = OrderSend (Symbol (),OP_BUYSTOP, VYSE_LOTU,Ask+150*Point ,0,0,0, NULL,0,0,CLR_NONE );}    
                         
//------------------------------------------------------------------------------------------------------POSUNUTÍ SELLSTOPU a BUYSTOPU------------- 
for(int tr = 0; tr<OrdersTotal(); tr++)                  
{if(OrderSelect(tr ,SELECT_BY_POS, MODE_TRADES)&& OrderType() == OP_BUYSTOP && (Ask-(150*0.00001)< OrderOpenPrice()))
{OrderModify(OrderTicket(),OrderOpenPrice()-1*Point,OrderStopLoss(), OrderTakeProfit(),0,CLR_NONE);}}    
                         
for(int tra =0; tra< OrdersTotal(); tra++)                  
{if(OrderSelect(tra ,SELECT_BY_POS, MODE_TRADES)&& OrderType() == OP_SELLSTOP && (Bid+(150*0.00001)> OrderOpenPrice()))

{OrderModify(OrderTicket(),OrderOpenPrice()+1*Point, OrderStopLoss(), OrderTakeProfit(),0,CLR_NONE);}}

Program má ale problémy. po splnění podmínky se otevře třeba SELLSTOP, otevírací cena se mění, ale mění se i když by se měnit neměla. Při každém pohybu nahoru nebo dolu se otevírací cena víc a víc snižuje a otevření pokynu se zrealizuje i když nedošlo snížení ceny o 15 pipsů,.  No,doufám, že jsem to popsal srozumitelně.. Předem opět děkuji za pomoc.  Díky díky.

   
Vykuk
Veteran member
avatar
Příspěvky: 1271
Více informací o uživateli >>
Re: POSUVNY SELLSTOP. KDE dělám chybu? 22.09.2014 16:45
Odpověď na: STEFIINO

Ahoj všem, opět si nevím rady a opět vás žádám o drahocenou radu. Myslím si, že nechci moc, když pracuji na prográmku, který mi posouvá SELLSTOP nebo BUYSTOP. O co mi jde. Jde o čekající pokyny, které se otevřou (vždy jen jeden SELLSTOP nebo BUYSTOP) když se splní nějaká podmínka. Dále, mi jde o to, aby se otevírací cena posouvala, podle toho jak se mění cena. Tedy 1.3200 je otevírací cena SELLSTOPU s tím, že je tento příkaz zadán o 15 pipsů nad touto cenou a pokud cena půjde ještě více nahoru, tak aby se otevírací cena posunula vždy o těchto 15 pipsů. naprogramoval jsem to takto:

if(1.32000< Bid && OPEN_TRADE_WAIT (OP_SELLSTOP) ==false)            
 {ticket_sell = OrderSend (Symbol (),OP_SELLSTOP, VYSE_LOTU,Bid-150*Point ,0,0,0, NULL,0,0,CLR_NONE );}    
                             
 if(1.32000> Ask && OPEN_TRADE_WAIT(OP_BUYSTOP)==false)            
 {ticket_buy = OrderSend (Symbol (),OP_BUYSTOP, VYSE_LOTU,Ask+150*Point ,0,0,0, NULL,0,0,CLR_NONE );}    
                         
//------------------------------------------------------------------------------------------------------POSUNUTÍ SELLSTOPU a BUYSTOPU------------- 
for(int tr = 0; tr<OrdersTotal(); tr++)                  
{if(OrderSelect(tr ,SELECT_BY_POS, MODE_TRADES)&& OrderType() == OP_BUYSTOP && (Ask-(150*0.00001)< OrderOpenPrice()))
{OrderModify(OrderTicket(),OrderOpenPrice()-1*Point,OrderStopLoss(), OrderTakeProfit(),0,CLR_NONE);}}    
                         
for(int tra =0; tra< OrdersTotal(); tra++)                  
{if(OrderSelect(tra ,SELECT_BY_POS, MODE_TRADES)&& OrderType() == OP_SELLSTOP && (Bid+(150*0.00001)> OrderOpenPrice()))

{OrderModify(OrderTicket(),OrderOpenPrice()+1*Point, OrderStopLoss(), OrderTakeProfit(),0,CLR_NONE);}}

Program má ale problémy. po splnění podmínky se otevře třeba SELLSTOP, otevírací cena se mění, ale mění se i když by se měnit neměla. Při každém pohybu nahoru nebo dolu se otevírací cena víc a víc snižuje a otevření pokynu se zrealizuje i když nedošlo snížení ceny o 15 pipsů,.  No,doufám, že jsem to popsal srozumitelně.. Předem opět děkuji za pomoc.  Díky díky.

   

Tak asi úplně nechápu, co vlastně chceš, aby to dělalo, ale řekl bych (a teď se prosím neuraž) že škrábeš, jako čuně Laughing. Ono je to čitě o zvyku, jak kdo píše, ale tvůj kód si musím přepsat do srozumitelného textu, abych se v něm vůbec vyznal Tongue out. Neber to prosím jako urážku, jen jako doporučení, že se dá ještě něco zlepšít.

No a abych nebyl za hulváta, kterej jenom uráží ostatní členy fóra, tak tady přikládám ten kód přepsaný:

   if(1.32000 < Bid && OPEN_TRADE_WAIT( OP_SELLSTOP ) == false )      
      ticket_sell = OrderSend( Symbol(), OP_SELLSTOP, VYSE_LOTU, Bid - 150 * Point, 0, 0, 0, NULL, 0 );  
                 
   if(1.32000 > Ask && OPEN_TRADE_WAIT( OP_BUYSTOP ) == false )      
      ticket_buy = OrderSend( Symbol(), OP_BUYSTOP, VYSE_LOTU, Ask + 150 * Point,0 ,0 ,0 , NULL, 0 );
             
 
   for( int tr = 0; tr < OrdersTotal(); tr++ )         
   {
      if( OrderSelect( tr, SELECT_BY_POS, MODE_TRADES ) && OrderType() == OP_BUYSTOP && ( Ask - ( 150 * 0.00001 ) < OrderOpenPrice() ) )
         OrderModify( OrderTicket(), OrderOpenPrice() - 1 * Point, OrderStopLoss(), OrderTakeProfit(), 0, CLR_NONE );
   }  
             
   for( int tra = 0; tra < OrdersTotal(); tra++ )         
   {
      if( OrderSelect( tra ,SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_SELLSTOP && ( Bid + ( 150 * 0.00001 ) > OrderOpenPrice() ) )
         OrderModify( OrderTicket(), OrderOpenPrice() + 1 * Point, OrderStopLoss(), OrderTakeProfit() , 0, CLR_NONE );
   }

Nevím tedy co dělá OPEN_TRADE_WAIT(), ale předpokládám, že vrací TRUE, pokud je otevřený obchod BUYSTOP, NEBO SELLSTOP. Dál nechápu, proč máš smyčku pro BUYSTOP a SELLSTOP zvlášť. Je to sice pitomost, která nemá vliv na funkci živočicháře, ale můžeš si do kódu zavléct zbytečnou chybu. A co se týče té podmínky ve smyčce, tak to je nejspíš kámen úrazu, který tě trápí.

if( OrderSelect( tr, SELECT_BY_POS, MODE_TRADES ) && OrderType() == OP_BUYSTOP && ( Ask - ( 150 * 0.00001 ) < OrderOpenPrice() ) )

Nejspíš měl básník na mysli něco jako Ask < ( OrderOpenPrice() - 150 * 0.00001 ). Pominu-li zbytek podmínky, kde je nejspíš napsáno opravdu co jsi zamýšlel, tak tady máš napsáno "pokud cena - 0.00150 je menší než otevírací cena příkazu, modifikuj příkaz...", ale chtěl jsi napsat něco jako "pokud je cena o 0.00150 menší, než otevírací cena, tak modifikuj příkaz..." a to je podstatný rozdíl, protože tvoje podmínka je platná i když je cena o 0.00149 výš, než otevírací cena. Takže asi bych to zkusil nějak takto:

   if(1.32000 < Bid && OPEN_TRADE_WAIT( OP_SELLSTOP ) == false )      
      ticket_sell = OrderSend( Symbol(), OP_SELLSTOP, VYSE_LOTU, Bid - 150 * Point, 0, 0, 0, NULL, 0 );  
                 
   if(1.32000 > Ask && OPEN_TRADE_WAIT( OP_BUYSTOP ) == false )      
      ticket_buy = OrderSend( Symbol(), OP_BUYSTOP, VYSE_LOTU, Ask + 150 * Point,0 ,0 ,0 , NULL, 0 );
             
 
   for( int tr = 0; tr < OrdersTotal(); tr++ )         
   {
      if( OrderSelect( tr, SELECT_BY_POS, MODE_TRADES ) && OrderType() == OP_BUYSTOP && ( Ask < ( OrderOpenPrice() - ( 150 * 0.00001 ) ) ) )
         OrderModify( OrderTicket(), OrderOpenPrice() - 1 * Point, OrderStopLoss(), OrderTakeProfit(), 0, CLR_NONE );
 
      if( OrderSelect( tr ,SELECT_BY_POS, MODE_TRADES) && OrderType() == OP_SELLSTOP && ( Bid > ( OrderOpenPrice() + ( 150 * 0.00001 ) ) ) )
         OrderModify( OrderTicket(), OrderOpenPrice() + 1 * Point, OrderStopLoss(), OrderTakeProfit() , 0, CLR_NONE );
   }

No, tak snad jsem tě tedy dobře pochopil a dokonce ti i poradil a ne jen zkritizoval Embarassed.

| Broker: IC Markets (live) | FX od 2012 |
STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
Re:RE: POSUVNY SELLSTOP. KDE dělám chybu? 22.09.2014 21:45

Abych zbytečně nekopíroval celý příspěvek znovu, tak píši nový příspěvek. Co se týče záměru, tak ten jsi pochopil dobře. OPEN TRADE_WAIT vrací true když je již otevřený příkaz. 

Jinak, opět musím jen děkovat, děkovat a děkovat, opět jsi mě zachránil, protože tak dlouho jsem se s tím mordoval, že další den neúspěchu by znamenal na 100% Chocholouška. Dííky moc. 

maddud
Nováček v diskuzi
avatar
Příspěvky: 3
Více informací o uživateli >>
Stop loss do AOS 09.11.2014 10:53

Zdravím. Chtěl bych pro AOS udělat SL z indikátoru ZigZag. Nedokážu vypotit kód, který by úspěšně vyvolal poslední hodnotu ZigZagu. (Myslím hodnotu na posledním swingu).

Kovac
Veteran member
avatar
Příspěvky: 21512
Více informací o uživateli >>
Re: Stop loss do AOS 09.11.2014 11:00
Odpověď na: maddud

Zdravím. Chtěl bych pro AOS udělat SL z indikátoru ZigZag. Nedokážu vypotit kód, který by úspěšně vyvolal poslední hodnotu ZigZagu. (Myslím hodnotu na posledním swingu).

Ja myslim, ze muze byt problem se ZigZagem, protoze se zpetne prekresluje.

Broker: Purple Trading (forex) | XTB (akcie) | Swissquote Bank (indexy a komodity). Obchodní systém: Price Action, S/R, VIP zóna.
maddud
Nováček v diskuzi
avatar
Příspěvky: 3
Více informací o uživateli >>
Re: Re: Stop loss do AOS 09.11.2014 11:18
Odpověď na: Kovac

Ja myslim, ze muze byt problem se ZigZagem, protoze se zpetne prekresluje.

Aktuálně se překresluje. Mně jde o swing hodnotu, která už je vytvořená.

czeee
Silver member
avatar
Příspěvky: 147
Více informací o uživateli >>
Re: Re: Re: Stop loss do AOS 09.11.2014 13:10
Odpověď na: maddud

Aktuálně se překresluje. Mně jde o swing hodnotu, která už je vytvořená.

Ukazka, jak se daji cist hodnoty zigzag indikatoru, uloz nasledujici kod jako script a spust.

int start() { 
double upZZ = 0, dwZZ = 0;

for(int i=0; i<Bars; i++){
upZZ=iCustom(Symbol(), Period(), "ZigZag", 12, 5, 3, 1, i);
if (upZZ != 0) break;
}
for(int j=0; j<Bars; j++){
dwZZ=iCustom(Symbol(), Period(), "ZigZag", 12, 5, 3, 2, j);
if (dwZZ != 0) break;
}
Alert("Up ZZ = " + DoubleToStr(upZZ, Digits) + " Down ZZ = " + DoubleToStr(dwZZ, Digits));
return(0);
}

maddud
Nováček v diskuzi
avatar
Příspěvky: 3
Více informací o uživateli >>
Re: Re: Re: Re: Stop loss do AOS 10.11.2014 18:20
Odpověď na: czeee
Ukazka, jak se daji cist hodnoty zigzag indikatoru, uloz nasledujici kod jako script a spust.

int start() { 
double upZZ = 0, dwZZ = 0;

for(int i=0; i<Bars; i++){
upZZ=iCustom(Symbol(), Period(), "ZigZag", 12, 5, 3, 1, i);
if (upZZ != 0) break;
}
for(int j=0; j<Bars; j++){
dwZZ=iCustom(Symbol(), Period(), "ZigZag", 12, 5, 3, 2, j);
if (dwZZ != 0) break;
}
Alert("Up ZZ = " + DoubleToStr(upZZ, Digits) + " Down ZZ = " + DoubleToStr(dwZZ, Digits));
return(0);
}

Díky. Pomohl jsi mi. Thumbs Up

Slavin
Nováček v diskuzi
avatar
Příspěvky: 2
Více informací o uživateli >>
Nefunkční strategie 04.01.2015 10:00

Dobrý den,

jsem začátečník v psaní obchodních strategií a celkově v oblasti forexu. Napsal jsem si svoji strategii, které fungovala, ale po nějakých úpravách jsem ji spustil a zjistil jsem, že neopevírá obchody. Skusil jsem do stradegie dát breakpointy a zjistil jsem, že se nespusí funkce start().

Pokud se stím někdo setkal, poraďte mi prosím.

kajman
Silver member
avatar
Příspěvky: 254
Více informací o uživateli >>
Re: Nefunkční strategie 04.01.2015 11:27
Odpověď na: Slavin

Dobrý den,

jsem začátečník v psaní obchodních strategií a celkově v oblasti forexu. Napsal jsem si svoji strategii, které fungovala, ale po nějakých úpravách jsem ji spustil a zjistil jsem, že neopevírá obchody. Skusil jsem do stradegie dát breakpointy a zjistil jsem, že se nespusí funkce start().

Pokud se stím někdo setkal, poraďte mi prosím.

1)máš zapnuté strategie? (tj. smajlík vpravo)

2) pokud nejde start() máš chybu v Init sekci popř. deklaraci externích proměnných

krokuj kod a urči, jaký řádek dělá problém

3) podívej se případně do log souboru

STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
Prosím o pomoc, nemohu si vzpomenout.. 27.04.2015 15:26

Ahoj všem, opět bych potřeboval pomoci. Mám program, který nakupuje dvě měny. třeba EURUSD a GBPUSD, takže bych potřeboval nahradit Ask za "Ask" té dané měny, neboť se nemohu spoléhat na otevřený graf.  

např. {ticket_buy = OrderSend (Symbol (),OP_BUY, VYSE_LOTU, ASK ,0,0,0, NULL,0,0,CLR_NONE ); 

Něco jako je Close[0] nahradím iClose("EURUSD", PERIOD_M5,0) 
Už jsem to jednou řešil a vyřešil, ale už nevím jak.. proto vás moc prosím o pomoc, jak to udělat..

Vykuk
Veteran member
avatar
Příspěvky: 1271
Více informací o uživateli >>
Re: Prosím o pomoc, nemohu si vzpomenout.. 27.04.2015 15:32
Odpověď na: STEFIINO

Ahoj všem, opět bych potřeboval pomoci. Mám program, který nakupuje dvě měny. třeba EURUSD a GBPUSD, takže bych potřeboval nahradit Ask za "Ask" té dané měny, neboť se nemohu spoléhat na otevřený graf.  

např. {ticket_buy = OrderSend (Symbol (),OP_BUY, VYSE_LOTU, ASK ,0,0,0, NULL,0,0,CLR_NONE ); 

Něco jako je Close[0] nahradím iClose("EURUSD", PERIOD_M5,0) 
Už jsem to jednou řešil a vyřešil, ale už nevím jak.. proto vás moc prosím o pomoc, jak to udělat..

double ask = SymbolInfoDouble( Symbol(), SYMBOL_ASK );

Každopádně pokud se nemůžeš spolehnout na otevřený graf, tak nesmíš použít ani Symbol() Cool, ale vypsat název symbolu třeba "EURUSD", nebo "GBPUSD".

| Broker: IC Markets (live) | FX od 2012 |
STEFIINO
Nováček v diskuzi
avatar
Příspěvky: 29
Více informací o uživateli >>
Re: Re: Prosím o pomoc, nemohu si vzpomenout.. 27.04.2015 15:36
Odpověď na: Vykuk

double ask = SymbolInfoDouble( Symbol(), SYMBOL_ASK );

Každopádně pokud se nemůžeš spolehnout na otevřený graf, tak nesmíš použít ani Symbol() Cool, ale vypsat název symbolu třeba "EURUSD", nebo "GBPUSD".

Moc díky.

flamel
Nováček v diskuzi
avatar
Příspěvky: 2
Více informací o uživateli >>
opakovani kodu nevim si rady 28.04.2015 18:55

Dobry den, mam takovy problem chtel bych aby se po uzavreni vsech pozic a pokynu tato AOS opakovala. Problem je v tom ze se me porad nastavuji dalsi a dalsi pokyny. Timto bych se vas chtel zeptat jestli nemate nekdo s tim zkusenost kde delam chybu :( . Sice se to snazim naucit ale bez znalosti jazyka a i toho Aj to jde dost tezko dekuji za pomoc





int start()

{
int ticket,expiration;
double point;
//--
point=MarketInfo(Symbol(),MODE_POINT);
expiration=CurTime()+PERIOD_D1*60;
//--

while(true)
{


ticket=OrderSend(Symbol(),OP_SELL,0.10,Bid-0*point,0,Bid+20000*point,Bid-20000*point,"BUY 1K H4",16384,expiration,Black);




ticket=OrderSend(Symbol(),OP_BUY,0.10,Bid+0*point,0,Bid-20000*point,Bid+20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_BUYSTOP,0.10,Bid+100*point,0,Bid-20000*point,Bid+20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_BUYSTOP,0.10,Bid+200*point,0,Bid-20000*point,Bid+20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_BUYSTOP,0.10,Bid+300*point,0,Bid-20000*point,Bid+20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_BUYSTOP,0.10,Bid+400*point,0,Bid-20000*point,Bid+20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_BUYSTOP,0.10,Bid+500*point,0,Bid-20000*point,Bid+20000*point,"BUY 1K H4",16384,expiration,Black);




/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




ticket=OrderSend(Symbol(),OP_SELLSTOP,0.10,Bid-100*point,0,Bid+20000*point,Bid-20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_SELLSTOP,0.10,Bid-200*point,0,Bid+20000*point,Bid-20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_SELLSTOP,0.10,Bid-300*point,0,Bid+20000*point,Bid-20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_SELLSTOP,0.10,Bid-400*point,0,Bid+20000*point,Bid-20000*point,"BUY 1K H4",16384,expiration,Black);
ticket=OrderSend(Symbol(),OP_SELLSTOP,0.10,Bid-500*point,0,Bid+20000*point,Bid-20000*point,"BUY 1K H4",16384,expiration,Black);


if(ticket<=0) Print("Error = ",GetLastError());
else { Print("ticket =1",ticket); break; }
//-- 10 seconds wait
Sleep(10000);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////


for(q=0;q<OrdersTotal();q++)
{if(OrderSelect(q, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber()==16384)
{return(0);}}




/////////////////////////////////////////////////////////////////////////////////////////////////////////////

//--
return(0);
}

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 (speciální uzavřená sekce na webu), až doposud využívanou pouze několika profesionálními tradery, a k tomu i exkluzivní VIP indikátory, 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é VIP indikátory, 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
CapXmaster srovnani