///////// Установки /////////// TimeFrame = 60; // таймфрейм в секундах. Account = "L01-00000F00"; // ваш аккаунт на бирже Client = "49501"; // код клиента Lots = 1; // сколько лотов желаете торговать Otstup = 2; // в процентах. Заявка будет выставлена хуже текущей цены на столько процентов FileName = "C:/Program Files/Quick/trans.tri"; // слэши прямые!!! имя файла с транзакциями для квика dir = 0; ////////// Правила системы /////////////// Buy = Cross(C, MA(C, 10)); Sell = Cross(MA(C, 10), C); Short = Sell; Cover = Buy; ////////////////////////////////////////// Equity(1, 0); Buy = LastValue(Ref(Buy, -1)); Sell = LastValue(Ref(Sell, -1)); Short = LastValue(Ref(Short, -1)); Cover = LastValue(Ref(Cover, -1)); //////////// Формируем транзакцию.////////////// //////////////////////////////////////////////// //////// !!!!СЮДА РУКАМИ НЕ ЛАЗИТЬ!!!! ///////// //////////////////////////////////////////////// Classcode = GroupID(1); if(TickSize == 0) { PopupWindow( "Не задан размер тика значение TickSize", "ошибка", timeout = 5, left = -1, top = -1 ); } else { Otstup = round(LastValue(C)*Otstup/100/TickSize)*TickSize; form = (1 + 0.1 * abs(floor(IIf(log10(TickSize)>0, 0, log10(TickSize))))); } procedure savetrifile(stransid,sstr) { f = fopen(FileName, "r"); found = 0; if(f) { while(!feof(f)) { s = fgets(f); if(StrFind( s, stransid) > 0) found = 1; } fclose(f); } if (NOT found) { f = fopen(FileName, "a"); if(f) { fputs(sstr+"\n",f); fclose(f); } } } function makeandsave(sOper, sprice) { CCS=""; if (Client != "") CCS="CLIENT_CODE="+Client+";"; transid = "TRANS_ID=" +FullName()+LastValue(TimeNum())+dir+"; "; str = transid + "PRICE=" +NumToStr(sprice, format = form, separator=False)+"; " + "QUANTITY=" +NumToStr(Lots, format = 1.0, separator=False)+"; "+ "OPERATION=" +sOper+"; "+ "CLASSCODE=" +Classcode+"; "+ "ACTION=" +"NEW_ORDER; "+ "TYPE=" +"L; "+ "SECCODE=" +Name()+"; "+ "ACCOUNT=" +Account+"; "+ CCS; savetrifile(transid, str); } if (TimeFrame == Interval() & FullName() != "") { if(Buy) { price = Close[BarCount-1] + Otstup; dir = "1"; makeandsave("B", price); } if(Sell) { price = Close[BarCount-1] - Otstup; dir = "2"; makeandsave("S", price); } if(Short) { price = Close[BarCount-1] - Otstup; dir = "3"; makeandsave("S", price); } if(Cover) { price = Close[BarCount-1] + Otstup; dir = "4"; makeandsave("B", price); } } else if (TimeFrame != Interval()) PopupWindow( "Не соответствует временной интервал в настройках АА и в коде", "ошибка", timeout = 5, left = -1, top = -1 ); else PopupWindow( "Не задан двузначный номер в поле FullName", "ошибка", timeout = 15, left = -1, top = -1 ); //// mehanizator (c) 2004, http://www.russian-trader.ru //// 000 (c) 2008, http://www.amisite.ru