Перейти к содержанию

Обучение языку MQL4 под MetaTrader 4


Рекомендуемые сообщения

Обучение языку MQL4 под MetaTrader 4 Опубликовано

В общем Вам нужно перечитать все что я писал выше. Вдумчиво перечитать. Я ответил максимально развернуто, как только возможно. Если хотите выйти на нормальный уровень программирования, то не спешите. Не хватайтесь сразу за непосильные вещи, идите от простого к сложному. Если чего то не понимаете, то делайте шаг назад и заново повторяйте. Вы должны научиться четко понимать что, где и почему пишется в коде. Должны самостоятельно научиться делать логические конструкции.
Ну вот что Вы написали здесь? Сначала присваиваете LastTradeSignal=0, а потом тут-же переопределяете значение LastTradeSignal=1. В чем смысл? Я же написал как надо. Где условия, при которых LastTradeSignal принимает то или иное значение?

я уже исправился, извиняюсь, но по Вашему работает только бай, сел продолжает открывать.
if(DN_Trend()==true) LastTradeSignal=OP_SELL;
if(UP_Trend()==true) LastTradeSignal=OP_BUY;

Добавлено: 05-05-2017 13:44:42

slopeEND.mq4

Изменено пользователем d1w4m3
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 6,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Смотрим видео-уроки, изучаем MQL:       Скачать видеокурс «MQL программирование. Как самому написать форекс советник/ индикатор/ скрипт»   P.S. Тема про Обучение MQ

Перейти

Циклы цикл for Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. К примеру, мы хотим проанализировать последние 10 баров и выяснить наименьшую цен

Перейти

Речь идет о том, что не будет значимых нововведений. А только баги периодически будут править. А вот все новое мол - в МТ5. Когда они вживую сказали то же самое на конференции в Москве, я уточнил: "То

Перейти
Обучение языку MQL4 под MetaTrader 4 Опубликовано

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


d1w4m3, вот так железобетонно должно все работать \M/

slopeEND.mq4

Изменено пользователем DreamWorks
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

DreamWorks с меня бутылка и не одна))благодаря Вашему терпению, научился многому :d


Добавлено: 05-05-2017 16:30:11

if(LastTradeSignal==-1)
{
if(DN_Trend()==true) LastTradeSignal=OP_SELL;
if(UP_Trend()==true) LastTradeSignal=OP_BUY;
if(LastTradeSignal==-1)return;
}
Если переменная равна -1
то начинается перебор условий,
если попал на -1 опять
возвращение
Я правильно понял? Изменено пользователем d1w4m3
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

DreamWorks с меня бутылка и не одна))


Ловлю на слове ;)

Если переменная равна -1
то начинается перебор условий,
если попал на -1 опять
возвращение
Я правильно понял?


Да, все правильно. Переменной LastTradeSignal при объявлении присваивается значение -1, которое никогда не может быть возвращено сигнальными функциями. Я просто подумал, что у Вас при старте советника может быть ситуация, что обе функции вернут false. Поэтому сделал железный вариант. Пока переменной LastTradeSignal не будет присвоено OP_SELL или OP_BUY, то он просто не начнет работу и его будет постоянно выбрасывать из функции OnTick() оператор return.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

. Строка if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==FALSE ) break; допустима, но с точки зрения логики и синаксиса избыточна и не совсем корректна.Может поменять на ticket так как торгую на 10 валютных парах тф Н4
и поиск ордеров проводить по тикету,


Можно и по тикетам, но придётся вести учёт тикетов, я думаю что через SELECT_BY_POS будет проще, так что с логикой и синаксисом всё в порядке ;)


4. Условие if(OrderStopLoss()!=sl) некорректно. А как тогда корректно если стоп идёт от ЕМА10? при моих условиях стоп то ставится то удаляется на каждом тике.
Так может здесь кто подскажет


Условие не совсем корректно из-за того, что функция OrderStopLoss() возвращает значение типа double и сравнивать придётся до 30 знаков после запятой и бывает что расчётный СЛ = 1.1000, а реально OrderStopLoss() = 1.09999999...(9)
и зачем Вам на каждом тике проверять СЛ, если он меняется по закрытию бара? Чтоб сделать проверку по закрытию бара нужно вставить в код проверку (в Вашем примере сразу после ф-ции Старт):
static datetime dt = 0;
if ( dt == Time[1] ) return();
dt = Time[1];
и далее Ваш код.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Друзья, изучаю MQL4 и решил написать советник для системы Lazy Trader.
Советник написан, но некорректно работает.
Я уже получал обратную связь по коду советника и очень за это благодарен. кое-какие ошибки я уже исправил.

Ошибка, которую я вижу - это ордера не закрываются по времени. Возможно есть еще какие-то ошибки.

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

Вот правила системы, для которой я писал советник:

1/ В начале недели дожидаемся закрытия первой четырех-часовой свечи.
2/ Ставим отложенные ордера Buy Stop и Sell Stop на 20 пунктов выше High и на 20 пунктов ниже Low этой свечи.
3/ Стоп-лосс ставится на уровне противоположного ордера. Тейк-профит не ставим.
4/ При достижении ордером прибыли, равной стоп-лоссу, переводим стоп в безубыток (переносим стоп-лосс позиции на цену ее открытия).
5/ Второй ордер после активации первого, НЕ УДАЛЯЕМ!
6/ В конце недели удаляем / закрываем все ордера, независимо от их прибыли / убытка.

Спасибо за помощь:)

Прикрепляю файл с кодом советника

Lazy_Trader_Expert.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Сделал сеточного советника по видеоурокам. Нужен совет по Трейлингу. На видеоуроках был пример трейлинга для несвязанных ордеров, но в советнике они же связаны и у меня всё запуталось. В общем что-то вот такое получилось.
Аналогичная тема на MQL сайте есть.

Прошу вас дать совет как сделать трейлинг на связанные открытые позиции - их 3 как правило.

В коде именно часть под названием void Trailing() вызывает непонимание, естественно я код уже искаверкал что был после видеоурока, не знаю что здесь придумать. В целом советник вроде неплохой, потихоньку его надстраиваю.

Спасибо, если кто заморочится и даст совет по реализации кода для Трейлинга в данной модели советника.

Прикрепил советника и фотку с отчётом.

BLACKJACKHOOKERS_TrailX.mq4
EURUSD_deposit_100_$_TrailX.gif
EURUSD_deposit_100_$_TrailX.htm

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

static datetime dt = 0;
if ( dt == Time[1] ) return();
dt = Time[1];
и далее Ваш код.


так выдает ошибки, а если добавить 0 в ретурн то ошибок нет
static datetime dt=0;
if(dt==Time[1])return(0);
dt=Time[1];
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

И это опять я))
Отвалилась переобувка сигнала, при появлении нового!
Не получилось ли так, что в Ваш цикл кидается по отдельности первый сигнал бай, а потом и первый сигнал сел?И от этого тогда он не видит первый открытый ордер?ps я честно пересмотрел и перечитал все! Изменял условия, блоки и тд. @-)

.jpg

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Отвалилась переобувка сигнала, при появлении нового!



d1w4m3, выражайтесь, пожалуйста, человеческим языком. Что значит "переобувка сигнала"? Я не писал никаких циклов, Вы о чем? Не понял Вашей проблемы.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Извиняюсь.
Например:
Открыт бай, когда тренд меняется(цвет индикатора), на DN_trend, должен закрыться бай и открыться селл(как было раньше).
Теперь сел отрывается а бай не закрывается!


Добавлено: 06-05-2017 15:50:27

if(LastTradeSignal==-1)
{
if(DN_Trend()==true) LastTradeSignal=OP_SELL;
if(UP_Trend()==true) LastTradeSignal=OP_BUY;
if(LastTradeSignal==-1)return;
}
Пока LastTradeSignal не будет присвоено OP_SELL или OP_BUY, новый ордер не откроется
не могу сформулировать правильно вопрос черт(
Первым ордером считается или бай или селл, или они по отдельности будут первыми, для сел позиций сел, для баев бай.
извиняюсь но по другому не могу, буду учиться Изменено пользователем d1w4m3
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Приветствую,

ну как что тралить - профиты))) Там на уроке про модификацию ордера сообщалось ну а как же это сделать можно если связанные ордера? и профит я там снимаю по всем трём ордерам. Знаний не хватает. Можно ли в такой схеме вообще трейлинг применять? Я там нашКОДил ерунду какую-то - вроде бы тралит судя по отчётам теста МТ4, раньше строго на уровне тейкпрофита ордера закрывались а сейчас и в 3 и в 5 раз больше может забрать но всё равно некорректно это всё, поэтому и ищу помощи у специалистов если время есть подумайте пожалуйста как натрейлить корректно можно в такой схеме контр-ордеров. Мне пришлось аналогию применить только к последнему открытой позиции из трёх - она может быть и buy и sell позицией, ну и что-то запутался я там с кодом в функции Trailing(); - не нравится мне это. Хочется трейлинг, но корректно не могу его в такой ордерной схеме применить...

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

Изменено пользователем geratdc
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Извиняюсь.
Например:
Открыт бай, когда тренд меняется(цвет индикатора), на DN_trend, должен закрыться бай и открыться селл(как было раньше).
Теперь сел отрывается а бай не закрывается!


То, что мы с Вами вчера написали абсолютно никак не связано с закрытием ордеров. Оно лишь влияет на открытие новых ордеров. А точнее на то, чтобы открытие по сигналам функций чередовалось. Если у Вас не закрывается ордер, то смотрите на корректность условий, при которых он обязан закрыться. Есть очень простое, но очень эффективное правило: если событие не наступает, значит нет условий для его наступления. Вот и все. Давайте посмотрим при каких условиях у Вас закрываются ордера:

//закрываем селл-ордера
if ( CountSell()>0 && Open[4] > uptr && Close[4] > uptr && UP_Trend()==true)

//закрываем бай-ордера
if ( CountBuy()>0 && Open[4]
Здесь присутствуют два условия, в которых с большой вероятностью и кроется причина не закрытия противоположного ордера, это Open[4]
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Хм... то-то я смотрю вы тейкпрофит тянете впереди цены, как морковку перед осликом :d Ну и судя по картинке, этот прием Вам удался ;) В коде у Вас написано конечно много странных вещей, поэтому я подумал, что мне это показалось... А вообще обычно принято тралить стоп. На то он и называется трейлингСТОП. Урок, о котором Вы говорите, я не помню о чем там речь конкретно шла, пересматривать конечно не стану. Вы опишите просто свою задачу. Что Вы имеете ввиду под "связанные ордера"? Судя по коду, ордера у Вас закрываются при достижении определенной суммы профита в валюте по всем ордерам. В таком варианте тралить можно только сумму общего профита всех ордеров.

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

06/05/2017

В таком варианте тралить можно только сумму общего профита всех ордеров.



То что я там сделал неверно конечно. Вот именно об этом я тоже думал. Хорошо попробую завтра вникнуть ещё раз и применить к этой функции. Попробую её потралить но не уверен что получится.

А урок вот какой был. код я прилагаю. Я и постарался по аналогии сделать, но там модификация была стопов а я не мог это применять на стоппереворотных ордерах.

07/05/2017

Готово!

Посмотрите пожалуйста насчёт логики. Вроде получилось через CalculateProfit трейлить, но удивительно то, что старый (вчерашний) код ровно такие же итоги выдаёт после того как я все параметры привёл к одинаковым значениям для теста, а TakeProfit, TrailingStep и TrailingStop приведены везде к типу double.

Больше всех наторговал советник без трейлинга - но если сравнить количество трейдов у него их больше.

Вопрос такой: в чём выгода тогда трейлить? Если в итоге прибыли меньше? Какая выгода от меньшего количества трейдов? Не понимаю.

Прилагаю фото тестов.

SimpleTrailing_Lesson5.mq4
BLACKJACKHOOKERS_TrailX.mq4
BJH_100_TrailX_OFF.gif
TrailX_100_New_code.gif
TrailX_100_Old_code.gif
BJH_100_TrailX_OFF.htm
TrailX_100_New_code.htm
TrailX_100_Old_code.htm
BLACKJACKHOOKERS.mq4

Изменено пользователем geratdc
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

if(UP_Trend()==true && LastTradeSignal != OP_BUY) /// Если Аптренд правда и последний сигнал не равен бай
{
if( CountBuy() == 0 && Open[3] > uptr && Close[3] > uptr) //// И если нет открытых баев, (открытие и закрытие 3 свечи) больше аптренда
{
if ( CountSell()>0) ///Если сел открыт
{
if (OrderSelect(SELECT_BY_POS, MODE_TRADES)) /// выбираем ордер
{
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL ) /// по мейжику и типу
if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black)) //// закрываем его
Print("Ошибка");
}


ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, "Sloper", Magic, 0, Blue);//// открываем бай
if (ticket>0) //// если ордер открыт
{
TP = NormalizeDouble(OrderOpenPrice() + TakeProfit*Point, Digits); //// приводим в порядок ТР И SL
SL = NormalizeDouble(OrderOpenPrice() - StopLoss*Point, Digits);

if (OrderSelect(ticket, SELECT_BY_TICKET)) ///////выбираем ордер
if(!OrderModify(ticket, OrderOpenPrice(), SL, TP, 0)) ///// и модифицируем
Print("Ошибка на покупку");
LastTradeSignal=OP_BUY; ////////запоминаем последний тип одера
}
}
}
}
Вот я правильно читаю код или нет?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Вот я правильно читаю код или нет?


d1w4m3, понимаете то, ЧТО должно быть написано правильно, но пишете не правильно. Привел Ваш код в нормальный вид и прокомментировал. Но исправлять ошибки не стал, лишь указал на них, думаю сами должны додумать. И еще. Когда вы проверяете выполнение каких-то условий, то надо писать так, чтобы действие, которое зависит от выполнения условия, не могло выполниться, если условие не выполнено. Нет смысла писать, например вот это:
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL ) /// по мейжику и типу
if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black)) //// закрываем его

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

Ваш код


if(UP_Trend()==true && LastTradeSignal!=OP_BUY) /// Если Аптренд правда и последний сигнал не равен бай
{
if(CountBuy()==0 && Open[3]>uptr && Close[3]>uptr) //// И если нет открытых баев, (открытие и закрытие 3 свечи) больше аптренда
{
if(CountSell()>0) ///Если сел открыт
{

//Какой ордер здесь выбран???! Где индекс выбираемого ордера???
if(OrderSelect(SELECT_BY_POS,MODE_TRADES)) /// выбираем ордер
{
if(OrderMagicNumber()==Magic && OrderType()==OP_SELL) /// по мейжику и типу
{
if(OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Black)) //// закрываем его
{
ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"Sloper",Magic,0,Blue);//// открываем бай

if(ticket>0) //// если ордер открыт
{
TP=NormalizeDouble(OrderOpenPrice()+TakeProfit*Point,Digits); //// приводим в порядок ТР И SL
SL= NormalizeDouble(OrderOpenPrice() - StopLoss*Point, Digits);

if(OrderSelect(ticket,SELECT_BY_TICKET)) ///////выбираем ордер
{
if(!OrderModify(ticket,OrderOpenPrice(),SL,TP,0)) ///// и модифицируем
Print("Ошибка на покупку");
}
LastTradeSignal=OP_BUY; ////////запоминаем последний тип одера
}
}
else Print("Ошибка");
}
}
//Гарантированно получаем эту запись в журнале
else Print("Ордер для закрытия не выбран!");
}
}
}

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Спасибо за ответ, но по Вашему получается, если ордер не открыт то и вся эта цепочка не сработает!
Как я понимаю,
если условие сработала,
если ордер сел открыт
тогда мы его закрываем и открываем бай!
А если ордер не открыт не понимаю что тогда будет происходить?
По поводу тикета: опять же если ордер открыт тогда я могу использовать
if (OrderSelect(ticket, SELECT_BY_TICKET))
А по другому придется опять вернуться к
for(int i = OrdersTotal() -1; i>=0; i--){
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
Или я окончательно запутолся?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
d1w4m3, Вы сами должны предусмотреть, продумать и прописать все возможные ситуации. Если ордер открыт, то делаем то-то. Если не открыт, то, соответственно, открываем и т.д. У оператора if-else кроме if есть еще и else. Это первое.

Второе. Если не знаете, какой тикет у закрываемого ордера, то Ваш путь - цикл с перебором всех подходящих ордеров. Так, как Вы написали if(OrderSelect(SELECT_BY_POS,MODE_TRADES)), писать нельзя и работать это не будет.

Третье. Если мы продолжим в том же ритме обсуждать здесь Ваш код, то ветка напрочь зафлудится только нашей с Вами перепиской. Думайте, думайте и еще раз думайте, и только потом задавайте вопросы.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Подскажите, плиз, такую вещь.
Я использую в боте различные таймфреймы, от М1 до D1. Обычно ставлю его на реале на М1 и никаких проблем не возникает, значит все верхние тф либо подгружаются на автомате, либо пересчитываются из М1. Кстати, как на самом деле?
Если открыт график М1, история по другим периодам подкачивается тоже?
Так вот. Возникла проблема - 20 графиков М1 жрут 6 гигов оперативы.
Отлаживал код, отлаживал... Думал, может проблема в неэффективном коде. Все прилизал, все летает, но нет.
По прежнему 6 гигов. Снял ботов, оставил графики - точно, сами графики М1 жрут тучу оперативы.
Короче, вопрос.
По большому счету, совам моим пофиг, на каком периоде стоять, таймфреймы заданы жестко в коде,
но я считаю закрытие М1 свечи, чтобы по всем тикам не гонять сову и не зависеть от тиковой истории.
Так вот, если я поставлю сову на графики Н1, например, история по более коротким ТФ будет в процессе работы подкачиваться автоматом?
Или придется какой нибудь рефреш прикручивать для принудительной загрузки?
Может кто уже вертел, знает, а то неохота проверять. Время все таки.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Ок спасибо.
if(UP_Trend()==true)
{
if ( CountSell()>0 && uptr!=dntr)
{
for(int i = OrdersTotal() -1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderMagicNumber() == Magic && OrderType() == OP_SELL )
if(!OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, Black))
Print("Ошибка");
Все оказалось очень просто)))Еще раз спасибо за терпение

Изменено пользователем d1w4m3
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

2Silentspec - мне помогало от прожорливости мт удаление(или перенос) всего лишнего из indicators и experts,, и обязательного удаления mqlcache.dat там и там для пересчета содержимого. Все это при выключенном терминале.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

...значит все верхние тф либо подгружаются на автомате, либо пересчитываются из М1. Кстати, как на самом деле?
Если открыт график М1, история по другим периодам подкачивается тоже?


Да. Если открыт M1, а советник обращается к периоду, отличному от M1, то история будет подкачиваться именно по тому периоду, к которому обращается советник. Ничего не пересчитывается.

Так вот, если я поставлю сову на графики Н1, например, история по более коротким ТФ будет в процессе работы подкачиваться автоматом?
Или придется какой нибудь рефреш прикручивать для принудительной загрузки?


Все должно автоматом подкачиваться. Сейчас специально эксперимент провел. Повесил советник на H1, а в комментарий вывел цену закрытия Close[100] с M1. При этом для чистоты эксперимента оставил только файл истории H1. В комментарий успешно вывелась цена закрытия сотого бара с M1. После эксперимента проверил папку с файлами истории. Появился файл истории M1. Так что, думаю нет проблем, чтобы сов висел на H1, а работал с историей M1.
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

В общем советник мною чуть подправлен по входу в торговлю и вроде меньше проблем стало связанных с просадками (банкротством). Но всё равно их хватает конечно)))

На этом остановлюсь.

Будет что новое по организации корректного трейлинга - пишите на почту пожалуйста. Пока оставлю так, тесты более-менее его наличие подтверждают, а сливы там если происходят то по контр-движению рынка и просадке сверх депозита. Ну как обычно)))

Прилагаю фото тестов по котировкам за 4 месяца:
с Января до Мая 2017 года - архив котировок от тиковой мили (Tick Mill)

Спасибо вам за идеи, успехов!

На MQL официальном сайте есть тема посвящённая данному алгоритму, кому интересно - вы можете её найти в аналогичном на TradeLikeAPro профиле. Тема называется "Необходимо описать процедуру алгоритма" :).

BLACKJACKHOOKERS.mq4
BLACKJACKHOOKERS_TrailX.mq4
EURUSD_deposit_100_$.gif
EURUSD_deposit_1_000_$.gif
EURUSD_deposit_10_000_$.gif
GPBUSD_deposit_100_$.gif
GPBUSD_deposit_1_000_$.gif
GPBUSD_deposit_10_000_$.gif
README.txt
Настройки_тестов.txt

Изменено пользователем geratdc
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...