Бесплатное написание советников и индикаторов на MQL4 #1 - Страница 44
Страница 44 из 44 ПерваяПервая ... 34 40 41 42 43 44
Показано с 431 по 432 из 432

Тема: Бесплатное написание советников и индикаторов на MQL4 #1

  1. #431
    Уже не гость
    Регистрация
    17.12.2014
    Сообщений
    3
    Promo (¢)
    520
    Благодарности
    Получено: 0
    Отправлено: 2
    Цитата Сообщение от Valerius Посмотреть сообщение
    Извиняюсь, мой косяк. Исправил.
    Спасибо ! Отлично работает!

    Вы не можете благодарить!

  2. #432
    Теоретик Аватар для чувак
    Регистрация
    20.01.2015
    Адрес
    Ядрин,Чувашия
    Сообщений
    1,678
    Promo (¢)
    335
    Благодарности
    Получено: 1,172
    Отправлено: 1,624
    Цитата Сообщение от чувак Посмотреть сообщение
    Доброе утро! Обращаюсь еще раз.Нужен простой советник закрывающий конкретную сделку при касании (пересечении) цены скользящей средней (в настройках) Одноразовая операция.Сам в программировании "Дуб" .Но мне кажется это не сложно.
    Вот нашел в инете подобное.Автор artamir.Мне нужно просто закрыть сделку прикасании /пересечении EMA1000.
    Но есть только код://+------------------------------------------------------------------+
    //| eMAClosePos.mq4 |
    //| Copyright 2014, artamir |
    //| http:\\forexmd.ucoz.org |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2014, artamir"
    #property link "http:\\forexmd.ucoz.org"
    #property version "1.00"
    #property strict

    input int MA_per=21;
    input int MA_mode=MODE_EMA;
    input int MA_ap=PRICE_CLOSE;
    input int Delta=1;


    //+------------------------------------------------------------------+
    //| Expert initialization function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    //---

    //---
    return(INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    //| Expert deinitialization function |
    //+------------------------------------------------------------------+
    void OnDeinit(const int reason)
    {
    //---

    }
    //+------------------------------------------------------------------+
    //| Expert tick function |
    //+------------------------------------------------------------------+
    void OnTick()
    {
    //---
    double ma=iMA(Symbol(),0,MA_per,0,MA_mode,MA_ap,0);//значение скользящей средней на текущем тике.
    bool needClose=false;

    if(Bid>(ma-Delta*Point) && Bid<(ma+Delta*Point))needClose=true;

    if(needClose)ClosePositions();
    }
    //+------------------------------------------------------------------+

    void ClosePositions(){
    int t=OrdersTotal();
    for(int i=t;i>=0;i--){
    if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))conti nue;

    if(OrderSymbol()!=Symbol())continue;

    TR_CloseByTicket(OrderTicket());
    }
    }

    //{ //=== CLOSE ====================================

    bool TR_CloseByTicket(int ticket){
    /*
    >Ver : 0.0.0.8
    >Date : 2014.01.15
    >Hist:
    @0.0.0.8@2014.01.15@artamir [!] Добавлена проверка на время закрытия ордера.
    @0.0.6@2012.10.04@artamir []
    @0.0.5@2012.10.01@artamir []
    @0.0.4@2012.10.01@artamir [+] add checking on err 138
    @0.0.3@2012.10.01@artamir [+] add setExtraIsClosedByTicket
    @0.0.2@2012.10.01@artamir []
    @0.0.1@2012.09.14@artamir []
    >Desc:
    Закрытие ордера по тикету. Если ордер - рыночный, то закрытие происходит по рынку, если ордер - отложенный, то он удаляется
    */

    string fn="TR_CloseByTicket";
    //------------------------------------------------------
    if(!OrderSelect(ticket, SELECT_BY_TICKET)) return(true);

    if(OrderCloseTime()>0){
    return(true);
    }

    //------------------------------------------------------
    if(OrderType() != OP_BUY && OrderType() != OP_SELL){
    return(OrderDelete(ticket));
    }

    //------------------------------------------------------
    double price = 0.00;//MI_MarketCloseByCMD(OrderType());

    price = NormalizeDouble(price,Digits);
    //------------------------------------------------------
    double lot = OrderLots();

    //------------------------------------------------------
    int tryCount = 0;

    //------------------------------------------------------
    bool res = false;

    //------------------------------------------------------
    while(!res && tryCount < 5 && !IsTradeContextBusy()){

    //----------------------------------------------
    RefreshRates();

    if(OrderType() == OP_BUY){
    price = MarketInfo(OrderSymbol(), MODE_BID);
    }else{
    if(OrderType() == OP_SELL){
    price = MarketInfo(OrderSymbol(), MODE_ASK);
    }
    }

    //----------------------------------------------
    //price = libMI_getMarketClosePriceByCMD(OrderType());

    //----------------------------------------------
    price = NormalizeDouble(price,Digits);

    //--------------------------------------------------
    res = OrderClose(ticket, lot, price, 0, CLR_NONE);

    //--------------------------------------------------
    int err = GetLastError();

    //--------------------------------------------------
    if(err == 138){

    //----------------------------------------------
    //Sleep(11000);
    Print("X3");
    }

    //--------------------------------------------------
    tryCount++;
    }

    //------------------------------------------------------

    if(!res){
    Print(fn," ERR:"+GetLastError());
    }

    //------------------------------------------------------
    return(res);
    }

    void TR_CloseAll(int mn=-1){
    /**
    \version 0.0.0.1
    \date 2013.09.29
    \author Morochin <artamir> Artiom
    \details Закрывает все ордера. Возможна фильтрация по магику
    \internal
    >Hist:
    @0.0.0.1@2013.09.29@artamir [] TR_CloseAll
    >Rev:0
    */

    int t=OrdersTotal();
    for(int i=t;i>=0;i--){
    if(!OrderSelect(i,SELECT_BY_POS, MODE_TRADES)){continue;}
    if(mn>0){
    if(OrderMagicNumber() != mn){continue;}
    }

    TR_CloseByTicket(OrderTicket());
    }
    }

    //}

    Вы не можете благодарить!

Страница 44 из 44 ПерваяПервая ... 34 40 41 42 43 44

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •