В данный момент он не открывает позиции при работающем ордере.
Хочется добавить условие, что после закрытия ордера, следующий ордер выставлялся только! противоположным.
Надеюсь разберетесь:
//+------------------------------------------------------------------+//| возвращает тип последней закрытой позиции.mq4 |//| Copyright 2015, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2015, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property strict//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
Alert("",GetNameOP(GetTypeLastClosePos()));
}
//+------------------------------------------------------------------+//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает тип последней закрытой позиции или -1 |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int GetTypeLastClosePos(string sy="", int mn=-1) {
datetime t=0;
int i, k=OrdersHistoryTotal(), r=-1;
if (sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if ((OrderSymbol()==sy || sy=="") && (mn<0 || OrderMagicNumber()==mn)) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (t<OrderCloseTime()) {
t=OrderCloseTime();
r=OrderType();
}
}
}
}
}
return(r);
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 01.09.2005 |//| Описание : Возвращает наименование торговой операции |//+----------------------------------------------------------------------------+//| Параметры: |//| op - идентификатор торговой операции |//+----------------------------------------------------------------------------+string GetNameOP(int op) {
switch (op) {
case OP_BUY : return("Buy");
case OP_SELL : return("Sell");
case OP_BUYLIMIT : return("Buy Limit");
case OP_SELLLIMIT: return("Sell Limit");
case OP_BUYSTOP : return("Buy Stop");
case OP_SELLSTOP : return("Sell Stop");
default : return("Unknown Operation");
}
}
Всем привет!!!
Помогите с правкой кода...
В данный момент он не открывает позиции при работающем ордере.
Хочется добавить условие, что после закрытия ордера, следующий ордер выставлялся только! противоположным.
Надеюсь разберетесь:
Отсюда https://forum.mql4.com/ru/38949/page4#434227
Что то не получается вставить ссылку.
Надеюсь разберетесь:
...При поиске решения, на Кима я в первую очередь наткнулся...))), но подружить его с тем кодом я так и не смог(((
Может есть вариант с модифицированием того кода, который я выложил?
Могу ли я изменить цвет индикатора в эксперте ?
Добрый день!
Могу ли я изменить цвет индикатора в эксперте ?
Эксперт получает цифру. Какая разница, зелёная эта цифра, или буромалиновая в крапинку?
Я имел в виду MА линия, что появляется при тестах в эксперте.
Не очень уверен, но кажется МА открывается тем цветом который был в последнее использование.
Попробуй поставить МА на любой график, выбрать цвет, а потом запустить советник. Что получится?
Я имел в виду MА линия, что появляется при тестах в эксперте.
Скажите, пож., что за сообщение? и Как устранить?:
2015.06.18 04:04:12.156 Memory handler: cannot allocate 33150 bytes of memory
Скажите, пож., что за сообщение? и Как устранить?:
2015.06.18 04:04:12.156 Memory handler: cannot allocate 33150 bytes of memory