smc3.mq4
Похожие материалы по тегам
Сообщите нам, если считаете, что материал размещён без разрешения.
Сообщить о материале
Обращение по товару «smc3.mq4» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
О программе
Советник для MetaTrader 4, предназначенный для автоматического открытия и закрытия торговых позиций на текущем символе. При инициализации создаются графические объекты-уровни, которые в процессе работы служат ориентирами для принятия торговых решений. Основная логика выполняется в обработчике start(): на каждом тике проверяются условия для открытия длинных и коротких позиций, а также закрытия существующих ордеров при достижении заданных ценовых уровней.
Советник поддерживает настройки объёма лота, фиксированного тейк-профита, начального стоп-лосса и трейлинг-стопа. Функция трейлинг-стопа и проверка истории по времени в текущей версии кода отключены жёсткими условиями. Перед открытием позиции проверяется свободный маржинальный баланс аккаунта, и при его недостаточности открытие не производится.
В качестве средства исполнения используются стандартные торговые функции MetaTrader 4. Советник работает исключительно с текущим символом и требует наличия минимум 100 баров на графике для корректной работы.
Настройки программы
| Настройка | Описание |
|---|---|
| TakeProfit | Тейк-профит — Фиксированный тейк-профит в пунктах (extern double, по умолчанию 50). |
| Lots | Размер лота — Размер лота для открытия позиции (extern double, по умолчанию 0.1). |
| InitialStop | Начальный стоп-лосс — Начальный стоп-лосс, задаётся в пунктах (extern double, по умолчанию 30). |
| TrailingStop | Трейлинг-стоп — Расстояние трейлинг-стопа в пунктах (extern double, по умолчанию 20). В текущей версии кода функция отключена. |
Поиск по коду файла
extern double TakeProfit = 50;
extern double Lots = 0.1;
extern double InitialStop = 30;
extern double TrailingStop = 20;
int init()
{
// код доступен только после оплаты
}
int start()
{
// код доступен только после оплаты
}
int cnt,total,ticket,MinDist,tmp;
double Spread;
if(Bars<100){
Print("bars less than 100");
return(0);
}
MinDist=MarketInfo(Symbol(),MODE_STOPLEVEL);
Spread=(Ask-Bid);
double OpenLongVal =ObjectGetValueByShift("OpenL",0);
double CloseLongVal =ObjectGetValueByShift("CloseL",0);
double TargetLongVal =ObjectGetValueByShift("TargetL",0);
double OpenShortVal =ObjectGetValueByShift("OpenS",0);
double CloseShortVal =ObjectGetValueByShift("CloseS",0);
double TargetShortVal=ObjectGetValueByShift("TargetS",0);
Print(Symbol()," ",OpenLongVal," ",CloseLongVal," ",OpenShortVal," ",CloseShortVal);
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(Close[1] < CloseLongVal)
{
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(Close[1] > CloseShortVal)
{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close SHORT position
}}
OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) //symbol check
{
if(Bid > TargetLongVal)
{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Yellow);
}}
OrderSelect(cnt,SELECT_BY_POS, MODE_Показано первые 50% кода (символов: 4707)
Открыть по тарифу
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
Разовая покупка файла
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.