șablon Consilier pentru tranzacționare automat

Mulți comercianți se confruntă cu problema de a scrie experți lor.

În cazul în care pentru a începe?
Cum să setați codul de consilier ia de profit, stop loss sau trailing stop?
Cum pot verifica performanța strategiei?
Nu doriți să rezervați cu programatori care au fost făcute mult timp pentru tine?
Ați găsit o strategie similară și doriți să-l îmbunătățească? Ca un programator Vreau să spun că fiecare comandă 3 este similar cu predecesorul său în logica sa.
Aceste comenzi sunt de obicei mai ieftine.

Fiecare programator are în numărul său set de funcții și biblioteci pentru a scrie și se bucură de consilieri

le în scris un ordin.

Cu acest articol și template-uri, veți putea să scrie mai întâi codul din MQL4.

șablon Consilier pentru tranzacționare automat


Acest șablon este proiectat pentru uz general de a crea experți în acest șablon a pus cele mai multe

caracteristici importante și necesare pentru a lucra cu un expert

Printre caracteristicile acestui șablon este:

Utilizarea / neutilizării - Stop Loss / Take Profit
Utilizarea / neutilizării - time Comerț
Utilizare / non-utilizare - tehnologia MarketWatch de a face afaceri (incluziune - numai pentru cei care cunosc)
Utilizarea / neutilizare - Până la comenzi / Poziția pe piață - o alegere
Utilizarea / neutilizării - Avtolota, sau altfel utilizați lot fix
Utilizarea / nefolosirea - închiderii poziției pe semnalul invers
Utilizarea / neutilizării - Treylingstopa

șablon extern:

Codul model de bază închis într-un început ()

  • Iac
  • iAD
  • iAlligator
  • iADX
  • iATR
  • IAO
  • iBearsPower
  • iBands
  • iBandsOnArray
  • iBullsPower
  • ICCI
  • iCCIOnArray
  • iDeMarker
  • iEnvelopes
  • iEnvelopesOnArray
  • iForce
  • iFractals
  • iGator
  • iIchimoku
  • iBWMFI
  • iMomentum
  • iMomentumOnArray
  • iMFI
  • ima
  • iMAOnArray
  • iOsMA
  • iMACD
  • iOBV
  • ISAR
  • IRSI
  • iRSIOnArray
  • iRVI
  • iStdDev
  • iStdDevOnArray
  • iStochastic
  • IWPR

* --- Utilizarea indicatorilor externi (personalizate) --- *

iCustom dublu (simbol string, int interval de timp, șir de nume. modul int, int shift)

Calcularea utilizatorul indicatorului menționat. indicator personalizat

Unitate de determinare a semnalului

În acest bloc, și ar trebui să ceară semnalele lor de a comerțului. Ca un exemplu, aici

un exemplu de utilizare a indicatorului MACD

concluzie

dispar întrebări pe forumuri

- modul de a face un sistem de tranzacționare simplu, iar programatorii vor fi în măsură să ia această

șablon pentru a dezvolta sistemele sofisticate.

opțiunile sunt multe.
Funcția de căutare ultima poziție și pavilion de închidere de m:

? 200 '200px': '' + (this.scrollHeight + 5) + 'px'); "> bool isCloseLastPosByTake (sy string ="“, int op = -1, int mn = -1 # 41; <
datetime t;
POC dublu, otp;
int dg, i, j = -1, k = OrdersHistoryTotal (# 41 ;;

if (sy == "0" # 41; sy = Simbol (# 41 ;;
pentru (i = 0; i if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY # 41; # 41; <
în cazul în care (OrderSymbol (# 41; == sy # 124; # 124; sy == "" # 41; <
în cazul în care (OrderType (# 41; == OP_BUY # 124; # 124; OrderType (# 41; == OP_SELL # 41; <
în cazul în care (op<0 || OrderType()==op) <
în cazul în care (mil<0 || OrderMagicNumber()==mn) <
if (t t = OrderCloseTime (# 41 ;;
j = i;
>
>
>
>
>
>
>
if (OrderSelect (j, SELECT_BY_POS, MODE_HISTORY # 41; # 41; <
dg = MarketInfo (OrderSymbol (# 41;, MODE_DIGITS # 41 ;;
if (dg == 0 # 41; în cazul în care (StringFind (OrderSymbol (# 41; "JPY" # 41;<0) dg=4; else dg=2;
POC = NormalizeDouble (OrderClosePrice (# 41;, dg # 41 ;;
otp = NormalizeDouble (OrderTakeProfit (# 41;, dg # 41 ;;
în cazul în care (POC == # 41 otp; return (Adevărat # 41 ;;
>
întoarce (False # 41 ;;
>

Noi o numim așa:
în cazul în care (isCloseLastPosByTake (simbol (), - 1, Magic))

tip suplimentar în funcție de ultima poziție

? 200 '200px': '' + (this.scrollHeight + 5) + 'px'); "> int GetTypeLastClosePos (sy string ="“, int mn = -1 # 41; <
datetime t;
int i, k = OrdersHistoryTotal (# 41;, r = 1;

if (sy == "0" # 41; sy = Simbol (# 41 ;;
pentru (i = 0; i if (OrderSelect (i, SELECT_BY_POS, MODE_HISTORY # 41; # 41; <
în cazul în care ((OrderSymbol (# 41; == sy # 124; # 124; sy == "" # 41; (mil<0 || OrderMagicNumber()==mn)) <
în cazul în care (OrderType (# 41; == OP_BUY # 124; # 124; OrderType (# 41; == OP_SELL # 41; <
if (t t = OrderCloseTime (# 41 ;;
r = OrderType (# 41 ;;
>
>
>
>
>
return (r # 41 ;;
>

Puteți determina tipul de ultima poziție, după cum urmează:
tip int = GetTypeLastClosePos (simbol (), Magic);