Orders Execution
0
Views
0
Downloads
0
Favorites
TradeSystem
//+------------------------------------------------------------------+
//| TradeSystem.mq4 |
//| Copyright © 2007 Ñåðãååâ Àëåêñåé |
//| los@we.kherson.ua |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, Ñåðãååâ Àëåêñåé "
#property link "mailto: los@we.kherson.ua"
#include <Traling.mqh>
#include <stderror.mqh>
#include <stdlib.mqh>
double MinLot=0.1; //Ñàìûé ìàëåíüêèé ëîò, ñ êîòîðîãî íà÷èíàåò òîðãîâëþ ëþáîé ïðîöåññ
void ProcessAvgLim(int SignalID, int SysID, color ClrBuy, color ClrSell)
{
// double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò = 100 ó.å. ïðè 100000 ó.å. (ñîîòíîøåíèå 1/1000)
double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò
lots = NormalizeDouble(lots, LotDigit); //îêðóãëèëè äî çíàêîâ ìèíèìàëüíîãî ëîòà
if (MinLot>lots) lots = MinLot;// åñëè òåêóùéè áàëàíñ ìåíüøå ìèíèìàëüíîãî
double price = 0.0;
int total, i, cbuy, csell, Signal, pos;
//---- òåïåðü äëÿ íîâûõ ïîçèöèé
Signal = CheckSignal(true, SignalID);
if (Signal == -1) return; // åñëè íåò ñèãíàëà òî ïðîñòî íè÷åãî íå äåëàåì
//----- äëÿ ñîâåðøåíèÿ ïîêóïêè
if(Signal == OP_BUY)
{
cbuy = CountAllOrders(OP_BUY, SysID);
if (cbuy<=0) //åñëè íåò, òî îòêðûâàåì
{ //èíà÷å çà÷èñòèëè îðäåðà LIMIT
total = CreatTicketArray(OP_BUYLIMIT, SysID); for (i=1; i<=total; i++) OrderDelete(Ticket[i], Green);
//îòêðûâàåì îðäåð
OrderSend(Symbol(), OP_BUY, lots, Ask, 3, Ask-SysPar[SysID][_SL]*Point, Ask+SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
}
else // èíà÷å äîëèâàåì
{ // íàõîäèì ñàìûé ïåðâûé îðäåð
total = CreatTicketArray(OP_BUY, SysID); OrderSelect(Ticket[1], SELECT_BY_TICKET); price=OrderOpenPrice(); pos = 1;
for (i=2; i<=total; i++)
{ OrderSelect(Ticket[i], SELECT_BY_TICKET); if (OrderOpenPrice()>price) { price=OrderOpenPrice(); pos = i; } }
OrderSelect(Ticket[pos], SELECT_BY_TICKET); lots = OrderLots(); lots = NormalizeDouble(lots, LotDigit);
if (OrderOpenPrice()<Ask-100*Point)
OrderSend(Symbol(), OP_BUY, lots, Ask, 2, Ask-SysPar[SysID][_SL]*Point, Ask+SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
}
}
//----- äëÿ ñîâåðøåíèÿ ïðîäàæè àíàëîãè÷íî
if(Signal == OP_SELL)
{
csell = CountAllOrders(OP_SELL, SysID);
if (csell<=0) //åñëè íåò, òî îòêðûâàåì
{
total = CreatTicketArray(OP_SELLLIMIT, SysID); for (i=1; i<=total; i++) OrderDelete(Ticket[i], Red);
OrderSend(Symbol(), OP_SELL, lots, Bid, 3, Bid+SysPar[SysID][_SL]*Point, Bid-SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrSell);
}
else // èíà÷å äîëèâàåì
{ // íàõîäèì ñàìûé ïåðâûé îðäåð
total = CreatTicketArray(OP_SELL, SysID); OrderSelect(Ticket[1], SELECT_BY_TICKET); price=OrderOpenPrice(); pos = 1;
for (i=2; i<=total; i++)
{ OrderSelect(Ticket[i], SELECT_BY_TICKET); if (OrderOpenPrice()<price) { price=OrderOpenPrice(); pos = i; } }
OrderSelect(Ticket[pos], SELECT_BY_TICKET); lots = OrderLots(); lots = NormalizeDouble(lots, LotDigit);
if (OrderOpenPrice()>Bid+100*Point)
OrderSend(Symbol(), OP_SELL, lots, Bid, 2, Bid+SysPar[SysID][_SL]*Point, Bid-SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
}
}
}
void ProcessAvgStop(int SignalID, int SysID, color ClrBuy, color ClrSell)
{
// double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò = 100 ó.å. ïðè 100000 ó.å. (ñîîòíîøåíèå 1/1000)
double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò
lots = NormalizeDouble(lots, LotDigit); //îêðóãëèëè äî çíàêîâ ìèíèìàëüíîãî ëîòà
if (MinLot>lots) lots = MinLot;// åñëè òåêóùèé ëîò ìåíüøå ìèíèìàëüíîãî äîïóñòèìîãî
// lots = MinLot;
double price = 0.0;
int total, i, Signal, pos;
//---- òåïåðü äëÿ íîâûõ ïîçèöèé
Signal = CheckSignal(true, SignalID);
// if (Signal == -1) return; // åñëè íåò ñèãíàëà òî ïðîñòî íè÷åãî íå äåëàåì
// if (Signal == OP_BUY)
{
total = CreatTicketArray(OP_BUY, SysID);
if (total<=0) //---- åñëè íåò, òî ïîêóïàåì
OrderSend(Symbol(), OP_BUY, lots, Ask, 2, Ask-SysPar[SysID][_SL]*Point, Ask+SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
else // èíà÷å äîëèâàåì
{ // íàõîäèì ñàìûé ïåðâûé îðäåð
OrderSelect(Ticket[1], SELECT_BY_TICKET); price=OrderOpenPrice(); pos = 1;
for (i=2; i<=total; i++)
{ OrderSelect(Ticket[i], SELECT_BY_TICKET); if (OrderOpenPrice()>price) { price=OrderOpenPrice(); pos = i; } }
OrderSelect(Ticket[pos], SELECT_BY_TICKET); lots = OrderLots(); lots = NormalizeDouble(lots, LotDigit);
if (OrderOpenPrice()<Ask-100*Point)
OrderSend(Symbol(), OP_BUY, lots, Ask, 2, Ask-SysPar[SysID][_SL]*Point, Ask+SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
}
}
//----- äëÿ ñîâåðøåíèÿ ïðîäàæè àíàëîãè÷íî
// if(Signal == OP_SELL)
{
total = CreatTicketArray(OP_SELL, SysID);
if (total<=0) //åñëè íåò, òî îòêðûâàåì
OrderSend(Symbol(), OP_SELL, lots, Bid, 2, Bid+SysPar[SysID][_SL]*Point, Bid-SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrSell);
else // èíà÷å äîëèâàåì
{ // íàõîäèì ñàìûé ïåðâûé îðäåð
OrderSelect(Ticket[1], SELECT_BY_TICKET); price=OrderOpenPrice(); pos = 1;
for (i=2; i<=total; i++)
{ OrderSelect(Ticket[i], SELECT_BY_TICKET); if (OrderOpenPrice()<price) { price=OrderOpenPrice(); pos = i; } }
OrderSelect(Ticket[pos], SELECT_BY_TICKET); lots = OrderLots(); lots = NormalizeDouble(lots, LotDigit);
if (OrderOpenPrice()>Bid+100*Point)
OrderSend(Symbol(), OP_SELL, lots, Bid, 2, Bid+SysPar[SysID][_SL]*Point, Bid-SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
}
}
}
void ProcessTurn(int SignalID, int SysID, color ClrBuy, color ClrSell)
{
// double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò = 100 ó.å. ïðè 100000 ó.å. (ñîîòíîøåíèå 1/1000)
double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò
lots = NormalizeDouble(lots, LotDigit); //îêðóãëèëè äî çíàêîâ ìèíèìàëüíîãî ëîòà
if (MinLot>lots) lots = MinLot;// åñëè òåêóùèé ëîò ìåíüøå ìèíèìàëüíîãî
int ticket, total, i, cbuy, csell, Signal;
Signal = CheckSignal(false, SignalID);//---- ñíà÷àëà äëÿ îòêðûòûõ ïîçèöèé
if(Signal != -1) CloseAllOrders(Signal, SysID, ClrBuy, ClrSell);
cbuy = CountAllOrders(OP_BUY, SysID); csell = CountAllOrders(OP_SELL, SysID);
//----çà÷èñòèëè îðäåðà STOP
if (cbuy<=0) { total = CreatTicketArray(OP_SELLSTOP, SysID); for (i=1; i<=total; i++) OrderDelete(Ticket[i], ClrSell);}
if (csell<=0) { total = CreatTicketArray(OP_BUYSTOP, SysID); for (i=1; i<=total; i++) OrderDelete(Ticket[i], ClrBuy);}
Signal = CheckSignal(true, SignalID);//---- òåïåðü äëÿ íîâûõ ïîçèöèé
if (Signal == -1) return; // åñëè íåò ñèãíàëà òî ïðîñòî íè÷åãî íå äåëàåì
if(Signal==OP_BUY)//----- äëÿ ñîâåðøåíèÿ ïîêóïêè
{
if (cbuy>0) return; //---- åñëè åñòü óæå îòêðûòûé íà ïîêóïêó, òî íè÷åãî íå äåëàåì
//---- èíà÷å çà÷èñòèëè îðäåðà STOP
total = CreatTicketArray(OP_SELLSTOP, SysID); for (i=1; i<=total; i++) OrderDelete(Ticket[i], Red);
OrderSend(Symbol(), OP_BUY, lots, Ask, 3, Ask-SysPar[SysID][_SL]*Point, Ask+SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
OrderSend(Symbol(), OP_SELLSTOP, lots, Ask-SysPar[SysID][_SL]*Point, 3, Ask, Ask-2*SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrSell);
return;
}
if(Signal==OP_SELL)//----- äëÿ ñîâåðøåíèÿ ïðîäàæè
{
if (csell>0) return; //---- åñëè åñòü óæå îòêðûòûé íà ïðîäàæó, òî íè÷åãî íå äåëàåì
total = CreatTicketArray(OP_BUYSTOP, SysID); for (i=1; i<=total; i++) OrderDelete(Ticket[i], Red);
OrderSend(Symbol(), OP_SELL, lots, Bid, 3, Bid+SysPar[SysID][_SL]*Point, Bid-SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrSell);
OrderSend(Symbol(), OP_BUYSTOP, lots, Bid+SysPar[SysID][_SL]*Point, 3, Bid, Bid+2*SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrSell);
return;
}
//----
}
void ProcessSimple(int SignalID, int SysID, color ClrBuy, color ClrSell)
{
// double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò = 100 ó.å. ïðè 100000 ó.å. (ñîîòíîøåíèå 1/1000)
double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò
lots = NormalizeDouble(lots, LotDigit); //îêðóãëèëè äî çíàêîâ ìèíèìàëüíîãî ëîòà
if (MinLot>lots) lots = MinLot;// åñëè òåêóùèé ëîò ìåíüøå ìèíèìàëüíîãî
int ticket, total, i, cbuy, csell, Signal;
//---- ñíà÷àëà äëÿ îòêðûòûõ ïîçèöèé
Signal = CheckSignal(false, SignalID);
if(Signal != -1) TryCloseAllOrders(Signal, SysID, ClrBuy, ClrSell);
//---- òåïåðü äëÿ íîâûõ ïîçèöèé
cbuy = CountAllOrders(OP_BUY, SysID); csell = CountAllOrders(OP_SELL, SysID);
Signal = CheckSignal(true, SignalID);
if (Signal == -1) return; // åñëè íåò ñèãíàëà òî ïðîñòî íè÷åãî íå äåëàåì
//----- äëÿ ñîâåðøåíèÿ ïîêóïêè
if(Signal == OP_BUY)
{
if (cbuy>0) return; //---- åñëè åñòü óæå îòêðûòûé íà ïîêóïêó, òî íè÷åãî íå äåëàåì
//---- îòêðûâàåì îðäåð íà BUY
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, 3, Ask-SysPar[SysID][_SL]*Point, Ask+SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
if (ticket==-1) { i=GetLastError(); Print("error(",i,"): ",ErrorDescription(i));}
return;
}
//----- äëÿ ñîâåðøåíèÿ ïðîäàæè
if(Signal == OP_SELL)
{
if (csell>0) return; //---- åñëè åñòü óæå îòêðûòûé íà ïðîäàæó, òî íè÷åãî íå äåëàåì
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, 3, Bid+SysPar[SysID][_SL]*Point, Bid-SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrSell);
if (ticket==-1) { i=GetLastError(); Print("error(",i,"): ",ErrorDescription(i));}
return;
}
//----
}
void ProcessMultiOpen(int SignalID, int SysID, color ClrBuy, color ClrSell)
{
// double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò = 100 ó.å. ïðè 100000 ó.å. (ñîîòíîøåíèå 1/1000)
double lots = AccountFreeMargin()*0.1*0.00001; //íà÷àëüíûé ëîò
lots = NormalizeDouble(lots, LotDigit); //îêðóãëèëè äî çíàêîâ ìèíèìàëüíîãî ëîòà
if (MinLot>lots) lots = MinLot;// åñëè òåêóùéè ëîò ìåíüøå ìèíèìàëüíîãî
int ticket, total, i, cbuy, csell, Signal;
//---- ïðîâåðÿåì ñîñòîÿíèå ñíà÷àëà äëÿ îòêðûòûõ ïîçèöèé
cbuy = CreatTicketArray(OP_BUY, SysID); csell = CreatTicketArray(OP_SELL, SysID);
//---- òåïåðü äëÿ íîâûõ ïîçèöèé
Signal = CheckSignal(true, SignalID);
if (Signal == -1) return; // åñëè íåò ñèãíàëà òî ïðîñòî íè÷åãî íå äåëàåì
//----- äëÿ ñîâåðøåíèÿ ïîêóïêè
if(Signal == OP_BUY)
{
if (cbuy>0) //íàõîäèì ïîñëåäíèé îðäåð
for (i=1; i<=cbuy; i++)//åñëè îí îòêðûò íà ýòîì áàðå, òî íè÷åãî íå äåëàåì
{ OrderSelect(Ticket[i], SELECT_BY_TICKET); if (OrderOpenTime()>=Time[0]) return; }
//---- îòêðûâàåì îðäåð íà BUY
ticket = OrderSend(Symbol(), OP_BUY, lots, Ask, 3, Ask-3000*Point, Ask+SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrBuy);
if (ticket==-1) { i=GetLastError(); Print("error(",i,"): ",ErrorDescription(i));}
return;
}
//----- äëÿ ñîâåðøåíèÿ ïðîäàæè àíàëîãè÷íî
if(Signal == OP_SELL)
{
if (csell>0) for (i=1; i<=csell; i++) { OrderSelect(Ticket[i], SELECT_BY_TICKET); if (OrderOpenTime()>=Time[0]) return; }
ticket = OrderSend(Symbol(), OP_SELL, lots, Bid, 3, Bid+3000*Point, Bid-SysPar[SysID][_TP]*Point, SysParName[SysID], SysID, 0, ClrSell);
if (ticket==-1) { i=GetLastError(); Print("error(",i,"): ",ErrorDescription(i));}
return;
}
//----
}
int init()
{
InitSystemParam();
SysParName[BLACKSYS] = "BLACKSYS";
SysPar[BLACKSYS][_TP] = 1000.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[BLACKSYS][_NullTP] = 20.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[BLACKSYS][_TS] = 50.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[BLACKSYS][_NullSL] = 20.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[BLACKSYS][_SL] = 70;//èçìåíåíèå ñòîïëîññà äëÿ ñèñòåìû, îñíîâàííîé íàñèãíàëàõ BLACKSYS
SysParName[BLACKSYS+1] = "BLACKSYS+1";
SysPar[BLACKSYS+1][_NullTP] = 20.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[BLACKSYS+1][_TS] = 50.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[BLACKSYS+1][_NullSL] = 20.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[BLACKSYS+1][_SL] = 8000;//èçìåíåíèå ñòîïëîññà äëÿ ñèñòåìû, îñíîâàííîé íàñèãíàëàõ BLACKSYS
SysParName[ENVELOP] = "ENVELOP";
SysPar[ENVELOP][_TP] = 2000.0;// óðîâåíü ïðîôèòà
SysPar[ENVELOP][_NullTP] = 20.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[ENVELOP][_TS] = 40.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[ENVELOP][_NullSL] = 20.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[ENVELOP][_SL] = 70;//èçìåíåíèå ñòîïëîññà äëÿ ñèñòåìû, îñíîâàííîé íà ñèãíàëàõ
SysPar[ENVELOP][_dSL] = 35;//íà÷àëüíûé øàã ïî óðîâíþ îòêðûòèþ ñëåäóþùåãî îðäåðà â ïîääåðæêó ïîçû
SysParName[CSPLINE] = "CSPLINE";
SysPar[CSPLINE][_TP] = 180.0;// óðîâåíü ïðîôèòà
SysPar[CSPLINE][_NullTP] = 30.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[CSPLINE][_TS] = 50.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[CSPLINE][_NullSL] = 70.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[CSPLINE][_SL] = 45;//ñòîïëîññ
SysParName[MACROSS3] = "MACROSS3";
SysPar[MACROSS3][_TP] = 200.0;// óðîâåíü ïðîôèòà
SysPar[MACROSS3][_NullTP] = 30.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[MACROSS3][_TS] = 50.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[MACROSS3][_NullSL] = 70.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[MACROSS3][_SL] = 45;//ñòîïëîññ
SysParName[KRIVETKA] = "KRIVETKA";
SysPar[KRIVETKA][_TP] = 1000.0;// óðîâåíü ïðîôèòà
SysPar[KRIVETKA][_NullTP] = 100.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[KRIVETKA][_TS] = 150.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[KRIVETKA][_NullSL] = 210.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[KRIVETKA][_SL] = 450;//ñòîïëîññ
SysPar[KRIVETKA][_dSL] = 50;//èçìåíåíèå ñòîïëîññà äëÿ ñèñòåìû, îñíîâàííîé íà ñèãíàëàõ
SysParName[BORCHAN] = "BORCHAN";
SysPar[BORCHAN][_TP] = 1000.0;// óðîâåíü ïðîôèòà
SysPar[BORCHAN][_NullTP] = 50.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[BORCHAN][_TS] = 50.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[BORCHAN][_NullSL] = 210.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[BORCHAN][_SL] = 57;//ñòîïëîññ
SysParName[FORCE] = "FORCE";
SysPar[FORCE][_TP] = 1000.0;// óðîâåíü ïðîôèòà
SysPar[FORCE][_NullTP] = 40.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[FORCE][_NullTP2] = 20.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[FORCE][_TS] = 50.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[FORCE][_NullSL] = 50.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[FORCE][_SL] = 50;//ñòîïëîññ
SysPar[FORCE][_dSL] = 40;//èçìåíåíèå ñòîïëîññà äëÿ ñèñòåìû, îñíîâàííîé íà ñèãíàëàõ
SysParName[GRID] = "GRID";
SysPar[GRID][_TP] = 2000.0;// óðîâåíü ïðîôèòà
SysPar[GRID][_NullTP] = 50.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[GRID][_NullTP2] = 15.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê ïó÷îê îðäåðîâ
SysPar[GRID][_TS] = 40.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[GRID][_NullSL] = 100.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[GRID][_SL] = 2000;//ñòîïëîññ
SysParName[BUYFOREVE] = "BUYFOREVE";
SysPar[BUYFOREVE][_TP] = 2000.0;// óðîâåíü ïðîôèòà
SysPar[BUYFOREVE][_NullTP] = 25.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[BUYFOREVE][_NullTP2] = 15.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê ïó÷îê îðäåðîâ
SysPar[BUYFOREVE][_TS] = 50.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[BUYFOREVE][_NullSL] = 60.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[BUYFOREVE][_SL] = 2000;//ñòîïëîññ
SysParName[SELLFOREVE] = "SELLFOREVE";
SysPar[SELLFOREVE][_TP] = 2000.0;// óðîâåíü ïðîôèòà
SysPar[SELLFOREVE][_NullTP] = 25.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê
SysPar[SELLFOREVE][_NullTP2] = 15.0;// óðîâåíü ïðîôèòà, ïîñëå êîòîðîãî ñòàâèì â áåçóáûòîê ïó÷îê îðäåðîâ
SysPar[SELLFOREVE][_TS] = 50.0; // ðàññòîÿíèå òðåéëèíã ñòîïà
SysPar[SELLFOREVE][_NullSL] = 60.0;// óðîâåíü, ïðè äîñòèæåíèè êîòîðîãî ïåðåâîäèì îæèäàåìûé ïðîôèò â òî÷êó îòêðûòèÿ
SysPar[SELLFOREVE][_SL] = 2000;//ñòîïëîññ
// HideTestIndicators(true);
return(0);
}
int deinit() { HideTestIndicators(false); return(0); }
void start()
{
//---- ïðîâåðèòü ìîæíî ëè òîðãîâàòü ýêñïåðòó
// if(IsTradeAllowed()==false) {Comment("!!!!ÒÎÐÃÎÂËß ÍÅÂÎÇÌÎÆÍÀ!!!!!"); return; }
ProcessAvgLim(BUYFOREVE, BUYFOREVE, Black, Plum); TrailingAvgLim(BUYFOREVE, Black, Plum);
ProcessAvgLim(SELLFOREVE,SELLFOREVE, SkyBlue, Wheat); TrailingAvgLim(SELLFOREVE, SkyBlue, Wheat);
// ProcessAvgStop(GRID, GRID, Black, Plum); TrailingAvgStop(GRID, Black, Plum);
/*ñóïåð õîðîøî*/
// ProcessAvgLim(FORCE, FORCE, Green, Red); TrailingAvgLim(FORCE, Green, Red);
// ProcessAvgLim(ENVELOP, ENVELOP, Green, Red); TrailingAvgLim(ENVELOP, Green, Red);
// ProcessSimple(BLACKSYS, BLACKSYS, Green, Red); TrailingSimple(BLACKSYS, Green, Red);// åâðî 4Í
// ProcessSimple(MACROSS3, MACROSS3, Green, Red); TrailingSimple(MACROSS3, Green, Red);//
/*õîðîøî*/
// ProcessTurn(BORCHAN, BORCHAN, Green, Red); TrailingSimple(BORCHAN, Green, Red);
// ProcessSimple(KRIVETKA, KRIVETKA, Green, Red); TrailingSimple(KRIVETKA, Green, Red);//
// ProcessSimple(CSPLINE, CSPLINE, Green, Red); TrailingSimple(CSPLINE, Green, Red);//
// ProcessSimple(MACD, MACD, Black, Plum); TrailingSimple(MACD, Black, Plum);
// ProcessAvgLim(BLACKSYS, BLACKSYS+1, Green, Red); TrailingAvgLim(BLACKSYS+1, Green, Red); //
}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---