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

Dobrý den.
Měl bych dotázek.Máte někdo zkušenost s tím,že naprogramujete AOS v MT4 a on Vám nebere všechny signály?
I přes splněné podmínky?Pokud dám třeba jen takto jednoduchý prográmek tak nefunguje přeně,některé vstupy prostě vynechá a já nevím proč.Měl jsem ho puštěnej 3 dny a několik splněných podmínek vynechal a neudělal obchod.

Pokud někdo tuší,dejte pls vědět.Díky.



//+------------------------------------------------------------------+
//| 1.mq4 |
//| 1|
//| |
//+------------------------------------------------------------------+
#property copyright "1"
#property link ""
bool NewBar() //////////////////////////////////////////
{
static datetime lastbar = 0;
datetime curbar = Time[0];
if(lastbar!=curbar)
{
lastbar=curbar;
return (true);
}
else
{
return(false);
}
}
//---- input parameters
extern int SL=40;
extern int PT=100;
extern int MA=64;
extern int MAA=8;

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
//////////////////////////////////////////////////////////////////////

int start()
// int CCT=0;
{
//----
double EMA;
double EMAA;
int ticket,total;
EMA=iMA(Symbol(),0,MA,0,1,6,1);
EMAA=iMA(Symbol(),0,MAA,0,1,6,1);
if (NewBar() == true)
{
if (EMA>=EMAA)
{
if (Low[1]>=EMA)
{

ticket=OrderSend(Symbol(),OP_SELL,0.1,Bid,3,Ask+Point*SL,Ask-Point*PT,"dolu",1,0,Green);
}
}
////////////////////////////////////////////////////////////////////////////////////////

if (EMA {
if (High[1] {
ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,Ask-Point*SL,Ask+Point*PT,"nahoru",1,0,Green);
}
}
}
/////////////////////////////////////////////////////////////////////////////////////////
return(0);
}

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

Zdravím všechny a zároveň jsem chtěl požádat,zda by mi někdo nepomohl upravit kód ea.Je to jednoduché ea na dvě ma. Potřeboval by jsem do něho vložit trailing stop. Zkoušel jsem to sám,ale nejsem programátor a bohužel je to nad moje síly. Děkuji za pomoc.

//+------------------------------------------------------------------+
//| X trader.mq4 |
//| Copyright © 2012, www.FxAutomated.com |
//| www.FxAutomated.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, www.FxAutomated.com"
#property link "www.FxAutomated.com"

//---- input parameters
extern double Lots=0.1;
extern int TakeProfit=150;
extern int StopLoss=100;
extern string Ma1="First Ma settings";
extern int Ma1Period=16;
extern int Ma1Shift=8;
extern int Ma1Method=0;
extern int Ma1AppliedPrice=4;
extern string Ma2="Second Ma settings";
extern int Ma2Period=1;
extern int Ma2Shift=0;
extern int Ma2Method=0;
extern int Ma2AppliedPrice=4;
extern int MagicNumber=320101;


//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
Alert("Visit www.FxAutomated.com for more goodies!");
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert starts |
//+------------------------------------------------------------------+
int start()
{
//----
int StopMultd,Slip=5;


int digits=MarketInfo("EURUSD",MODE_DIGITS);
StopMultd=10;
double TP=NormalizeDouble(TakeProfit*StopMultd,Digits);
// stop loss
double SL=NormalizeDouble(StopLoss*StopMultd,Digits);

double Slippage=NormalizeDouble(Slip*StopMultd,Digits);

// Calculate stop loss
double slb=NormalizeDouble(Ask-SL*Point,Digits);
double sls=NormalizeDouble(Bid+SL*Point,Digits);

// Calculate take profit
double tpb=NormalizeDouble(Ask+TP*Point,Digits);
double tps=NormalizeDouble(Bid-TP*Point,Digits);

// Ma strategy one
double MA1_bc=iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1AppliedPrice,0);
double MA1_bp=iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1AppliedPrice,1);
double MA1_bl=iMA(NULL,0,Ma1Period,Ma1Shift,Ma1Method,Ma1AppliedPrice,2);



// Ma constant
double MA2_bc=iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2AppliedPrice,0);
double MA2_bp=iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2AppliedPrice,1);
double MA2_bl=iMA(NULL,0,Ma2Period,Ma2Shift,Ma2Method,Ma2AppliedPrice,2);



//-------------------------------------------------------------------+
//Check open orders
//-------------------------------------------------------------------+
if(OrdersTotal()>0){
for(int i=1; i {
if (OrderSelect(i-1,SELECT_BY_POS)==true) // If the next is available
{
if(OrderMagicNumber()==MagicNumber) {int halt1=1;}

}
}
}
//-------------------------------------------------------------------+

//-------------------------------------------------------------------+
// trading strategy
//-------------------------------------------------------------------+

Comment("For more goodies, managed accounts, forex signals and premium EAs visit www.FxAutomated.com");


if(halt1!=1){// halt1

// Sell criteria
if ((MA1_bc>MA2_bc)&&(MA1_bp>MA2_bp)&&(MA1_bl {
int opensell=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"X trader order ",MagicNumber,0,Green);
if(opensell }

// Buy criteria
if ((MA1_bcMA2_bl)) //Signal Buy
{
int openbuy=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"X trader order ",MagicNumber,0,Blue);
if(openbuy }

}// halt1

//-----------------------------------------------------------------------------------------------------
if(OrdersTotal()>0){
for(i=1; i
if (OrderSelect(i-1,SELECT_BY_POS)==true){ // If the next is available

if((OrderMagicNumber()==MagicNumber&&OrderType()==OP_BUY)&&(OrderTakeProfit()==0||OrderStopLoss()==0)) { OrderModify(OrderTicket(),0,slb,tpb,0,CLR_NONE); }
if((OrderMagicNumber()==MagicNumber&&OrderType()==OP_SELL)&&(OrderTakeProfit()==0||OrderStopLoss()==0)) { OrderModify(OrderTicket(),0,sls,tps,0,CLR_NONE); }

}
}
}

//-------------------------------------------------------------------+
// Error processing
//-------------------------------------------------------------------+
if(buyfail==1||sellfail==1){
int Error=GetLastError();
if(Error==130){Alert("Wrong stops. Retrying."); RefreshRates();}
if(Error==133){Alert("Trading prohibited.");}
if(Error==2){Alert("Common error.");}
if(Error==146){Alert("Trading subsystem is busy. Retrying."); Sleep(500); RefreshRates();}

}

//-------------------------------------------------------------------
return(0);
}
//+-----------------------------------

Link to comment
Sdílet pomocí služby

  • 2 týdny později...

zdenda99yz:
Platforma MT4 je na forex pro mě osobně nejlepší jakou jsem kdy používal,záleží hlavně na tom zvolit dobrého brokera.Platformu Saxotrader moc neznám ale řekl bych že je co se týče funkcí,možnosti programování,testování a možnosti vkládání různých indikátorů ztažených z internetu na tom o něco hůř a navíc myslím že není ani česky.Jinak zkratka AOS znamená automatický obchodní systém,čili strategie kterou zapneš ve svojí platformě a ona za tebe sama provádí obchody podle předem nastavených pravidel.

Link to comment
Sdílet pomocí služby

Zdravím Vás všechny , potřeboval bych prosím pomoci s programováním . Nevím jak mám dostat zpět hodnotu iMa na cenu, chtěl bych aby se mi vracela hodnota která je rovna ceně na konci čáry od iMa . Když si hodnotu nechám ukázat pomocí "Alert" ,tak mi to píše nechám

21889

Link to comment
Sdílet pomocí služby

  • 3 týdny později...
  • 4 týdny později...

prosim, je to uplne primitivni, ale nebezi mi to, je tu nekdo, kdo pomuze zacatecnikovi
napr: nakup v case time framu 5m tj. xx:xa:00 pokud je aktualni svicka zelena

extern double TP = 200;
extern double SL = 150;
extern double Lots = 0.1;

int start()
{

if(Open[1]>Close[1] && Open[0] {
//Alert("Nakup v case",TimeToStr(Time[0]));
int ticketId = OrderSend(Symbol(), OP_BUY, Lots, Ask, 0, (Ask - SL * Point), Ask + TP * Point, NULL, 0, 0, CLR_NONE);

}

return(0);
}

Link to comment
Sdílet pomocí služby

prosim, je to uplne primitivni, ale nebezi mi to, je tu nekdo, kdo pomuze zacatecnikovi
napr: nakup v case time framu 5m tj. xx:xa:00 pokud je aktualni svicka zelena

extern double TP = 200;
extern double SL = 150;
extern double Lots = 0.1;

int start()
{

if(Open[1]>Close[1] && Open[0] {
//Alert("Nakup v case",TimeToStr(Time[0]));
int ticketId = OrderSend(Symbol(), OP_BUY, Lots, Ask, 0, (Ask - SL * Point), Ask + TP * Point, NULL, 0, 0, CLR_NONE);

}

return(0);
}

Link to comment
Sdílet pomocí služby

Hr62 děkuju za pomoc.Strategii jsem nahrál do složky experts,skripty do složky scripts a indikátory do složky indicators.U všech skriptů jsem povolil umožnit obchodování,umožnit import a povolit funkci DLL.U skriptů buy market,sell market,london breakout input calculator a london breakout scriptV3,1 jsem zkoušel různá nastavení všech proměných ale stále bez jediného obchodu.Nerozumím větě do grafu v testri musíš vložit script.Vždy když dám začátek testu a povolím vizuální zobrazování tak se otevře nový graf a do něj nic vložit nejde.Mohl by jste mi teda vysvětlit co dělám špatně aby to už konečně fungovalo?

Link to comment
Sdílet pomocí služby


×
×
  • Vytvořit...