Jump to content

Напишу советник, скрипт, индикатор на MQL бесплатно (архив)


muvingman

Recommended Posts

NewAlex

а есть какие-то бонусы первому отписавшемуся на сотой странице этого топика? :)

Link to post
Share on other sites
  • Replies 2.9k
  • Created
  • Last Reply

Top Posters In This Topic

  • AntFX

    364

  • Voldemar227

    263

  • Ugar68

    133

  • cmillion

    99

Top Posters In This Topic

Popular Posts

Есть скрипт на открытие 2х рыночных и/или 2х отложенных ордера по обе стороны от текущей цены со стоп лоссами и тейк профитами. Можно выставлять магик, расстояние от цены и проскальзывание. Скрипт не

Неблагодарное это дело писать тут для кого либо. Я как то, в начале года пытался помочь тут одному персонажу с индикатором, так он потом мне весь мозг, через личные сообщения вынес,  с тех пор пишу т

Posted Images

NewAlex

почитал мат часть, в теории все просто, но заткнулся вот тут:

int hInternetSession = InternetOpenA("Microsoft Internet Explorer", 0, "", "", 0);

int rv = InternetConnectA(hInternetSession, "ftp.cmegroup.com/bulletin", 21, 0, 0, 1, 0x08000000, NULL);

// int rv = InternetConnectA(hInternetSession, "ftp.cmegroup.com/bulletin", 80, 0, 0, 3, 0, NULL);

 

InternetConnectA возвращает 0 (ошибку) вместо идентификатора.

Закомментированная строчка ниже делает все то же самое, но только для http, и на ура возвращает какой-то идентификатор, т.е для http все работает.

80 и 21 это порты для http и ftp,

3 и 1 это INTERNET_SERVICE_HTTP и INTERNET_SERVICE_FTP,

0x08000000 - это INTERNET_FLAG_PASSIVE, используется с INTERNET_SERVICE_FTP... 0 тоже пробовал.

 

... где тут еще можно ошибиться?! :(

Link to post
Share on other sites
kazakov.v

 

 

где тут еще можно ошибиться?!

 

А откуда это вызывается? Если из mql, то нужно использовать "широкие" функции (InternetConnectW)


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
NewAlex

спасибо, я так и не понял, чем оличаются A, W и просто...

 

..да, из mql, исправил, не помогло (

Link to post
Share on other sites
NewAlex

в порядке паранойи - 21 порт может быть закрыт, но ведь нет же...

Link to post
Share on other sites
kazakov.v

 

 

не понял, чем оличаются A, W

 

mql все строковые параметры сейчас отправляет в юникоде (2 байта на символ - W)  (а раньше было в ansi - A)

 

 

Но сдается мне, флагов там всяких целая куча должна быть. Не смогу подсказать, в студии я пользовался MFC - там стандартные операции совсем просто оформляются.


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
NewAlex

да, там флагов много, но, в основном, все понятно, плюс примеры нагуглил... где непонятно, - вроде бы все "небредовые" варианты перебрал.

спасибо :) ...буду дальше долбить )

Link to post
Share on other sites
kazakov.v

Надо в студии отладить - там по крайней мере коды ошибок видно будет, а потом уже перенести в mql.


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
kazakov.v

буду дальше долбить

 

 

Можно штатным виндовым ftp-шником вытащить, батник что нибудь типа: 

@echo off
(echo cd bulletin
echo ls
echo bye) > ftp_ls
ftp -A -v -n -s:ftp_ls ftp.cmegroup.com > ls.txt
del ftp_ls

rem читаем ls.txt, находим нужный файл
rem если он существует, пишем его имя в file.txt

set /p fname=<file.txt

if exist file.txt (
(echo cd bulletin
echo get %fname%
echo bye) > ftp_get
ftp -A -v -n -s:ftp_get ftp.cmegroup.com
del ftp_get
del file.txt
)

Но в середине надо какой-то свой анализатор списка файлов воткнуть.

Может и средствами коммандной строки можно это сделать - я в этом не спец.


Никому верить нельзя.

Мне - можно.

 

Link to post
Share on other sites
NewAlex

ага, спасибо. это второй путь... точнее, - третий, вторым я думал стороннюю dll'ку написать.

... я синтаксис слегка подзабыл, ну да help, man и т.д. мне в помощь, да и примерно понятно..

так а как cmd из mql вызвать?

Link to post
Share on other sites
NewAlex

ShellExecute? точнее, ShellExecuteW? :)

Link to post
Share on other sites
Zambia

Здравствуйте.

Помогите пожалуйста, вот такая задача.

Нужно в скрипт вписать код который при обращении к нему будет открывать позицию(и) из некого набора в файле opoz.txt а потом удалять все что есть в этом файле.

Так это выглядит: компилятор в скрипте отработал и обратился к этому коду (который нужно написать), после чего это код обращается к файлу opoz.txt берет то туда инфу и открывает позиции. Далее стирает все что есть в файле opoz.txt

Структура файла opoz.txt может быть любой на ваше усмотрение. мне представляет так: через табуляцию название объем стоп лос тек профит комментарии.

Учтите пожалуйста тот факт что позиция сразу может не открыться т.к. дц не всегда дает это сделать сразу и надо подождать появления котировок.

Link to post
Share on other sites
NewAlex

Подскажите, плз: не могу программно найти свой же файл. Хочу выполнить WinExec батника, но WinExec упорно возвращает, что файл не найден.

В порядке паранойи, решил проверить, - это специфика виндовского вызова, или mql тоже не видит.

В общем:

if (FileIsExist("ftpoptions1.bat",FILE_COMMON))

возвращает false.

Переименовываю файл в ftpoptions1.txt, теперь

if (FileIsExist("ftpoptions1.txt",FILE_COMMON))

возвращает true.

 

Это что, заговор против батников? Где описаны эти ограничения на расширение файла?

Link to post
Share on other sites
Tanti2517

Здравствуйте Помогите пожалуйста в написании аллерта для стохастиков. Задумка такая, при пересечении быстрым стохастиком медленного сверху вниз -звуковой сигнал, снизу вверх- звуковой сигнал покупки. Стохастик быстрый настройки ( K-3,D-2,slowing-4), Медленный (K-12,D-3,slowing-7) Скажите, возможно ли вообще такое? Заранее большое спасибо!

Link to post
Share on other sites
ToB. CyxoB

Здравствуйте Помогите пожалуйста в написании аллерта для стохастиков. Задумка такая, при пересечении быстрым стохастиком медленного сверху вниз -звуковой сигнал, снизу вверх- звуковой сигнал покупки. Стохастик быстрый настройки ( K-3,D-2,slowing-4), Медленный (K-12,D-3,slowing-7) Скажите, возможно ли вообще такое? Заранее большое спасибо!

Элементарно. Только нужно учесть что у стохастика 2 линии. Какая из них считается главной, главная или сигнальная. И сравнивать нужно их...

 

 if (iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,0)>iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_SIGNAL,0) и тд...

Link to post
Share on other sites
kallipso

Здравствуйте Помогите пожалуйста в написании аллерта для стохастиков. Задумка такая, при пересечении быстрым стохастиком медленного сверху вниз -звуковой сигнал, снизу вверх- звуковой сигнал покупки. Стохастик быстрый настройки ( K-3,D-2,slowing-4), Медленный (K-12,D-3,slowing-7) Скажите, возможно ли вообще такое? Заранее большое спасибо!

 

//+----------------------------------------------------------------------------+
//|  Автор    : Юрий Токмань ,  [email protected]                          |
//+----------------------------------------------------------------------------+
//|  Описание : Возвращает торговый сигнад                                     |
//+----------------------------------------------------------------------------+
 int GetSignal(string vSymbol)
   {
    double Stoch_Main_0 =iStochastic(vSymbol,0,3,2,4,MODE_SMA,0,MODE_MAIN,0);
    double Stoch_Main_1 =iStochastic(vSymbol,0,12,3,7,MODE_SMA,0,MODE_MAIN,1);
    double Stoch_Sign_0 =iStochastic(vSymbol,0,3,2,4,MODE_SMA,0,MODE_SIGNAL,0);    
    double Stoch_Sign_1 =iStochastic(vSymbol,0,12,3,7,MODE_SMA,0,MODE_SIGNAL,1);    
    
    int vSignal = 0;
    
    if (Stoch_Main_0<20&&Stoch_Main_1<Stoch_Sign_1&&Stoch_Main_0>Stoch_Sign_0)
// 20 - нижний уровень, сами подбирайте    
    vSignal =+1;//up
 
    else 
    if (Stoch_Main_0>80&&Stoch_Main_1>Stoch_Sign_1&&Stoch_Main_0<Stoch_Sign_0)
// 80 - верхний уровень    
    vSignal =-1;//down
          
    return (vSignal);
   }
//+----------------------------------------------------------------------------+
//|  Автор    : Юрий Токмань ,  [email protected]                          |
//+----------------------------------------------------------------------------+
//|  Описание : Открытие позиций                                               |
//+----------------------------------------------------------------------------+
 int OpenSymbol(string vSymbol)
   {
    double point = MarketInfo(vSymbol,MODE_POINT);   
    double bid   = MarketInfo(vSymbol,MODE_BID);
    double ask   = MarketInfo(vSymbol,MODE_ASK);
      
   
   
      if(GetSignal(vSymbol)==1)
// Следующую строку вместо открытия ордера можете поменять на Ваш Алерт сигнала на покупку
      OrderSend(vSymbol,OP_BUY,0.01,ask,3,bid-StopLoss*point,ask+TakeProfit*point,"",0,0,Green);
     
      if(GetSignal(vSymbol)==-1)

// Следующую строку вместо открытия ордера можете поменять на Ваш Алерт сигнала на продажу    

      OrderSend(vSymbol,OP_SELL,0.01,bid,3,ask+-StopLoss*point,bid-TakeProfit*point,"",0,0,Red);   
     
     }   
Edited by kallipso

"Завтрашний день – самая важная вещь в жизни. Он навещает нас в полночь. Замечательно, когда он приходит и отдаётся прямо в наши руки. Он надеется, что мы возымели хоть какой-то урок со вчерашнего дня".

Link to post
Share on other sites
kallipso

Здравствуйте.

Помогите пожалуйста, вот такая задача.

Нужно в скрипт вписать код который при обращении к нему будет открывать позицию(и) из некого набора в файле opoz.txt а потом удалять все что есть в этом файле.

Так это выглядит: компилятор в скрипте отработал и обратился к этому коду (который нужно написать), после чего это код обращается к файлу opoz.txt берет то туда инфу и открывает позиции. Далее стирает все что есть в файле opoz.txt

Структура файла opoz.txt может быть любой на ваше усмотрение. мне представляет так: через табуляцию название объем стоп лос тек профит комментарии.

Учтите пожалуйста тот факт что позиция сразу может не открыться т.к. дц не всегда дает это сделать сразу и надо подождать появления котировок.

То бишь, Вы пытаетесь обойти последние билды мт4...

 

Существует система копировщика позиций с одного терминала на другой... на одном и том же компьютере.

Только после того, как системные папки перенеслись в директиву 

C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\E52807D660A4084779739619DFFFхххх\ и т.д.

работать копировщик перестал.

 

За это можете благодарить Рината Рашитовича. Он постарался защитить и монополизировать сервис www.mql5.com/ru/signals

Edited by kallipso

"Завтрашний день – самая важная вещь в жизни. Он навещает нас в полночь. Замечательно, когда он приходит и отдаётся прямо в наши руки. Он надеется, что мы возымели хоть какой-то урок со вчерашнего дня".

Link to post
Share on other sites
Ugar68

Только после того, как системные папки перенеслись в директиву 

C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\E52807D660A4084779739619DFFFхххх\ и т.д.

работать копировщик перестал.

 

За это можете благодарить Рината Рашитовича. Он постарался защитить и монополизировать сервис www.mql5.com/ru/signals

За это надо благодарить мелкомагкого Била Гейтса. Это их идея многопользовательской винды, начиная с висты, приложениям хранить пользовательские данные в пользовательских папках.

Благодари метаквоты за то что они оставили возможность работать в портативном режиме по старому.

В древних билдах, копировщикам приходилось использовать дллки, в новых есть специально предусмотренная общая папка.

Edited by Ugar68

Пишу советники и индикаторы по вашим алгоритмам. Пишите в личку.
Чужие программы не переделываю.

Link to post
Share on other sites
AntFX

Общая папка реально + для копировщиков. Для всего остального только минус. Никакой Билл Гейтс не заставлял МК выводить все пользовательские данные по умолчанию неведомо куда... МТ это не корпоративный, а индивидуальный инструмент, им пользуются как правило физические лица, имеющие административные права на своих компьютерах.

Edited by AntFX

1

Link to post
Share on other sites
felcorn

Добрый вечер.

Помогите, пожалуйста, с советником на основе обычного зиг зага. Все что нужно, чтобы он выставлял стоповые отложки на пробой. Бай стоп на 50 пунктов выше зиг зага, селл стоп на 20 пунктов ниже зиг зага(по 5 знаках). Желательно чтоб стоп и профит можно было редактировать в настройках. 

Если цена сформировала новый зиг заг между отложками, то старые удаляются, новые ставятся. 

Если есть открытые позиции, то все ровно выставлять отложки на новых заг загах.

обшарил кучу форумов, есть супер навороченые с треллингами, с ММ и т.д., но вот такого простенького не нашел.

Спасибо за помощь.

Link to post
Share on other sites
WEALTHCRAFT

Добрый вечер. Есть у кого-нибудь желание сделать советник замеряющий свопы?

 

И вопрос. Функция MarketInfo() для MODE_SWAPLONG и MODE_SWAPSHORT покажет своп на какую дату?

Link to post
Share on other sites
Елена4

Добрый вечер всем. Помогите с индикатором. В настройках выводятся параметры одной ма. Нужно добавить еще две .Вот часть его кода:

double ma      = iMA(Symbol(),0,ma_period,ma_shift,ma_method,ma_price,i);

Подскажите как в параметр double ma прописать три ма. Чтобы индикатор учитывал три машки а не одну. Заранее всем спасибо.

Link to post
Share on other sites
AntFX

 

 

Функция MarketInfo() для MODE_SWAPLONG и MODE_SWAPSHORT покажет своп на какую дату?

Покажет размер свопа, установленный в настройках сервера. Разве текущие свопы не публикуются в торговых условиях на сайте? Зачем их мониторить советником?


1

Link to post
Share on other sites
WEALTHCRAFT

Покажет размер свопа, установленный в настройках сервера. Разве текущие свопы не публикуются в торговых условиях на сайте? Зачем их мониторить советником?

Не знал, что на сайте актуальные свопы.

 

Сейчас только проверил скриптом

void OnStart()
{
//---
Alert("Своп по "+Symbol()+" Лонг = "+MarketInfo(Symbol(), MODE_SWAPLONG)+". Шорт = "+MarketInfo(Symbol(), MODE_SWAPSHORT));
}

пока сходится. MarketInfo() отображает актуальные свопы?

Edited by WEALTHCRAFT
Link to post
Share on other sites
AntFX
MarketInfo() отображает актуальные свопы?

Да, должен. В результате ролловера снимется именно тот своп, который возвращает маркетинфо на момент ролловера, я думаю. 

Edited by AntFX

1

Link to post
Share on other sites
  • Capman changed the title to Напишу советник, скрипт, индикатор на MQL бесплатно (архив)
  • Capman locked and unpinned this topic
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...