Steve Cartwright Trader Camel CCI MACD
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc trader camel cci macd.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Данный продукт представляет собой торгового советника для платформы MetaTrader 4, написанный на языке MQL4. Советник использует комбинацию технических индикаторов — скользящую среднюю SMA(3), экспоненциальные скользящие EMA(34) для определения уровня Camel, MACD(12,26,9) и CCI(20) — для принятия решений о открытии и закрытии позиций.
Советник открывает длинные позиции при условии, что CCI превышает 140, MACD main больше нуля и цена закрытия предыдущего бара выше EMA Camel High. Закрытие длинных позиций происходит при пересечении MACD main ниже MACD signal. Логика открытия коротких позиций в текущей версии отключена. Также в коде присутствуют блоки трейлинг-стопа и проверки истории, но они деактивированы условными операторами.
В качестве входных параметров задаются объём позиции, уровни фиксации прибыли и стоп-лосса, а также параметр трейлинг-стопа. Перед открытием ордера проверяется свободный маркет и количество открытых позиций на текущем символе. Советник работает только в рамках одного символа и не допускает одновременного наличия нескольких ордеров на один инструмент.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Уровень фиксации прибыли, задаваемый в пунктах; при значении менее 10 советник выводит предупреждение и не выполняет торговые операции. |
| Lots | Размер лота (объём позиции), используемый при открытии ордеров через OrderSend. |
| InitialStop | Начальный уровень стоп-лосса, объявленный как внешний параметр, но не используемый при отправке ордеров в текущей версии кода. |
| TrailingStop | Уровень трейлинг-стопа в пунктах; логика перемещения стоп-лосса по тренду в коде отключена условным оператором. |
Поиск по коду файла
extern double TakeProfit = 50;
extern double Lots = 1;
extern double InitialStop = 10;
extern double TrailingStop = 10;
int cnt,total,ticket,MinDist;
int SigPos;
double MACDSP1, MACDSP2;
double MACDHP1, MACDHP2;
double CCIP1;
double MASP1, MASP2;
double CAMELHIGHP1, CAMELHIGHP2, CAMELLOWP1, CAMELLOWP2;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int Flag;
double Spread;
double ATR;
double StopMA;
int cnt, tmp;
double SetupHigh, SetupLow;
if(Bars<100){
Print("bars less than 100");
return(0);
}
if(TakeProfit<10){
Print("TakeProfit less than 10");
return(0); // check TakeProfit
}
MASP1=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,1);
MASP2=iMA(NULL,0,3,0,MODE_SMA,PRICE_CLOSE,2);
CAMELHIGHP1=iMA(NULL,0,34,0,MODE_EMA,PRICE_HIGH,1);
CAMELLOWP1=iMA(NULL,0,34,0,MODE_EMA,PRICE_LOW,1);
MACDSP1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
MACDSP2=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,2);
MACDHP1=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
MACDHP2=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
CCIP1=iCCI(NULL,0,20,PRICE_CLOSE,1);
StopMA=iMA(NULL,0,24,0,MODE_SMA,PRICE_CLOSE,1);
MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
Spread=(Ask-Bid);
if(0==1)
{
total=OrdersTotal();
if (total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
if(OrderStopLoss() < OrderOpenPrice())
{
if (OrderStopLoss() < Bid -(Point*(MinDist*2)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid -(Point*(2*MinDist)),OrderTakeProfit(),0,Lime);
}}}
}
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL && OrderSymbol()==Symbol())
{
if(OrderStopLoss() > OrderOpenPrice())
{
if (OrderStopLoss() > Ask + (Point*(MinDist*2)))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(Point*(MinDist*2)),OrderTakeProfit(),0,Lime);
}}}
}}
total=OrdersTotal();
if(total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol())
{
if(MACDHP1 < MACDSP1)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close LONG position
}}
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) // check for symbol
{
if(MACDHP1 > MACDSP1)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close SHORT position
}}
} // for loop return
} // close 1stПоказано первые 50% кода (символов: 4215)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.