Список форумов AmiSite.ru AmiSite.ru
Форум по Ами
 FAQ  •  Поиск  •  Пользователи  •  Группы   •  Регистрация  •  Профиль  •  Войти и проверить личные сообщения  •  Вход
 Помогите разобратся с роботом Следующая тема
Предыдущая тема
Начать новую тему  Ответить на тему
Автор Сообщение
IzBu



Зарегистрирован: 28.06.2016
Сообщения: 83

СообщениеДобавлено: Ср Июл 20, 2016 11:16 am Ответить с цитатой Вернуться к началу

Наверно таймфрейм надо ставить наименьший в системе и роботе 15 мин или 75 мин наивысший ?
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Июл 20, 2016 11:34 pm Ответить с цитатой Вернуться к началу

Подробно не смотрел. Но по быстрому 2 ошибки.
TimeFrame = 60*75; // таймфрейм в секундах.
Тут надо писать тот фрейм который будет установлен в настройках АА.
Фрейм установленный в настройках АА это тот фрейм который будет "видеть" робот.
Я так понял, что в настройках АА будет установлено 15 минут....

А зачем в роботе вот это?
if(Interval() == 15*60)
{
Buy1 = Buy1==1 AND Ref(Buy1, -1)==1 AND Ref(Buy1, -2)==0;
Sell1 = Sell1==1 AND Ref(Sell1, -1)==1 AND Ref(Sell1, -2)==0;
}
Эту дурацкую конструкцию я написал чтобы ты видел разные сигналы при переключении графика на разные фреймы. Робот не видит того графика на который смотришь ты и на него совсем не влияет переключение фреймов на графике.

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Ср Июл 20, 2016 11:38 pm Ответить с цитатой Вернуться к началу

А в принципе вроде должно работать. Только
TimeFrame = 60*75; измени.
Второе нафиг не нужно, но работать будет. Просто лишний код....

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
IzBu



Зарегистрирован: 28.06.2016
Сообщения: 83

СообщениеДобавлено: Чт Июл 21, 2016 10:25 am Ответить с цитатой Вернуться к началу

Чего то я вообще запутался...
Я думал это строка
Код:

if(Interval() == 15*60)
{
Buy1 = Buy1==1 AND Ref(Buy1, -1)==1 AND Ref(Buy1, -2)==0;
Sell1 = Sell1==1 AND Ref(Sell1, -1)==1 AND Ref(Sell1, -2)==0;
}

Вход на второй 15 мин свече...
если его выкинуть то получим
Код:

TimeFrameSet( 15*in5Minute );
Buyperiods=Optimize("Buyperiods",28, 1, 30,1);
Sellperiods=Optimize("Sellperiods", 5, 1, 30,1);

   SBuy= C>Ref(HHV(High,Buyperiods),-1);
   SSell= C<Ref(LLV(Low,Sellperiods),-1);
   SBuy = ExRem(SBuy, SSell);
   SSell = ExRem(SSell, SBuy);
TimeFrameRestore(); //
SBuy = TimeFrameExpand(SBuy, 15*in5Minute);
SSell = TimeFrameExpand(SSell, 15*in5Minute);

Buy1=Sbuy;
Sell1=SSell;

Short1 =  Sell1;
Cover1 =  Buy1;

Задача первоначальная стояла получить сигнал с высшего(75) таймрейма, а сделку открыть НА ВТОРОЙ СВЕЧЕ низсшего(15) таймфрема.
В этом коде нет ни слова об открытии на второй свече после получения сигнала.
И еще робот со стопом код выкладывал вчера открывает и закрывает сделку на свече открытия.

Лог робота
20.07.2016 20:59:52 Br8 Short заяка исполнена ответ сервера=22134300706 позиция на момент исполнения 0
20.07.2016 20:59:54 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134301233 позиция на момент исполнения -5
20.07.2016 20:59:55 Br8 Short заяка исполнена ответ сервера=22134301484 позиция на момент исполнения 0
20.07.2016 20:59:56 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134301966 позиция на момент исполнения -5
20.07.2016 20:59:57 Br8 Short заяка исполнена ответ сервера=22134302162 позиция на момент исполнения 0
20.07.2016 20:59:58 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134302214 позиция на момент исполнения -5
20.07.2016 21:00:00 Br8 Short заяка исполнена ответ сервера=22134302268 позиция на момент исполнения 0
20.07.2016 21:00:01 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134302419 позиция на момент исполнения -5
20.07.2016 21:00:02 Br8 Short заяка исполнена ответ сервера=22134302477 позиция на момент исполнения 0
20.07.2016 21:00:03 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134302888 позиция на момент исполнения -5
20.07.2016 21:00:05 Br8 Short заяка исполнена ответ сервера=22134303171 позиция на момент исполнения 0
20.07.2016 21:00:06 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134303229 позиция на момент исполнения -5
20.07.2016 21:00:07 Br8 Short заяка исполнена ответ сервера=22134303253 позиция на момент исполнения 0
20.07.2016 21:00:08 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134303413 позиция на момент исполнения -5
20.07.2016 21:00:10 Br8 Short заяка исполнена ответ сервера=22134303640 позиция на момент исполнения 0
20.07.2016 21:00:11 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134303940 позиция на момент исполнения -5
20.07.2016 21:00:12 Br8 Short заяка исполнена ответ сервера=22134304022 позиция на момент исполнения 0
20.07.2016 21:00:14 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134304203 позиция на момент исполнения -5
20.07.2016 21:59:43 Br8 Short заяка исполнена ответ сервера=22134769691 позиция на момент исполнения 0
20.07.2016 21:59:44 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134770184 позиция на момент исполнения -5
20.07.2016 21:59:46 Br8 Short заяка исполнена ответ сервера=22134770273 позиция на момент исполнения 0
20.07.2016 21:59:47 Br8 сработал стоп при шорте Cover заяка исполнена ответ сервера=22134770921 позиция на момент исполнения -5
20.07.2016 21:59:49 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 21:59:50 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 21:59:52 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 21:59:53 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 21:59:55 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 21:59:56 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 21:59:58 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:00 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:01 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:03 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:05 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:06 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:08 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:09 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:11 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:12 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:14 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:16 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:17 Br8 Short заяка НЕ исполнена ответ сервера=0
20.07.2016 22:00:21 Br8 Short заяка НЕ исполнена ответ сервера=0
Посмотреть профиль Отправить личное сообщение
IzBu



Зарегистрирован: 28.06.2016
Сообщения: 83

СообщениеДобавлено: Чт Июл 21, 2016 5:18 pm Ответить с цитатой Вернуться к началу

Со входом на следующей свече понял он есть в роботе. Этот вопрос отпадаетБ остальное актуально.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Чт Июл 21, 2016 9:08 pm Ответить с цитатой Вернуться к началу

Код:
if(Interval() == 15*60)
{
    Buy1 = Buy1==1 AND Ref(Buy1, -1)==1 AND Ref(Buy1, -2)==0;
    Sell1 = Sell1==1 AND Ref(Sell1, -1)==1 AND Ref(Sell1, -2)==0;
}

Тут не нужна только проверка фрейма, а то что в середине нужно
Код:
TimeFrameSet( 15*in5Minute );
Buyperiods=Optimize("Buyperiods",28, 1, 30,1);
Sellperiods=Optimize("Sellperiods", 5, 1, 30,1);

   SBuy= C>Ref(HHV(High,Buyperiods),-1);
   SSell= C<Ref(LLV(Low,Sellperiods),-1);
   SBuy = ExRem(SBuy, SSell);
   SSell = ExRem(SSell, SBuy);
TimeFrameRestore(); //
SBuy = TimeFrameExpand(SBuy, 15*in5Minute);
SSell = TimeFrameExpand(SSell, 15*in5Minute);

Buy1 = Buy1==1 AND Ref(Buy1, -1)==1 AND Ref(Buy1, -2)==0;
Sell1 = Sell1==1 AND Ref(Sell1, -1)==1 AND Ref(Sell1, -2)==0;

Buy1=Sbuy;
Sell1=SSell;

Short1 =  Sell1;
Cover1 =  Buy1;

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
IzBu



Зарегистрирован: 28.06.2016
Сообщения: 83

СообщениеДобавлено: Чт Июл 21, 2016 11:23 pm Ответить с цитатой Вернуться к началу

А робот со стопом проверте код и лог выше, почему он открывает и сразу закрывает сделку.
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Июл 22, 2016 8:06 am Ответить с цитатой Вернуться к началу

Лог вижу а робота не вижу. Если имеется ввиду робот в посте от 20.07.16 11:05 то лог точно не от этого робота. В том роботе лот по Br8 4, а в логе 5...

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
IzBu



Зарегистрирован: 28.06.2016
Сообщения: 83

СообщениеДобавлено: Пт Июл 22, 2016 2:39 pm Ответить с цитатой Вернуться к началу

Вот этот робот открывает и сразу закрывает позицию
Код:

Filter = 1;
SetBarsRequired(sbrAll, sbrAll);

TimeFrame      = 60*15;               // таймфрейм в секундах.
Account         = "NL0011100043";         // Номер счета
Client_Code      = "38000";               // Код Клиента
Quik         = "C:\\QUIK";            // путь к Квику

Tickers = "Br8,SBER";             // торгуемые символы через запятую без пробелов. Для контроля

ошибок. Так, как они называются в Ами
/////////////

if(Name() == "Br8") {            //Символ как он называется в Ами
   SecCode         = "BRQ6";           
   Class         = "SPBFUT";
   Lots            = 4;
   TickS         = 0.01;               // Минимальный шаг цены торгуемой бумаги
   Stop            = 1;                  // стоп в %
   profit         = 2;                  // профит в %
   Otstup         = 0.50;               // Заявка будет выставлена хуже текущей цены на Otstup рублей
}
else if(Name() == "SBER") {      //Символ как он называется в Ами
           SecCode         = "SBER03";         
   Class         = "EQBR";
   Lots            = 0;
   TickS         = 0.01;               // Минимальный шаг цены торгуемой бумаги
   Stop            = 2;                  // стоп в %
   profit         = 4;                  // профит в %
   Otstup         = 1;                  // Заявка будет выставлена хуже текущей цены на Otstup рублей
}

////////////////////////////////////

text = iz = sd = order = "";
color = coloriz = colorDefault;
price = 0;
str = Now(0) + "  " + Name();
pos = AS_READ_PARAM("Quik_Robot", Name(), "pos");

//////////////Система///////////////
TimeFrameSet( 15*in5Minute );
Buyperiods=Optimize("Buyperiods",28, 1, 30,1);
Sellperiods=Optimize("Sellperiods", 5, 1, 30,1);

   SBuy= C>Ref(HHV(High,Buyperiods),-1);
   SSell= C<Ref(LLV(Low,Sellperiods),-1);
   SBuy = ExRem(SBuy, SSell);
   SSell = ExRem(SSell, SBuy);
TimeFrameRestore(); //
SBuy = TimeFrameExpand(SBuy, 15*in5Minute);
SSell = TimeFrameExpand(SSell, 15*in5Minute);
Buy1=Sbuy;
Sell1=SSell;

   Buy1 = Buy1==1 AND Ref(Buy1, -1)==1 AND Ref(Buy1, -2)==0;
   Sell1 = Sell1==1 AND Ref(Sell1, -1)==1 AND Ref(Sell1, -2)==0;

Short1 =  Sell1;
Cover1 =  Buy1;

///////////Конец Системы////////////


/// стопы ///
if(pos > 0 AND C[BarCount-1] < AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 - Stop/100))
{
   Sell1 = 1;
   str = str + "  сработал стоп при лонге";
}
else if(pos < 0 AND C[BarCount-1] > AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 + Stop/100))
{
   Cover1 = 1;
   str = str + "  сработал стоп при шорте";
}
/// профит ///
if(pos > 0 AND C[BarCount-1] > AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 + profit/100))
{
   Sell1 = 1;
   str = str + "  сработал стоп при лонге";
}
else if(pos < 0 AND C[BarCount-1] > AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 - profit/100))
{
   Cover1 = 1;
   str = str + "  сработал стоп при шорте";
}

///////////// проверка наличия символа в списке для торговли ////////////////

k = 0;
Permit_Ticker = False;
do {
  Tick = StrExtract(Tickers, k);
  k++;
  if(Name() == Tick)
    Permit_Ticker = True;
} while(Tick != "");

///////////    Функции  ////////////

procedure orders(bs, pr, Lot)
{
   connection = 0;

   QC = AS_QUIK_CONNECT(Quik);

   if (QC == 1)
   {
      connection = 1;
      text = "Есть соединение с сервером";
      Color = colorGreen;
   }
   else if (QC == -1)
   {
      text = "нет соединения с квиком";
      Color = colorRed;   
   }
   else if (QC == -2)
   {
      text = "нет соединения с сервером";
      Color = colorRed;
   }
   else
   {
      text = "фигня какая то";
      Color = colorRed;
   }
 
   if(connection == 1)
   {
      order = AS_QUIK_SEND_SYNC_NEWORDER(   "123",            // OrderID - Любые цифры
                                                Account,
                                                Client_Code,
                                                "L",                  // Тип заявки M-рыночная, L-лимитированная
                                                Class,
                                                SecCode,
                                                bs,
                                                pr,
                                                Lot);
   }

   if(StrToNum(order) > 100)
   {
      iz = "исполнена";
      coloriz = colorGreen;
      str = str + "  заяка исполнена" + " ответ сервера=" + order;
      if(pos > 0 AND bs == "S")                // закрытие лонга
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", 0);
         AS_WRITE_PARAM("Quik_Robot", Name(), "price", 0);
      }
      else if(pos == 0 AND bs == "S")         // шорт
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", -1*Lot);
         AS_WRITE_PARAM("Quik_Robot", Name(), "price", Close[BarCount - 1]);
      }
      else if(pos < 0 AND bs == "B")          // закрытие шорта
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", 0);
         AS_WRITE_PARAM("Quik_Robot", Name(), "price", 0);
      }
      else if(pos == 0 AND bs == "B")       // лонг
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", Lot);
         AS_WRITE_PARAM("Quik_Robot", Name(), "price", Close[BarCount - 1]);
      }
      str = str + "  позиция на момент исполнения " + pos;
   }
   else {
      iz = "не исполнена";
      coloriz = colorRed;
      str = str + "  заяка НЕ исполнена" + " ответ сервера=" + order;
   }
}

////////// конец Функций //////////

if (TimeFrame == Interval() AND Permit_Ticker)
{
   if(Buy1[BarCount-1] AND pos == 0) {
      str = str + "  Buy";
      sd = "Buy";
      orders("B", round(C[BarCount-1]) + Otstup, Lots);
      AS_WRITE_FILE("log.quik", str);
   }
   if(Sell1[BarCount-1] AND pos > 0) {
      str = str + "  Sell";
      sd = "Sell";
      orders("S", round(C[BarCount-1]) - Otstup, abs(pos));
      AS_WRITE_FILE("log.quik", str);
   }
   if(Short1[BarCount-1] AND pos == 0) {
      str = str + "  Short";
      sd = "Short";
      orders("S", round(C[BarCount-1]) - Otstup, Lots);
      AS_WRITE_FILE("log.quik", str);
   }
   if(Cover1[BarCount-1] AND pos < 0) {
      str = str + "  Cover";
      sd = "Cover";
      orders("B", round(C[BarCount-1]) + Otstup, abs(pos));
      AS_WRITE_FILE("log.quik", str);
   }
}
else if(TimeFrame != Interval()) {
   PopupWindow( "Не соответствует временной интервал в настройках АА и в коде",
                     "ошибка", timeout = 5, left = -1, top = -1 );
}

SetOption( "NoDefaultColumns", 1 );
AddTextColumn(Name(), "Символ", 1.0, colorDefault, colorDefault, 60);
AddColumn( C[BarCount-1], "Последняя цена", 1.2, colorDefault, colorDefault, 100 );
AddColumn( AS_READ_PARAM("Quik_Robot", Name(), "pos"), "Позиция", 1.0, colorDefault,
   IIf(AS_READ_PARAM("Quik_Robot", Name(), "pos") > 0, colorGreen,
   IIf(AS_READ_PARAM("Quik_Robot", Name(), "pos") < 0, colorRed, colorDefault)), 60);
AddTextColumn(sd, "Сигнал", 1.0, colorDefault, colorDefault, 60);
AddTextColumn(text, "Соединение", 1.2, colorDefault, color, 170);
AddTextColumn(iz, "Исполнение заявки", 1.2, colorDefault, coloriz, 120 );
AddTextColumn(order, "Заявка", 1.2, colorDefault, IIf(StrToNum(order) > 100, colorGreen, colorRed), 90);
Посмотреть профиль Отправить личное сообщение
000
Site Admin


Зарегистрирован: 10.12.2007
Сообщения: 9106

СообщениеДобавлено: Пт Июл 22, 2016 2:55 pm Ответить с цитатой Вернуться к началу

Пробуй
Код:

Filter = 1;
SetBarsRequired(sbrAll, sbrAll);

TimeFrame      = 60*15;               // таймфрейм в секундах.
Account         = "NL0011100043";         // Номер счета
Client_Code      = "38000";               // Код Клиента
Quik         = "C:\\QUIK";            // путь к Квику

Tickers = "Br8,SBER";             // торгуемые символы через запятую без пробелов. Для контроля

ошибок. Так, как они называются в Ами
/////////////

if(Name() == "Br8") {            //Символ как он называется в Ами
   SecCode         = "BRQ6";           
   Class         = "SPBFUT";
   Lots            = 4;
   TickS         = 0.01;               // Минимальный шаг цены торгуемой бумаги
   Stop            = 1;                  // стоп в %
   profit         = 2;                  // профит в %
   Otstup         = 0.50;               // Заявка будет выставлена хуже текущей цены на Otstup рублей
}
else if(Name() == "SBER") {      //Символ как он называется в Ами
           SecCode         = "SBER03";         
   Class         = "EQBR";
   Lots            = 0;
   TickS         = 0.01;               // Минимальный шаг цены торгуемой бумаги
   Stop            = 2;                  // стоп в %
   profit         = 4;                  // профит в %
   Otstup         = 1;                  // Заявка будет выставлена хуже текущей цены на Otstup рублей
}

////////////////////////////////////

text = iz = sd = order = "";
color = coloriz = colorDefault;
price = 0;
str = Now(0) + "  " + Name();
pos = AS_READ_PARAM("Quik_Robot", Name(), "pos");

//////////////Система///////////////
TimeFrameSet( 15*in5Minute );
Buyperiods=Optimize("Buyperiods",28, 1, 30,1);
Sellperiods=Optimize("Sellperiods", 5, 1, 30,1);

   SBuy= C>Ref(HHV(High,Buyperiods),-1);
   SSell= C<Ref(LLV(Low,Sellperiods),-1);
   SBuy = ExRem(SBuy, SSell);
   SSell = ExRem(SSell, SBuy);
TimeFrameRestore(); //
SBuy = TimeFrameExpand(SBuy, 15*in5Minute);
SSell = TimeFrameExpand(SSell, 15*in5Minute);
Buy1=Sbuy;
Sell1=SSell;

   Buy1 = Buy1==1 AND Ref(Buy1, -1)==1 AND Ref(Buy1, -2)==0;
   Sell1 = Sell1==1 AND Ref(Sell1, -1)==1 AND Ref(Sell1, -2)==0;

Short1 =  Sell1;
Cover1 =  Buy1;

///////////Конец Системы////////////


/// стопы ///
if(pos > 0 AND C[BarCount-1] < AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 - Stop/100))
{
   Sell1 = 1;
   str = str + "  сработал стоп при лонге";
}
else if(pos < 0 AND C[BarCount-1] > AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 + Stop/100))
{
   Cover1 = 1;
   str = str + "  сработал стоп при шорте";
}
/// профит ///
if(pos > 0 AND C[BarCount-1] > AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 + profit/100))
{
   Sell1 = 1;
   str = str + "  сработал профит при лонге";
}
else if(pos < 0 AND C[BarCount-1] < AS_READ_PARAM("Quik_Robot", Name(), "price")*(1 - profit/100))
{
   Cover1 = 1;
   str = str + "  сработал профит при шорте";
}

///////////// проверка наличия символа в списке для торговли ////////////////

k = 0;
Permit_Ticker = False;
do {
  Tick = StrExtract(Tickers, k);
  k++;
  if(Name() == Tick)
    Permit_Ticker = True;
} while(Tick != "");

///////////    Функции  ////////////

procedure orders(bs, pr, Lot)
{
   connection = 0;

   QC = AS_QUIK_CONNECT(Quik);

   if (QC == 1)
   {
      connection = 1;
      text = "Есть соединение с сервером";
      Color = colorGreen;
   }
   else if (QC == -1)
   {
      text = "нет соединения с квиком";
      Color = colorRed;   
   }
   else if (QC == -2)
   {
      text = "нет соединения с сервером";
      Color = colorRed;
   }
   else
   {
      text = "фигня какая то";
      Color = colorRed;
   }
 
   if(connection == 1)
   {
      order = AS_QUIK_SEND_SYNC_NEWORDER(   "123",            // OrderID - Любые цифры
                                                Account,
                                                Client_Code,
                                                "L",                  // Тип заявки M-рыночная, L-лимитированная
                                                Class,
                                                SecCode,
                                                bs,
                                                pr,
                                                Lot);
   }

   if(StrToNum(order) > 100)
   {
      iz = "исполнена";
      coloriz = colorGreen;
      str = str + "  заяка исполнена" + " ответ сервера=" + order;
      if(pos > 0 AND bs == "S")                // закрытие лонга
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", 0);
         AS_WRITE_PARAM("Quik_Robot", Name(), "price", 0);
      }
      else if(pos == 0 AND bs == "S")         // шорт
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", -1*Lot);
         AS_WRITE_PARAM("Quik_Robot", Name(), "price", Close[BarCount - 1]);
      }
      else if(pos < 0 AND bs == "B")          // закрытие шорта
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", 0);
         AS_WRITE_PARAM("Quik_Robot", Name(), "price", 0);
      }
      else if(pos == 0 AND bs == "B")       // лонг
      {
         AS_WRITE_PARAM("Quik_Robot", Name(), "pos", Lot);
         AS_WRITE_PARAM("Quik_Robot", Name(), "price", Close[BarCount - 1]);
      }
      str = str + "  позиция на момент исполнения " + pos;
   }
   else {
      iz = "не исполнена";
      coloriz = colorRed;
      str = str + "  заяка НЕ исполнена" + " ответ сервера=" + order;
   }
}

////////// конец Функций //////////

if (TimeFrame == Interval() AND Permit_Ticker)
{
   if(Buy1[BarCount-1] AND pos == 0) {
      str = str + "  Buy";
      sd = "Buy";
      orders("B", round(C[BarCount-1]) + Otstup, Lots);
      AS_WRITE_FILE("log.quik", str);
   }
   if(Sell1[BarCount-1] AND pos > 0) {
      str = str + "  Sell";
      sd = "Sell";
      orders("S", round(C[BarCount-1]) - Otstup, abs(pos));
      AS_WRITE_FILE("log.quik", str);
   }
   if(Short1[BarCount-1] AND pos == 0) {
      str = str + "  Short";
      sd = "Short";
      orders("S", round(C[BarCount-1]) - Otstup, Lots);
      AS_WRITE_FILE("log.quik", str);
   }
   if(Cover1[BarCount-1] AND pos < 0) {
      str = str + "  Cover";
      sd = "Cover";
      orders("B", round(C[BarCount-1]) + Otstup, abs(pos));
      AS_WRITE_FILE("log.quik", str);
   }
}
else if(TimeFrame != Interval()) {
   PopupWindow( "Не соответствует временной интервал в настройках АА и в коде",
                     "ошибка", timeout = 5, left = -1, top = -1 );
}

SetOption( "NoDefaultColumns", 1 );
AddTextColumn(Name(), "Символ", 1.0, colorDefault, colorDefault, 60);
AddColumn( C[BarCount-1], "Последняя цена", 1.2, colorDefault, colorDefault, 100 );
AddColumn( AS_READ_PARAM("Quik_Robot", Name(), "pos"), "Позиция", 1.0, colorDefault,
   IIf(AS_READ_PARAM("Quik_Robot", Name(), "pos") > 0, colorGreen,
   IIf(AS_READ_PARAM("Quik_Robot", Name(), "pos") < 0, colorRed, colorDefault)), 60);
AddTextColumn(sd, "Сигнал", 1.0, colorDefault, colorDefault, 60);
AddTextColumn(text, "Соединение", 1.2, colorDefault, color, 170);
AddTextColumn(iz, "Исполнение заявки", 1.2, colorDefault, coloriz, 120 );
AddTextColumn(order, "Заявка", 1.2, colorDefault, IIf(StrToNum(order) > 100, colorGreen, colorRed), 90);

_________________
ceterum censeo carthaginem esse delendam
Удачи. Олег.
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:      
Начать новую тему  Ответить на тему


 Перейти:   



Следующая тема
Предыдущая тема
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Часовой пояс: GMT + 3

File Attachment © by Meik Sievertsen