Jump to content
Co nového? Mé kurzy
Komunita:
Diskuze Sledované příspěvky Žebříčky

Programování v MT4


BigBull

Doporučené příspěvky

Samozrejme se omlouvam, protoze zas pisu kraviny:D Spravna odpoved co se tyce ECN brookeru je tato: Differences should only be in the OrderSend() function. On ECN's you can't set TP/SL in that function. You must first open the order, and then modify it with the right TP/SL

(radsi to nechavam v originale, jelikoz jsem dneska tak mimo, ze bych zvoral i preklad:D)

rozirozi Napsal:
-------------------------------------------------------
> Aha, odpovim si sam (kdyby nekdy nekdo mel nahodou
> stejny problem). Problem je v tom, ze jsem u ECN
> brookera (u Market Maker brookera EA funguje tak
> jak ma) a ten vzdy garantuje cenu vstupu/vystupu
> tzn. 0 slipage.
> Muj EA je nastaveny na obchodovani po barech,
> nikoli na kazdy tick. Z toho vyplyva, ze kdyz muj
> EA chce vstoupit v jednu chvili do obchodu za
> nakou ˇˇcenuˇˇ nez se prikaz vyplni, cena se zmeni
> a brooker jiz nepovoli vstup, jelikoz EA po nem
> chce jinou cenu vstupu nez je realna. (to se stane
> v drtive vetsine pripadu) ..........snad sem to
> napsal srozumitlene:D
> Otazkou ted zustava jak to opravit. Nastavit EA na
> each tick mode nechci/nemuzu........ tzn. prosim
> kodery o pomoc jak z toho ven:-)
> rozirozi Napsal:
> --------------------------------------------------
> -----
> > No to si mi moc nepomoch:-) Neni to hovadina,
> pri
> > BACKTESTINGU ten EA pracuje naprosto presne
> tak
> > jak ma. Dokonce pracuje naprosto presne dycky
> kdyz
> > preinstaluju MT4 platformu. Ovsem pri dalsim
> > obchodu (spusteni MT4) uz zase neobchoduje,
> > opravdu nikdo nevi, cim to muze byt? diky
> >
> > juklonka Napsal:
> >
> --------------------------------------------------
>
> > -----
> > > podle mě vytvářet strategie přes online
> ea
> > builder
> > > je hovadina, má to spoustu chyb. já se
> > naučil
> > > základy a použil cody z mql4 stránek,
> které
> > jsem
> > > pozměnil ke svým potřebám.
> >
> >
> >
>
>
>


Link to comment
Sdílet pomocí služby

  • Odpovědí 583
  • Vytvořeno
  • Poslední

Nejaktivnější diskutující

Nejaktivnější diskutující

Publikované obrázky

kviido Napsal:
-------------------------------------------------------
> rozirozi
> tak to ma práve zaujíma. Mám ECN brokera a EA,
> ktorý som stiahol z netu. EA má v nastavení
> premennú "CriminallsECN" a neviem, či to nastaviť
> na true, alebo false pre demo aj pre live. Nejako
> to súvisí so zadávaním SL TP.


Co ta proměnná znamená by měl vědět autor toho EA, my to vědět nemůžeme, můžeme jenom hádat.

Link to comment
Sdílet pomocí služby

Samozrejme vedet to nemuzem, ale nejspis TRUE: kdyz obchodujes u ECN brookera a FALSE: kdyz obchodujes u normal brookera.............. JJ presne tak, ten cely problem u EA a ECN brookeru je v tom, ze TP a SL proste nemuze byt v ordersend functions...... a ten autor co vytvarel ten tvuj EA byl nejspis natolik inteligentni, ze s tim pocital:-)

kviido Napsal:
-------------------------------------------------------
> rozirozi
> tak to ma práve zaujíma. Mám ECN brokera a EA,
> ktorý som stiahol z netu. EA má v nastavení
> premennú "CriminallsECN" a neviem, či to nastaviť
> na true, alebo false pre demo aj pre live. Nejako
> to súvisí so zadávaním SL TP.


Link to comment
Sdílet pomocí služby

Ano potvrzuje, stacilo zapnout mozkove zavity a clovek si pak domysli proc je tam to: CriminalIsECN :-)
Ty se mas, ty to bud prehodis na TRUE nebo na FALSE, ja takovouhle funkci v mem EA nemam a ted (uz asi dva dny) si lamu hlavu s tim, ze kdyz vykopnu TP a SL z ordersend functions, (coz mi sam. jde:-)) tak jak se pak zakomponuju nekam pod to:-) Takze ted hledam odpoved na netu, jelikoz programator bohuzel nejsem.
kviido Napsal:
-------------------------------------------------------
> rozirozi
> angličtina a programovanie nie sú moja šálka čaju,
> ale mám pocit, že toto potvrdzuje čo si napísal:
> CriminalIsECN: This must be set to 'true' if your
> criminal will not allow you to
> send stops and tp's with your trades. Note that
> IBFX are ECN even though they
> do not mention this to anybody.
>
>
>
>


;) ;)

Link to comment
Sdílet pomocí služby

posílám jak to má vyřešený, pokud je ECN true, v ordersend je TP a SL roven 0 a pak přes ordermodify tam ten TP a SL přidává, dokud se mu to nepodaří

//Send market order for trend trades
if (magic == TtMagicNumber)
{

if (!CriminalIsECN) ticket = OrderSend(Symbol(),type, lotsize, price, slippage, stop, take, comment, 0, expiry, col);

if (CriminalIsECN)
{

ticket = OrderSend(Symbol(),type, lotsize, price, slippage, 0, 0, comment, 0, expiry, col);
int err;
if (ticket > 0)
{

if (take > 0 && stop > 0)
{
while(IsTradeContextBusy()) Sleep(100);
bool result = OrderModify(ticket, OrderOpenPrice(), stop, take, OrderExpiration(), CLR_NONE);
if (!result)
{
err=GetLastError();
Print(Symbol(), " SL/TP order modify failed with error(",err,"): ",ErrorDescription(err));
}//if (!result)
}//if (take > 0 && stop > 0)

if (take != 0 && stop == 0)
{
while(IsTradeContextBusy()) Sleep(100);
result = OrderModify(ticket, OrderOpenPrice(), OrderStopLoss(), take, OrderExpiration(), CLR_NONE);
if (!result)
{
err=GetLastError();
Print(Symbol(), " SL order modify failed with error(",err,"): ",ErrorDescription(err));
}//if (!result)
}//if (take == 0 && stop != 0)

if (take == 0 && stop != 0)
{
while(IsTradeContextBusy()) Sleep(100);
result = OrderModify(ticket, OrderOpenPrice(), stop, OrderTakeProfit(), OrderExpiration(), CLR_NONE);
if (!result)
{
err=GetLastError();
Print(Symbol(), " SL order modify failed with error(",err,"): ",ErrorDescription(err));
}//if (!result)
}//if (take == 0 && stop != 0)

}//if (ticket > 0)


}//if (CriminalIsEcn)


}//if (magic == TtMagicNumber)

Link to comment
Sdílet pomocí služby

Děkuji mnohokrát, ale naštěsti už se mi to podařilo a mnohem, mnohem jednoduseji:-) (ale i presto dekuju za snahu, velice si ji vazim :-) )
hankeys Napsal:
-------------------------------------------------------
> posílám jak to má vyřešený, pokud je ECN true, v
> ordersend je TP a SL roven 0 a pak přes
> ordermodify tam ten TP a SL přidává, dokud se mu
> to nepodaří
>
> //Send market order for trend trades
> if (magic == TtMagicNumber)
> {
>
> if (!CriminalIsECN) ticket =
> OrderSend(Symbol(),type, lotsize, price, slippage,
> stop, take, comment, 0, expiry, col);
>
> if (CriminalIsECN)
> {
>
> ticket = OrderSend(Symbol(),type,
> lotsize, price, slippage, 0, 0, comment, 0,
> expiry, col);
> int err;
> if (ticket > 0)
> {
>
> if (take > 0 && stop >
> 0)
> {
> while(IsTradeContextBusy())
> Sleep(100);
> bool result = OrderModify(ticket,
> OrderOpenPrice(), stop, take, OrderExpiration(),
> CLR_NONE);
> if (!result)
> {
> err=GetLastError();
> Print(Symbol(), " SL/TP
> order modify failed with error(",err,"):
> ",ErrorDescription(err));
> }//if (!result)
> }//if (take > 0 && stop
> > 0)
>
> if (take != 0 && stop == 0)
> {
> while(IsTradeContextBusy())
> Sleep(100);
> result = OrderModify(ticket,
> OrderOpenPrice(), OrderStopLoss(), take,
> OrderExpiration(), CLR_NONE);
> if (!result)
> {
> err=GetLastError();
> Print(Symbol(), " SL order
> modify failed with error(",err,"):
> ",ErrorDescription(err));
> }//if (!result)
> }//if (take == 0 && stop !=
> 0)
>
> if (take == 0 && stop != 0)
> {
> while(IsTradeContextBusy())
> Sleep(100);
> result = OrderModify(ticket,
> OrderOpenPrice(), stop, OrderTakeProfit(),
> OrderExpiration(), CLR_NONE);
> if (!result)
> {
> err=GetLastError();
> Print(Symbol(), " SL order
> modify failed with error(",err,"):
> ",ErrorDescription(err));
> }//if (!result)
> }//if (take == 0 && stop !=
> 0)
>
> }//if (ticket > 0)
>
>
> }//if (CriminalIsEcn)
>
>
> }//if (magic == TtMagicNumber)
>


;)

Link to comment
Sdílet pomocí služby

Zdravím.
Šlo by naprogramovat něco takového, aby při manuálně otevíraných obchodech (vstupy chci řešit manuálně) robot automaticky měnit Stop loss podle hodnoty 20 WMA. Tj. aktuální hodnota WMA = aktuální hodnota 20 WMA. S anstavením nějaké periody, kdy by se ten SL aktualizoval?

a nebo ještě lépe, aby se pozice zavřela ve chvíly, kdy WMA 5 protlo WMA 20 směrem nahoru v případě Sell pozice, a směrem dolu v případě Buy pozice?

Díky

Link to comment
Sdílet pomocí služby

  • 3 týdny později...

Dobrý den,
EA mi občas nenastoupí do obchodu podle zadaných podmínek a v deníku nacházím zprávu :

2011.04.25 19:21:12 2011.01.05 18:00 110318_Kb EURUSD,H1: OrderClose error 4107
2011.04.25 19:21:12 2011.01.05 18:00 110318_Kb EURUSD,H1: invalid price 1.31723000 for OrderClose function

nebo

2011.04.25 19:20:11 2011.01.05 15:00 110318_Kb EURUSD,H1: OrderSend error 4107
2011.04.25 19:20:11 2011.01.05 15:00 110318_Kb EURUSD,H1: invalid price 1.31798000 for OrderSend function


jindy je stejným EA cena zjištěna z trhu bez problému a obchodní příkaz je realizován:

2011.04.25 19:19:51 2011.01.05 14:00 110318_Kb EURUSD,H1: open #3 sell 0.10 EURUSD at 1.3209 sl: 1.3311 tp: 1.3009 ok

nebo

2011.04.25 19:19:02 2011.01.05 11:00 110318_Kb EURUSD,H1: close #2 sell 0.10 EURUSD at 1.3257 sl: 1.3359 tp: 1.3057 at price 1.3265

Chyba zřejmě souvisí s občas vícemístným zobrazením ceny (standard 4 místa za ., při chybě 8 míst), ale co s tím, nevím.


Prosím, poradí mi někdo, kam sáhnout?
Děkuji
Lerak

Link to comment
Sdílet pomocí služby


×
×
  • Vytvořit...