Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не можешь разобраться в коде? Возможно, на эту тему уже написана статья!
Андрей
1095
Андрей 2006.04.03 16:43 
a_Buy
Открывает позицию по текущей цене (если хватает денюшки) и прикрывает ее Стоп-ордером (если хватает денюшки).
a_Sell
Открывает позицию по текущей цене (если хватает денюшки) и прикрывает ее Стоп-ордером (если хватает денюшки).
a_BuyStopMove
Передвигает все BuyStop на заданное расстояние от цены. Если ключ UpDown=true - то не только подтягивает к текущей цене, но и "отскакивает" от нее, соблюдая заданную дистанцию. У меня по умолчанию false. Использую только на подтягивание.
a_SellStopMove
Передвигает все SellStop на заданное расстояние от цены. Если ключ UpDown=true - то не только подтягивает к текущей цене, но и "отскакивает" от нее, соблюдая заданную дистанцию. У меня по умолчанию false. Использую только на подтягивание.
a_AllStopsMove
Передвигает все Стопы на заданное расстояние от цены. У меня по умолчанию UpDown=true, использую на "отскок".
a_BuyStopDEL
Делит все Бай-стопы
a_SellStopDEL
Делит все Селл-стопы

Если добавить Set2StopOrders.mq4 и DeleteAllOrders.mq4 (автор KimIV), по-моему будет полный набор.

Тексты скриптов здесь: http://accountant.pochta.ru/skrpts.htm
3172552
116
3172552 2006.04.04 23:55  
А я ещё ленивее. А нет у Вас SellClose и BuyClose?
Андрей
1095
Андрей 2006.04.05 07:33  
3172552:
А я ещё ленивее. А нет у Вас SellClose и BuyClose?
В каком порядке закрывать? Все Buy (Sell) сразу? Одну - ту, что ближе к рынку? С профитом или независимо?
Позже будет. Скорее всего по условиям:
1. Поза с профитом.
2. Расстояние до стопа <=5п.
В противном (очень) случае лучше или руками, или сцепка со стопом - фиксация убытка, и поиск выхода без лосей (почитайте по форумам про "Лок").
Неохота дилера (даже механического) трахать бесконечным "модифицировать" от советника. Да и как оказалось - нет необходимости.
3172552
116
3172552 2006.04.05 10:10  
В том то и вопрос. Пытаюсь шаблон свой написать. Проблема в том, что функции в мт возвращают только одно значание. Все мои советнике построены таким образом, что позы закрываются либо по времени, либо если цена отошла от цены открытия на N пунктов- как бы по виртуальным стопам. Для того, чтобы это сделать, нужно знать цену открытия ордера, и время его открытия, потом сравнивать с текущими. Ещё и меджик намбер этого ордера надо бы знать, чтоб несколько стратегий в одну запихнуть. А если функции открытия-закрытия писать в библиотеку, то эти значения надо передавать как глобальные переменные, а вот бывают ли глобальные массивы, пока не знаю.
Андрей
1095
Андрей 2006.04.05 11:09  
3172552:
В том то и вопрос. Пытаюсь шаблон свой написать. Проблема в том, что функции в мт возвращают только одно значание. Все мои советнике построены таким образом, что позы закрываются либо по времени, либо если цена отошла от цены открытия на N пунктов- как бы по виртуальным стопам. Для того, чтобы это сделать, нужно знать цену открытия ордера, и время его открытия, потом сравнивать с текущими. Ещё и меджик намбер этого ордера надо бы знать, чтоб несколько стратегий в одну запихнуть. А если функции открытия-закрытия писать в библиотеку, то эти значения надо передавать как глобальные переменные, а вот бывают ли глобальные массивы, пока не знаю.
Что-то вроде, проверте, если есть желание
{
bool result;
double price,priceClose;
int i,total;
total=OrdersTotal(); // К-во всех открытых ордеров (поз, стопов и лимиты)
if(total>0) // Если они есть
{
for(int i=0; i<total; i++) // Перебрать все открытые ордера
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) // Если удалось выбрать очередной ордер из списка
{
if(OrderType()==OP_BUY) // Если это поза BUY
{
price=OrderOpenPrice(); // По какой цене был открыт
//---- Чё хочу, то ворочу. Если закрыть, то:
priceClose=Bid; //if(OrderType()==OP_SELL) priceClose=Ask; так в проге для позы SELL
result=OrderClose(OrderTicket(),OrderLots(),priceClose,3,CLR_NONE);
if(result!=TRUE) // Если закрыть не удалось
{
error=GetLastError();
Print("LastError = ",error);
}
}
}
}
}
}
3172552
116
3172552 2006.04.06 22:58  
merci.Мне нравится. Я просто хотел все стандартные функции вынести из тела советника в библиотеки. А в теле только диктовать условия на открытие-закрытие. Для этого мне нужны цены открытия ордеров. А если вставлять в тело ещё этот цикл- то лучше вообще все функции прописывать в теле- в них после открытия писать типа Sold(Bought)Price[MagicNumber]=Bid(Ask), - всё-таки циклом меньше... Но не так красиво. Или глобальными передавать, но не уверен, что массивы можно. Пока в тело торговые функции каждый раз копирую.
Андрей
1095
Андрей 2006.04.07 08:06  
А я набор скриптов "набираю", чтоб советника не делать. Сначала вынес на "щелчок" все, что должен был бы делать МТС, ручками с'имитировал, посмотрел - получается/нет, может и советника писать не надо? По поводу библиотек, стратегий, советников и пр..... зайдите на сайт KimIV, много чего найдете.
3172552
116
3172552 2006.04.07 22:54  
Спасибо, был там много раз.
VITEK333
3
VITEK333 2013.05.08 13:43  
Всем привет, наверное не по теме пишу, помогите пожалуйста, нужен скрипт +FindVL, всю сеть перерыл, ничего не нашел, может есть у кого нибудь,. Заранее благодарен.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий