Ответ
 
Опции темы
Старый 13.03.2013, 07:25   #1041 (permalink)
Почётный гражданин
 
Аватар для qqmber
 
Регистрация: 20.01.2013
Сообщений: 530
Репутация: 386
qqmber - qqmber - qqmber - qqmber -
Сказал(а) спасибо: 57
Поблагодарили 386 раз(а) в 254 сообщениях
Поинты: 439
Сообщение от eevviill Посмотреть сообщение
OBJ_TEXT
Почему в справке написано что использует 1 координату?
По моему 2. Время и цену.

OBJ_HLINE вот эта одну координату использует. Цену.
Или я не так понимаю?
Терминология неудачная.
Координата это пара (время, цена). OBJ_TEXT использует одну координату, OBJ_HLINE только цену, игнорируя время.
qqmber вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (13.03.2013)
Старый 13.03.2013, 09:09   #1042 (permalink)
Активный участник
 
Аватар для greatiger
 
Регистрация: 06.02.2010
Сообщений: 490
Репутация: 68
greatiger
Сказал(а) спасибо: 318
Поблагодарили 67 раз(а) в 59 сообщениях
Поинты: 333
Сообщение от eevviill Посмотреть сообщение
Возьми 2 файла и сравни. До и после доработки.

Сначала 2 строки добавилось.
Сразу после Старт строки.
И в конце пару функций. Всё!
)

ПС... ниче вроде не забыл?

1. В переменные
extern double TakeProfit = 10.0;

extern bool исп_проц_от_депо_закр_все = false;
extern double проц_от_депо_закр_все = 0.4;

2. После start
if (исп_проц_от_депо_закр_все && Профіт_відс_валюти_ф()>=проц_ от_депо_закр_все) закриття_ордеру_ф();

3. В функции в конец

double Профіт_відс_валюти_ф()
{

return(Профіт_валюти_ф()/(AccountBalance()/100));
}


double Профіт_валюти_ф()
{
double профіт;
for(int i=OrdersTotal()-1; i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderMagicNumber()==MagicNumber)
{
if(OrderSymbol()==Symbol())
{
профіт+=OrderProfit()+OrderCommission()+Orde rSwap();
}
}
}
}

return(профіт);
}




void закриття_ордеру_ф()
{
for(int i=OrdersTotal()-1; i>=0; i--)
{
OrderSelect(i,SELECT_BY_POS);
{
if(OrderMagicNumber()==MagicNumber)
{
if(OrderSymbol()==Symbol())
{
bool закрився_ордер=false;
for (int j_ex = 0;j_ex < 8; j_ex++)
{
while(IsTradeContextBusy()) Sleep(1000);

if(OrderType()==OP_BUY ) закрився_ордер=OrderClose(OrderTicket (),OrderLots(),Bid,slip,Yellow);
if(OrderType()==OP_SELL) закрився_ордер=OrderClose(OrderTicket (),OrderLots(),Ask,slip,Yellow);
if(OrderType()==OP_SELLSTOP || OrderType()==OP_BUYSTOP || OrderType()==OP_SELLLIMIT || OrderType()==OP_BUYLIMIT) закрився_ордер=OrderDelete(OrderTicke t(),CLR_NONE);
if(закрився_ордер==true)break;
}
}
}
}
}

}

Последний раз редактировалось greatiger; 13.03.2013 в 09:28.
greatiger вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 14.03.2013, 23:22   #1043 (permalink)
VLV
Почётный гражданин
 
Аватар для VLV
 
Регистрация: 22.08.2010
Сообщений: 1,143
Репутация: 336
VLV VLV VLV VLV
Сказал(а) спасибо: 216
Поблагодарили 342 раз(а) в 187 сообщениях
Поинты: 553
Извините пожалуйста,что не совсем по таме,вот такая фигня,никак в терминал не зайти,висит внизу типа советника в режиме тестирования и все,а все отккрытые позы -не закрыть не открыть,весь чертовщиной занят,и никак в нормальный режим,чего сделать не подскажете?

Последний раз редактировалось VLV; 14.03.2013 в 23:29.
VLV вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.03.2013, 05:18   #1044 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от VLV Посмотреть сообщение
Извините пожалуйста,что не совсем по таме,вот такая фигня,никак в терминал не зайти,висит внизу типа советника в режиме тестирования и все,а все отккрытые позы -не закрыть не открыть,весь чертовщиной занят,и никак в нормальный режим,чего сделать не подскажете?
Хоть-бы скрин прицепил если кроме "типа", "фигня" и чертовщины нечего сказать.

Ну а по теме, попробуй определить какой советник в режиме тестирования, потом закрой терминал, удали этот советник и пробуй запускать.
Если результат нулевой делай скрин и в студию.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
3 пользователя(ей) сказали cпасибо:
alexshell (15.03.2013), eevviill (15.03.2013), smartmans (18.03.2013)
Старый 15.03.2013, 09:01   #1045 (permalink)
Местный житель
 
Аватар для Алекc1234
 
Регистрация: 24.03.2011
Сообщений: 697
Репутация: 276
Алекc1234 Алекc1234 Алекc1234
Сказал(а) спасибо: 391
Поблагодарили 276 раз(а) в 176 сообщениях
Поинты: 0
Всем привет. Подскажите, как грамотно написать в коде - "если нет открытых ордеров, то..."Я вот пишу просто if(OrderOpenTime == 0) но так работает глючно...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мой тейкпрофит-магнит, а стоплосс-паразит
Тебе повезло,ты не такой как все
Ты работаешь на форексе
Алекc1234 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 15.03.2013, 10:01   #1046 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Сообщение от Алекc1234 Посмотреть сообщение
Всем привет. Подскажите, как грамотно написать в коде - "если нет открытых ордеров, то..."Я вот пишу просто if(OrderOpenTime == 0) но так работает глючно...
if(OrdersTotal()==0)...
Для тестера сойдёт.

Ну а вообще если правильно, то пишешь функцию подсчёта ордеров. В которой перебираешь ордера с нужным меджиком и подсчитываешь их.
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
alexshell (15.03.2013), Алекc1234 (15.03.2013)
Старый 15.03.2013, 18:07   #1047 (permalink)
Интересующийся
 
Аватар для Дмитрий 2010
 
Регистрация: 13.08.2010
Сообщений: 12
Репутация: 2
Дмитрий 2010
Сказал(а) спасибо: 7
Поблагодарили 1 раз в 1 сообщении
Поинты: 18
Добрый день всем присутствующим. Второй день бъюсь над проблемой: скрипт при запуске не создает файл для записи и чтения вот код помогите пожалуста

int handle;

int ошибка;

//+------------------------------------------------------------------+

//| script program start function |

//+------------------------------------------------------------------+

int start(){

ошибка=GetLastError();Print("ошибка=", ошибка);

handle=FileOpen("News.txt.",FILE_CSV|FILE_READ|FIL E_WRITE);Print("handle=",handle); Print("ошибка=",ошибка);

if(handle<1)

{

Print("Файл News.txt не обнаружен, последняя ошибка ", GetLastError());

return(false);

}

FileWrite( handle, 165897) ;Print("ошибка=",ошибка);

if(handle>0)Print("ошибка=",ошибка);

{

FileWrite(handle, Close[0], Open[0], High[0], Low[0]);Print("ошибка=",ошибка);

FileClose(handle);Print("ошибка=",ошибк а);

}



return(0);

}

принт ошибок =0

принт параметра открытия файла =1

файл не отображается в папках
Дмитрий 2010 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 15.03.2013, 19:37   #1048 (permalink)
Элитный участник
 
Аватар для alexshell
 
Регистрация: 29.10.2010
Сообщений: 650
Репутация: 1669
alexshell alexshell alexshell alexshell alexshell alexshell alexshell alexshell alexshell alexshell alexshell
Сказал(а) спасибо: 917
Поблагодарили 1,667 раз(а) в 584 сообщениях
Поинты: 339
Сообщение от Дмитрий 2010 Посмотреть сообщение
Добрый день всем присутствующим. Второй день бъюсь над проблемой: скрипт при запуске не создает файл для записи и чтения вот код помогите пожалуста
файл не отображается в папках
Глянул вроде всё правильно. Скопировал ваш код.Кинул на график. Файл создался и с записанными данными. В чем у вас проблема не понимаю. Может файл не там смотрите?Чтоб небыть голословным вот созданный файл по вашему коду. Кидал на золото.
Вложения:
Тип файла: txt News.txt (40 байт, 6 просмотров)
alexshell на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
eevviill (16.03.2013), Дмитрий 2010 (15.03.2013)
Старый 15.03.2013, 21:19   #1049 (permalink)
Интересующийся
 
Аватар для Дмитрий 2010
 
Регистрация: 13.08.2010
Сообщений: 12
Репутация: 2
Дмитрий 2010
Сказал(а) спасибо: 7
Поблагодарили 1 раз в 1 сообщении
Поинты: 18
скрипт запускается и ошибок нет только создаваемый файл не отображается (уже массу всего перепробовал ) осталось только пере установка виндовс.
alexshell спасибо большое
Дмитрий 2010 вне форума   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
alexshell (16.03.2013)
Старый 16.03.2013, 20:05   #1050 (permalink)
Местный житель
 
Аватар для Алекc1234
 
Регистрация: 24.03.2011
Сообщений: 697
Репутация: 276
Алекc1234 Алекc1234 Алекc1234
Сказал(а) спасибо: 391
Поблагодарили 276 раз(а) в 176 сообщениях
Поинты: 0
Подскажите пожалуйста, как правильно написать в коде - если цена дошла до тейкпрофита. Я сделал так
PHP код:
if (OrderType()==OP_BUY) {
 if(
Ask==OrderTakeProfit()) { ... 
Тут цена не доходит то тейка - так и задумано, только работает некорректно. Может, есть какие-то нюансы, что дописать в коде...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мой тейкпрофит-магнит, а стоплосс-паразит
Тебе повезло,ты не такой как все
Ты работаешь на форексе
Алекc1234 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 16.03.2013, 20:16   #1051 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от Алекc1234 Посмотреть сообщение
Подскажите пожалуйста, как правильно написать в коде - если цена дошла до тейкпрофита. Я сделал так
PHP код:
if (OrderType()==OP_BUY) {
 if(
Ask==OrderTakeProfit()) { ... 
Тут цена не доходит то тейка - так и задумано, только работает некорректно. Может, есть какие-то нюансы, что дописать в коде...
цитата из справки
Цитата:
double OrderTakeProfit()
Возвращает значение цены закрытия позиции при достижении уровня прибыльности (take profit) для текущего выбранного ордера
Ордер должен быть предварительно выбран с помощью функции OrderSelect().
то-же самое и OrderType()
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
smartmans (18.03.2013), Алекc1234 (16.03.2013)
Старый 16.03.2013, 20:23   #1052 (permalink)
Местный житель
 
Аватар для Алекc1234
 
Регистрация: 24.03.2011
Сообщений: 697
Репутация: 276
Алекc1234 Алекc1234 Алекc1234
Сказал(а) спасибо: 391
Поблагодарили 276 раз(а) в 176 сообщениях
Поинты: 0
Сообщение от AlexeyVik Посмотреть сообщение
цитата из справки

то-же самое и OrderType()
Да, это всё написанное мною идёт в цикле с OrderSelect, но всё равно нормально не работает. То есть то работает, то нет... Может, для корректной работы ещё что-то нужно?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мой тейкпрофит-магнит, а стоплосс-паразит
Тебе повезло,ты не такой как все
Ты работаешь на форексе

Последний раз редактировалось Алекc1234; 16.03.2013 в 20:26.
Алекc1234 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 17.03.2013, 00:08   #1053 (permalink)
Интересующийся
 
Аватар для Дмитрий 2010
 
Регистрация: 13.08.2010
Сообщений: 12
Репутация: 2
Дмитрий 2010
Сказал(а) спасибо: 7
Поблагодарили 1 раз в 1 сообщении
Поинты: 18
Здравствуйте товарищи я намедни задавал вопрос по поводу работы скрипта (а точнее функции FileOpen-пост=1047) так вот после пере установки виндовс док. открывался по адресу(С:\Пользователи\адми нистратор\AppData\Logcal\VirtualStore\Pro gram Files (x86)\ MT4\experts\files) хотя терминал стоит (С:\Program Files (x86)\ MT4) проблема была решена после скачивания и установки свежего терминала (предыдущая версия терминала на "чистом" виндовс все также работала криво).Может комуто пригодится такой опыт.

Последний раз редактировалось Дмитрий 2010; 17.03.2013 в 00:10.
Дмитрий 2010 вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.03.2013, 07:00   #1054 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от Алекc1234 Посмотреть сообщение
Да, это всё написанное мною идёт в цикле с OrderSelect, но всё равно нормально не работает. То есть то работает, то нет... Может, для корректной работы ещё что-то нужно?
Ну извини, что не сразу заметил.
Как ты думаешь, какова вероятность, что Ask будет точно-точно равен тейку ордера??? Вот именно... С той самой вероятностью, с которой твой код работает правильно.
Правильно будет написать >= или <= , ну надеюсь что ты понял.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
3 пользователя(ей) сказали cпасибо:
eevviill (17.03.2013), smartmans (18.03.2013), Алекc1234 (17.03.2013)
Старый 17.03.2013, 07:06   #1055 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от Дмитрий 2010 Посмотреть сообщение
Здравствуйте товарищи я намедни задавал вопрос по поводу работы скрипта (а точнее функции FileOpen-пост=1047) так вот после пере установки виндовс док. открывался по адресу(С:\Пользователи\адми нистратор\AppData\Logcal\VirtualStore\Pro gram Files (x86)\ MT4\experts\files) хотя терминал стоит (С:\Program Files (x86)\ MT4) проблема была решена после скачивания и установки свежего терминала (предыдущая версия терминала на "чистом" виндовс все также работала криво).Может комуто пригодится такой опыт.
Самый эффективный способ избавиться от таких заморочек ставить МТ в корень диска С:\MT4 то-есть убрать из пути установки "Program Files (x86)\"
Или, если диск разбит на логические диски, то ставить на D:\MT4
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
3 пользователя(ей) сказали cпасибо:
eevviill (17.03.2013), smartmans (18.03.2013), Дмитрий 2010 (18.03.2013)
Старый 17.03.2013, 08:09   #1056 (permalink)
Заблокирован
За второе место в конкурсе 

 
Аватар для eevviill
 
Регистрация: 30.07.2009
Сообщений: 5,474
Репутация: 9022
eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill eevviill
Сказал(а) спасибо: 13,680
Поблагодарили 9,022 раз(а) в 3,179 сообщениях
Поинты: 1105
Отправить сообщение для eevviill с помощью Skype™
Если мы скажем внешней перемнной manu присвоили тру.
После определённых действий в Старте присвоили фолс.

Когда юзер зайдёт в настройки прикреплённого совеника то там будет тру или фолс?
eevviill вне форума   Ответить с цитированиемОтветить с цитированием  
Старый 17.03.2013, 08:20   #1057 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от eevviill Посмотреть сообщение
Если мы скажем внешней перемнной manu присвоили тру.
После определённых действий в Старте присвоили фолс.

Когда юзер зайдёт в настройки прикреплённого совеника то там будет тру или фолс?
Привет Василий. Я-бы не советовал ставить extern переменные в качестве флагов. Дело в том, что даже если переменная будет false, то когда вызываешь окно свойств советника оттуда считываются значения по умолчанию и дальше результат не предсказуем. Нажмёшь "Отмена" возможно значение останется, нажмёшь "ОК" поменяется обязательно. И соответственно будет нарушен алгоритм.
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
Пользователь сказал cпасибо:
eevviill (17.03.2013)
Старый 17.03.2013, 10:11   #1058 (permalink)
Местный житель
 
Аватар для Алекc1234
 
Регистрация: 24.03.2011
Сообщений: 697
Репутация: 276
Алекc1234 Алекc1234 Алекc1234
Сказал(а) спасибо: 391
Поблагодарили 276 раз(а) в 176 сообщениях
Поинты: 0
Сообщение от AlexeyVik Посмотреть сообщение
Ну извини, что не сразу заметил.
Как ты думаешь, какова вероятность, что Ask будет точно-точно равен тейку ордера??? Вот именно... С той самой вероятностью, с которой твой код работает правильно.
Правильно будет написать >= или <= , ну надеюсь что ты понял.
Спасибо большое - действительно, в этом >= и <= и было дело. Сейчас всё зароботало так как надо!!!!

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мой тейкпрофит-магнит, а стоплосс-паразит
Тебе повезло,ты не такой как все
Ты работаешь на форексе
Алекc1234 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 17.03.2013, 18:04   #1059 (permalink)
Местный житель
 
Аватар для Алекc1234
 
Регистрация: 24.03.2011
Сообщений: 697
Репутация: 276
Алекc1234 Алекc1234 Алекc1234
Сказал(а) спасибо: 391
Поблагодарили 276 раз(а) в 176 сообщениях
Поинты: 0
Подскажите, а можно написать, чтобы в тестере тест бы проходил не по спреду на графике, а по тому, какой сам поставил во входных параметрах? И если да, то как это сделать?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Мой тейкпрофит-магнит, а стоплосс-паразит
Тебе повезло,ты не такой как все
Ты работаешь на форексе
Алекc1234 на форуме   Ответить с цитированиемОтветить с цитированием  
Старый 17.03.2013, 18:56   #1060 (permalink)
Программист mql4 mql5
 
Аватар для AlexeyVik
 
Регистрация: 19.11.2009
Сообщений: 2,517
Репутация: 3643
AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik AlexeyVik
Сказал(а) спасибо: 1,109
Поблагодарили 3,647 раз(а) в 1,468 сообщениях
Поинты: 2004
Сообщение от Алекc1234 Посмотреть сообщение
Подскажите, а можно написать, чтобы в тестере тест бы проходил не по спреду на графике, а по тому, какой сам поставил во входных параметрах? И если да, то как это сделать?
Здесь посмотри _http://forum.alpari.ru/showpost.php?p=3127042&postcount=7
AlexeyVik на форуме   Ответить с цитированиемОтветить с цитированием  
2 пользователя(ей) сказали cпасибо:
smartmans (18.03.2013), Алекc1234 (17.03.2013)
Ответ

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


Опции темы

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

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



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


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