Ответ
 
Опции темы
Старый 25.03.2012, 06:33   #121 (permalink)
Прохожий
 
Аватар для liana 123
 
Регистрация: 25.03.2012
Сообщений: 1
Репутация: 1
liana 123
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 0

По умолчанию Ордер не открывается. В чем ошибка?


Здравствуйте,
Посмотрите пожалуйста, в чем ошибка - ордер не открывается. Мне нужно проверить, что нет отложеных и открытых ордеров и только тогда открыть ордера.
Я отталкивалась от этого примера.
http://book.mql4.com/ru/samples/expert

string Symb;
int Total, Ticket, Lts;
int start()

{
Symb=Symbol();
Total=0;
for(int i=1; i<=OrdersTotal(); i++)
{
if (OrderSelect(i-1,SELECT_BY_POS)==true)
{
if (OrderSymbol()!=Symb)continue;
if (OrderType()>1)
{
return;
}
Total++;
if (Total>1)
{
return;
}
}
else
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,3,0,0,"",567 ,0,Red);
Ticket=OrderSend(Symb,OP_BUYSTOP,Lts,Ask+10*Point, 3,0,0,"",567,0,Green);

}
return;
}
liana 123 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 25.03.2012, 11:47   #122 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от liana 123 Посмотреть сообщение
Здравствуйте,
Посмотрите пожалуйста, в чем ошибка - ордер не открывается. Мне нужно проверить, что нет отложеных и открытых ордеров и только тогда открыть ордера.
Я отталкивалась от этого примера.
_http://book.mql4.com/ru/samples/expert

string Symb;
int Total, Ticket, Lts;
int start()

{
Symb=Symbol();
Total=0;
for(int i=1; i<=OrdersTotal(); i++)
{
if (OrderSelect(i-1,SELECT_BY_POS)==true)
{
if (OrderSymbol()!=Symb)continue;
if (OrderType()>1)
{
return;
}
Total++;
if (Total>1)
{
return;
}
}
else
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,3,0,0,"",567 ,0,Red);
Ticket=OrderSend(Symb,OP_BUYSTOP,Lts,Ask+10*Point, 3,0,0,"",567,0,Green);

}
return;
}
Попробуй так:
Код:
int start() 
{   
//Объявили переменную
int Ticket;
//Объявили и назначили символ
string Symb=Symbol();
//Объявили и назначили количество ордеров
int Total=OrdersTotal();
//Цикл перебора ордеров
for(int i=0; i<Total; i++)
    {      
    //Выбор ордера
    if (OrderSelect(i,SELECT_BY_POS)==true)
       {
       Если ордер чужого символа пропускаем
       if (OrderSymbol()!=Symb)continue;
       //Если есть ордер, открытый или отложенный выход
       return(0);
       }
    }
//Если добрались до сюда значит нет ордеров. Открываем.
Ticket=OrderSend(Symb,OP_SELL,Lts,Bid,3,0,0,"",567,0,Red); 
if(Ticket<0)Print("Ордер не открыт, ошибка ",GetLastError);
Ticket=OrderSend(Symb,OP_BUYSTOP,Lts,Ask+10*Point,3,0,0,"",567,0,Green);
if(Ticket<0)Print("Ордер не установлен, ошибка ",GetLastError);
}
А если не будет открываться, можно посмотреть ошибку в журнале и понять почему.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось chocolate; 26.03.2012 в 05:39.
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 28.03.2012, 22:17   #123 (permalink)
Активный участник
 
Аватар для real
 
Регистрация: 25.08.2009
Сообщений: 34
Репутация: 2
real
Сказал(а) спасибо: 19
Поблагодарили 3 раз(а) в 3 сообщениях
Поинты: 2
Уважаемые программисты!

Помогите с кодом. Что нужно вставить, чтобы советник работал только на демо-счетах?

Заранее благодарен.
real вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 29.03.2012, 02:40   #124 (permalink)
Активный участник
 
Аватар для Nata_FX
 
Регистрация: 12.10.2011
Сообщений: 50
Репутация: 36
Nata_FX
Сказал(а) спасибо: 10
Поблагодарили 35 раз(а) в 23 сообщениях
Поинты: 4
Функцией IsDemo
PHP код:
 if(IsDemo()) Print("Я работаю на демонстрационном счете");
  else Print(
"Я работаю на реальном счете"); 
Nata_FX на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 02.04.2012, 12:24   #125 (permalink)
Местный знаток
 
Аватар для vetallic
 
Регистрация: 31.08.2010
Сообщений: 352
Репутация: 511
vetallic - vetallic - vetallic - vetallic - vetallic - vetallic -
Сказал(а) спасибо: 87
Поблагодарили 509 раз(а) в 104 сообщениях
Поинты: 96
Хелп, запарился с проблемой очистки...

- каждый тик проверяется парамерт и пишется состояние, если другой то пишется новый

Прикол в том что прога не стирает старую надпись а пишет новую поверх старой, все проходи только после переключения таймов...

Скрытый текст

int init()
{
ObjectsDeleteAll();
IndicatorShortName("BS");
IndicatorDigits(5);
IndicatorBuffers(85);

SetIndexBuffer(0, Buffer310);

ObjCount += 1;
TextObj310 = "IChart_" + ObjCount;
ObjectCreate(TextObj310, OBJ_LABEL, 0, 0, 0);
ObjectSet(TextObj310, OBJPROP_CORNER, 0);
ObjectSet(TextObj310, OBJPROP_XDISTANCE, 1);
ObjectSet(TextObj310, OBJPROP_YDISTANCE, 80);

ObjCount += 1;
TextObj311 = "IChart_" + ObjCount;
ObjectCreate(TextObj311, OBJ_LABEL, 0, 0, 0);
ObjectSet(TextObj311, OBJPROP_CORNER, 0);
ObjectSet(TextObj311, OBJPROP_XDISTANCE, 1);
ObjectSet(TextObj311, OBJPROP_YDISTANCE, 80);

....

int deinit()
{
ObjectsDeleteAll();
return(0);
}

START...

[свернуть]
vetallic вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 02.04.2012, 13:55   #126 (permalink)
Активный участник
 
Аватар для hitkill
 
Регистрация: 17.01.2012
Сообщений: 50
Репутация: 67
hitkill
Сказал(а) спасибо: 46
Поблагодарили 66 раз(а) в 16 сообщениях
Поинты: 13
как описать функцию if с условием:
если предыдущий ордер в истории сэлл то открыть бай, если бай то открыть сэлл?
заранее спасибо!
hitkill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 02.04.2012, 14:34   #127 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от hitkill Посмотреть сообщение
как описать функцию if с условием:
если предыдущий ордер в истории сэлл то открыть бай, если бай то открыть сэлл?
заранее спасибо!
Если последний ордер в истории известен, то узнать его тип не проблема.
Например если тип исторического ордера в переменной LastHistoryOrderType, то:
if(LastHistoryOrderType==OP_BUY)
{
открыть sell
}
и аналогично наоборот

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 02.04.2012, 14:43   #128 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от vetallic Посмотреть сообщение
Хелп, запарился с проблемой очистки...

- каждый тик проверяется парамерт и пишется состояние, если другой то пишется новый

Прикол в том что прога не стирает старую надпись а пишет новую поверх старой, все проходи только после переключения таймов...

Скрытый текст

int init()
{
ObjectsDeleteAll();
IndicatorShortName("BS");
IndicatorDigits(5);
IndicatorBuffers(85);

SetIndexBuffer(0, Buffer310);

ObjCount += 1;
TextObj310 = "IChart_" + ObjCount;
ObjectCreate(TextObj310, OBJ_LABEL, 0, 0, 0);
ObjectSet(TextObj310, OBJPROP_CORNER, 0);
ObjectSet(TextObj310, OBJPROP_XDISTANCE, 1);
ObjectSet(TextObj310, OBJPROP_YDISTANCE, 80);

ObjCount += 1;
TextObj311 = "IChart_" + ObjCount;
ObjectCreate(TextObj311, OBJ_LABEL, 0, 0, 0);
ObjectSet(TextObj311, OBJPROP_CORNER, 0);
ObjectSet(TextObj311, OBJPROP_XDISTANCE, 1);
ObjectSet(TextObj311, OBJPROP_YDISTANCE, 80);

....

int deinit()
{
ObjectsDeleteAll();
return(0);
}

START...

[свернуть]
С объектами в init() могут быть проблемы. Дело в том что пока индюк не запущен ему не известно его окно.
Попробуй жёстко задать номер окна в удалялке ордеров. Может поможет.
А можно всю эту лабоду с объектами перенести в start().
Например
bool ini;
int init()
{
ini=true;
return(0);
}

int start()
{
if(ini)
{
лабуда с объектами
}
ini=false;
далее остальной код индюка

return(0);
}

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (07.04.2012), vetallic (02.04.2012)
Старый 03.04.2012, 13:05   #129 (permalink)
Местный знаток
 
Аватар для vetallic
 
Регистрация: 31.08.2010
Сообщений: 352
Репутация: 511
vetallic - vetallic - vetallic - vetallic - vetallic - vetallic -
Сказал(а) спасибо: 87
Поблагодарили 509 раз(а) в 104 сообщениях
Поинты: 96
Сообщение от Ugar Посмотреть сообщение
Попробуй жёстко задать номер окна в удалялке ордеров. Может поможет.
Всмысле?
vetallic вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 03.04.2012, 17:46   #130 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от vetallic Посмотреть сообщение
Всмысле?
Ну объекты же в 0 окно кидаешь, так и задай 0 окно.
ObjectsDeleteAll(0);
За одно можно и тип объектов задать.
Цитата:
int ObjectsDeleteAll( int window=EMPTY, int type=EMPTY)Удаление всех объектов с указанным типом и в указанном подокне графика. Функция возвращает число удаленных объектов. Для получения дополнительной информации об ошибке необходимо вызвать функцию функцию GetLastError().
Замечания: нумерация подокон графика (если на графике есть подокна с индикаторами) начинается с 1. Главное окно графика есть всегда и имеет индекс 0. Если индекс окна отсутствует или имеет значение -1, то объекты удаляются со всего графика.
Если значение параметра type равно -1 или этот параметр отсутствует, то удаляются все объекты из указанного подокна. Параметры:
window - Необязательный параметр. Индекс окна, на котором будут удалены объекты. Должен быть большим или равным -1 (EMPTY, значение по умолчанию) и меньшим, чем WindowsTotal(). type - Необязательный параметр. Тип объекта для удаления. Это может быть любое из значений списка идентификаторов типов объектов или EMPTY (-1) для удаления всех объектов. Пример:
ObjectsDeleteAll(2, OBJ_HLINE); // удаляются все горизонтальные линии из 2-го подокна.
ObjectsDeleteAll(2); // удаляются все объекты из 2-го подокна.
ObjectsDeleteAll(); // удаляются все объекты с графика.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (07.04.2012), vetallic (03.04.2012)
Старый 04.04.2012, 08:09   #131 (permalink)
Интересующийся
 
Аватар для Artyomfm
 
Регистрация: 15.05.2011
Сообщений: 13
Репутация: 1
Artyomfm
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Поинты: 0

По умолчанию Kак с помощью winapi запретить изменение счета, тоест как советнику узнат что юзер изменил счет


int deinit()
{
switch(UninitializeReason())
{
case REASON_ACCOUNT:
///....
break;
}
}
как это ргеализироват в winapi
Artyomfm вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.04.2012, 12:36   #132 (permalink)
Местный знаток
 
Аватар для vetallic
 
Регистрация: 31.08.2010
Сообщений: 352
Репутация: 511
vetallic - vetallic - vetallic - vetallic - vetallic - vetallic -
Сказал(а) спасибо: 87
Поблагодарили 509 раз(а) в 104 сообщениях
Поинты: 96
Ugar
не выходит

и прописывал окна и тип объекта... мож с самого начала лажанулся гдет?

Скрытый текст


// local variables
int ObjCount = 0;
int current = 0;

string TextObj93 = "";
double Buffer93[];
string TextObj85 = "";
double Buffer85[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
ObjectsDeleteAll(0, OBJ_LABEL);
ObjectsDeleteAll(TextObj93, OBJ_LABEL);
ObjectsDeleteAll(TextObj85, OBJ_LABEL);
IndicatorDigits(5);
IndicatorBuffers(12);

SetIndexBuffer(0, Buffer93);

ObjCount += 1;
TextObj93 = "IChart_" + ObjCount;
ObjectCreate(TextObj93, OBJ_LABEL, 0, 0, 0);
ObjectSet(TextObj93, OBJPROP_CORNER, 0);
ObjectSet(TextObj93, OBJPROP_XDISTANCE, 1);
ObjectSet(TextObj93, OBJPROP_YDISTANCE, 20);

SetIndexBuffer(1, Buffer85);

ObjCount += 1;
TextObj85 = "IChart_" + ObjCount;
ObjectCreate(TextObj85, OBJ_LABEL, 0, 0, 0);
ObjectSet(TextObj85, OBJPROP_CORNER, 0);
ObjectSet(TextObj85, OBJPROP_XDISTANCE, 1);
ObjectSet(TextObj85, OBJPROP_YDISTANCE, 20);


return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll();

return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator start function |
//+------------------------------------------------------------------+
int start()

...

[свернуть]

Последний раз редактировалось chocolate; 05.04.2012 в 13:05.
vetallic вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.04.2012, 13:33   #133 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от vetallic Посмотреть сообщение
Ugar
не выходит

и прописывал окна и тип объекта... мож с самого начала лажанулся гдет?

Скрытый текст


// local variables
int ObjCount = 0;
int current = 0;

string TextObj93 = "";
double Buffer93[];
string TextObj85 = "";
double Buffer85[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
ObjectsDeleteAll(0, OBJ_LABEL);
ObjectsDeleteAll(TextObj93, OBJ_LABEL);
ObjectsDeleteAll(TextObj85, OBJ_LABEL);
IndicatorDigits(5);
IndicatorBuffers(12);

SetIndexBuffer(0, Buffer93);

ObjCount += 1;
TextObj93 = "IChart_" + ObjCount;
ObjectCreate(TextObj93, OBJ_LABEL, 0, 0, 0);
ObjectSet(TextObj93, OBJPROP_CORNER, 0);
ObjectSet(TextObj93, OBJPROP_XDISTANCE, 1);
ObjectSet(TextObj93, OBJPROP_YDISTANCE, 20);

SetIndexBuffer(1, Buffer85);

ObjCount += 1;
TextObj85 = "IChart_" + ObjCount;
ObjectCreate(TextObj85, OBJ_LABEL, 0, 0, 0);
ObjectSet(TextObj85, OBJPROP_CORNER, 0);
ObjectSet(TextObj85, OBJPROP_XDISTANCE, 1);
ObjectSet(TextObj85, OBJPROP_YDISTANCE, 20);


return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
ObjectsDeleteAll();

return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator start function |
//+------------------------------------------------------------------+
int start()

...

[свернуть]
Попробуй так
Код:
int init()
{
Print("Объектов до удаления =", ObjectsTotal());
    ObjectsDeleteAll();  
Print("Объектов после удаления =", ObjectsTotal());

    IndicatorDigits(5);
    IndicatorBuffers(12);
...
Может яснее станет. Объекты удаляются нормально.
Только вот дальше не понятно.
Зачем вешаются 2 объекта на одни координаты?
Почему не видно где задан текст этих лейблов?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!

Последний раз редактировалось chocolate; 05.04.2012 в 13:06.
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (07.04.2012)
Старый 04.04.2012, 13:40   #134 (permalink)
Местный знаток
 
Аватар для vetallic
 
Регистрация: 31.08.2010
Сообщений: 352
Репутация: 511
vetallic - vetallic - vetallic - vetallic - vetallic - vetallic -
Сказал(а) спасибо: 87
Поблагодарили 509 раз(а) в 104 сообщениях
Поинты: 96
на одни координаты у меня 12 объектов, просто при смене тренда информация меняется...

Скрытый текст

void TechnicalAnalysis2x87()
{
if ((iMA ....
{
ChartText93();

}
}

void ChartText93()
{
Buffer93[current]= 0;
ObjectSetText(TextObj93, "PRINT DATA1" + DoubleToStr(NormalizeDouble(Buffer93[current], 1), Digits), 10, "Arial", Red);

}
[свернуть]
vetallic вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 04.04.2012, 15:38   #135 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от vetallic Посмотреть сообщение
на одни координаты у меня 12 объектов, просто при смене тренда информация меняется...

Скрытый текст

void TechnicalAnalysis2x87()
{
if ((iMA ....
{
ChartText93();

}
}

void ChartText93()
{
Buffer93[current]= 0;
ObjectSetText(TextObj93, "PRINT DATA1" + DoubleToStr(NormalizeDouble(Buffer93[current], 1), Digits), 10, "Arial", Red);

}
[свернуть]
В общем проблема не в том что объекты не удаляются. Они удаляются как положено. Проблема где то в налепленных объектах на одну координату.
Обычно, на одной координате, принято вешать один объект.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 04.04.2012, 17:34   #136 (permalink)
Местный знаток
 
Аватар для vetallic
 
Регистрация: 31.08.2010
Сообщений: 352
Репутация: 511
vetallic - vetallic - vetallic - vetallic - vetallic - vetallic -
Сказал(а) спасибо: 87
Поблагодарили 509 раз(а) в 104 сообщениях
Поинты: 96
Ugar

но ведь в других индюках такой же принцип действий, на одной координате по пару текстов...
вот и ломаю голову
vetallic вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 06.04.2012, 12:02   #137 (permalink)
Активный участник
 
Аватар для hitkill
 
Регистрация: 17.01.2012
Сообщений: 50
Репутация: 67
hitkill
Сказал(а) спасибо: 46
Поблагодарили 66 раз(а) в 16 сообщениях
Поинты: 13
помогите пожалуйста...где ошибка?)



Скрытый текст





int start()
{
//----
if (OrdersTotal()>0)
{
int ticket;
int ordertype;
double profit;
profit=OrderProfit();
ordertype=OrderType();
ticket=OrderTicket();
if (ordertype==OP_BUY && profit>12 * MarketInfo(Symbol(),MODE_POINT))
{
OrderSelect(ticket, SELECT_BY_TICKET);
OrderModify(ticket,OrderOpenPrice(), OrderOpenPrice() + 10 * MarketInfo(Symbol(),MODE_POINT),0,0,Blue);
}
if (ordertype==OP_SELL && profit>12 * MarketInfo(Symbol(),MODE_POINT))
{
OrderSelect(ticket, SELECT_BY_TICKET);
OrderModify(ticket,OrderOpenPrice(), OrderOpenPrice() - 10 * MarketInfo(Symbol(),MODE_POINT),0,0,Blue);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+

[свернуть]
hitkill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 06.04.2012, 12:17   #138 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от hitkill Посмотреть сообщение
помогите пожалуйста...где ошибка?)



Скрытый текст





int start()
{
//----
if (OrdersTotal()>0)
{
int ticket;
int ordertype;
double profit;
profit=OrderProfit();
ordertype=OrderType();
ticket=OrderTicket();

if (ordertype==OP_BUY && profit>12 * MarketInfo(Symbol(),MODE_POINT))
{
OrderSelect(ticket, SELECT_BY_TICKET);
OrderModify(ticket,OrderOpenPrice(), OrderOpenPrice() + 10 * MarketInfo(Symbol(),MODE_POINT),0,0,Blue);
}
if (ordertype==OP_SELL && profit>12 * MarketInfo(Symbol(),MODE_POINT))
{
OrderSelect(ticket, SELECT_BY_TICKET);
OrderModify(ticket,OrderOpenPrice(), OrderOpenPrice() - 10 * MarketInfo(Symbol(),MODE_POINT),0,0,Blue);
}
}
//----
return(0);
}
//+------------------------------------------------------------------+

[свернуть]
Откуда программа может узнать параметры какого ордера присваивать переменным. А дальше, естественно, ничего работать не будет, так как код использует эти переменные, а их значения не верны.
Это будет работать если предварительно выбрать ордер, тем самым указать программе о каком ордере идёт речь.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
hitkill (06.04.2012)
Старый 06.04.2012, 16:58   #139 (permalink)
Активный участник
 
Аватар для vadim2490
 
Регистрация: 08.07.2011
Сообщений: 232
Репутация: 126
vadim2490 vadim2490
Сказал(а) спасибо: 424
Поблагодарили 125 раз(а) в 56 сообщениях
Поинты: 6
Здрасвуите! Очень хочу понять как по этим строкам сова генерирует ключ. Посмотрите плс кто понимает.

int li_24;
if (Key == "пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ" || Key == "") {
gi_380 = FALSE;
Print("пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅп їЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ");
if (ObjectFind(gs_key_384) == -1) ObjectCreate(gs_key_384, OBJ_LABEL, 0, 0, 0);
ObjectSet(gs_key_384, OBJPROP_CORNER, 1);
ObjectSet(gs_key_384, OBJPROP_XDISTANCE, 5);
ObjectSet(gs_key_384, OBJPROP_YDISTANCE, 15);
ObjectSetText(gs_key_384, "пїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅп їЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅ!", 10, "Tahoma", Red);
} else {
li_24 = StrToInteger(StringSubstr(Key, 0, StringLen(Key) - 2)) / gi_396 + 57;
gi_392 = StrToInteger(StringSubstr(Key, StringLen(Key) - 2, 2)) / StrToInteger(StringSubstr(Key, 0, 1));
if (AccountNumber() == li_24 || IsDemo() == TRUE || IsOptimization() == TRUE || IsTesting() == TRUE) {
gi_380 = TRUE;
Print("пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ!");
gs_key_384 = "label";
if (ObjectFind(gs_key_384) == -1) ObjectCreate(gs_key_384, OBJ_LABEL, 0, 0, 0);
ObjectSet(gs_key_384, OBJPROP_CORNER, 1);
ObjectSet(gs_key_384, OBJPROP_XDISTANCE, 5);
ObjectSet(gs_key_384, OBJPROP_YDISTANCE, 15);
ObjectSetText(gs_key_384, "пїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ!", 10, "Tahoma", Lime);
MaxLots = 130.0 * Lots;
vadim2490 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 06.04.2012, 17:50   #140 (permalink)
Элитный участник
 
Аватар для Ugar
 
Регистрация: 13.03.2009
Сообщений: 2,252
Репутация: 1963
Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar Ugar
Сказал(а) спасибо: 348
Поблагодарили 1,892 раз(а) в 1,069 сообщениях
Поинты: 1270
Отправить сообщение для Ugar с помощью ICQ
Сообщение от vadim2490 Посмотреть сообщение
Здрасвуите! Очень хочу понять как по этим строкам сова генерирует ключ. Посмотрите плс кто понимает.
Не кто понимает, а кто хочет помочь во взломе.
Для взломов есть ветка больничка.

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Глубокое понимание процессов помогает в работе, но сильно мешает в отдыхе.
http://forexsystems.ru/signaturepics/sigpic3798_1.gif
Чужие программы не переделываю!
Ugar на форуме   Ответить с цитированиемОтветить с цитированием  
Ответ

Метки
mql4, mql4 помощь, вопросы mql4


Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 02:26. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd.
SEO by vBSEO