Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вопрос по коду
Пожалуйста, не обращайте внимания на это сообщение. Эта настройка сделала то, что мне было нужно. Спасибо, что начали помогать нам.
Я модифицировал советника для работы с несколькими методами. Я провел некоторые исследования, но не могу понять, как добавить название советника в поле комментариев при открытии ордера. Может ли кто-нибудь указать мне правильное направление.
Я надеюсь, что существует простая строковая команда, которую я могу интегрировать в любой советник, который я модифицирую, чтобы ордера были лучше организованы при запуске нескольких советников во время тестирования.
Спасибо за ваше время и понимание.
Вот один из немодифицированных разделов, который мне нужно изменить, чтобы ввести комментарий советника.
if(ObjectFind(BuyStop_TrendName) == 0)
{
SetObject("Active" + BuyStop_TrendName,
ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),
ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) + BuyStop_StepActive*Point,
ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),
ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) + BuyStop_StepActive*Point,
ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));
SetObject("Prepare" + BuyStop_TrendName,
ObjectGet(BuyStop_TrendName, OBJPROP_TIME1),
ObjectGet(BuyStop_TrendName, OBJPROP_PRICE1) - BuyStop_StepPrepare*Point,
ObjectGet(BuyStop_TrendName, OBJPROP_TIME2),
ObjectGet(BuyStop_TrendName, OBJPROP_PRICE2) - BuyStop_StepPrepare*Point,
ObjectGet(BuyStop_TrendName, OBJPROP_COLOR));
vA = NormalizeDouble(ObjectGetValueByShift("Active"+BuyStop_TrendName,0),Digits);
vM = NormalizeDouble(ObjectGetValueByShift(BuyStop_TrendName,0),Digits);
vP = NormalizeDouble(ObjectGetValueByShift("Prepare"+BuyStop_TrendName,0),Digits);
sl = vA - BuyStop_StopLoss*Point;
tp = vA + BuyStop_TakeProfit*Point;
if(Ask = vP && OrderFind(MagicBuyStop) == false)
if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp,"", MagicBuyStop, 0, Green) < 0)
Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);
if(Ask = vP && OrderFind(MagicBuyStop) == true &&
glbOrderType == OP_BUYSTOP)
{
OrderSelect(glbOrderTicket, SELECT_BY_TICKET, MODE_TRADES);
if(vA != OrderOpenPrice())
if(OrderModify(glbOrderTicket, vA, sl, tp, 0, Green) == false)
Print("Err (", GetLastError(), ") Modify BuyStop Price= ", vA,
" SL= ", sl, " TP= ", tp);
}
if(Ask < vP && OrderFind(MagicBuyStop) == true &&
glbOrderType == OP_BUYSTOP && AutoClose==true)
{
OrderDelete(glbOrderTicket);
}
}
[/code]
I am not sure of the logic but can I just input the CommentName in the following location? I have not tested this but it compiles fine.
[code]
if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp,"CommentName", MagicBuyStop, 0, Green) < 0)
Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);
Спасибо Coderguru за то, что вы с нами!
У меня вопрос по поводу оповещений.
Я хочу изменить тип оповещения в этом коде, чтобы он воспроизводил выбранный мной wav-файл, а не всплывающее окно "купи-продай". Просто проигрывать wav-файл при появлении фрактала.
Каким должен быть код. Я прикрепил индикатор sFractals alert.
if(PrevSignal <= 0 )
{
if(ExtDownFractalsBuffer[SIGNAL_BAR] > 0)
{
PrevSignal = 1;
Alert("sFractals (", Symbol(), ", ", Period(), ") - BUY!!!");
}
}
if(PrevSignal >= 0)
{
if(ExtUpFractalsBuffer[SIGNAL_BAR] > 0)
{
PrevSignal = -1;
Alert("sFractals (", Symbol(), ", ", Period(), ") - ПРОДАЕМ!!!");
}
}
Я не уверен в логике, но могу ли я просто ввести CommentName в следующем месте? Я не тестировал это, но компиляция проходит нормально.
if(OrderSend(Symbol(), OP_BUYSTOP, BuyStop_Lot, vA, 3, sl, tp,"CommentName", MagicBuyStop, 0, Green) < 0)
Print("Err (", GetLastError(), ") Open BuyStop Price= ", vA, " SL= ", sl," TP= ", tp);
Это будет работать нормально. Вы также можете поместить в это место строковую переменную.
Спасибо Coderguru за то, что вы с нами!
У меня вопрос по поводу оповещений.
Я хочу изменить тип оповещения в этом коде, чтобы он проигрывал wav-файл, который я выбираю, и не имел всплывающего окна купли-продажи. Просто проигрывать wav файл при появлении фрактала.
Каким должен быть код. Я прикрепил индикатор sFractals alert.
if(PrevSignal <= 0 )
{
if(ExtDownFractalsBuffer[SIGNAL_BAR] > 0)
{
PrevSignal = 1;
Alert("sFractals (", Symbol(), ", ", Period(), ") - BUY!!!");
}
}
if(PrevSignal >= 0)
{
if(ExtUpFractalsBuffer[SIGNAL_BAR] > 0)
{
PrevSignal = -1;
Alert("sFractals (", Symbol(), ", ", Period(), ") - ПРОДАЕМ!!!");
}
}Я думаю, что CodersGuru умер или что-то в этом роде. Он не появлялся здесь некоторое время.
В любом случае.... добавьте это утверждение:
PlaySound("alert.wav");
...., где "alert.wav" - это имя файла, который вы хотите воспроизвести.
Я думаю, что CodersGuru умер или что-то в этом роде. Он давно не появлялся.
В любом случае.... добавьте это утверждение:
PlaySound("alert.wav");
...., где "alert.wav" - имя файла, который вы хотите воспроизвести.Спасибо, что ответили на мое сообщение.
Я не уверен, где в коде нужно вставить PlaySound("alert.wav");.
Могу ли я просто удалить эту часть? Alert("sFractals(", Symbol(), ", ", Period(), ") - ПОКУПАТЬ!!!");
Или это должно быть что-то вроде этого?
PrevSignal = 1;
PlaySound("alert.wav");
Alert("sFractals (", Symbol(), ", ", Period(), ") - BUY!!!");
Да. Просто замените все оповещение на звук.
{
if(ExtDownFractalsBuffer[SIGNAL_BAR] > 0)
{
PrevSignal = 1;
PlaySound("alert.wav");
}
}
if(PrevSignal >= 0)
{
if(ExtUpFractalsBuffer[SIGNAL_BAR] > 0)
{
PrevSignal = -1;
PlaySound("alert.wav");
}
}Спасибо ryanklefas за помощь, теперь все работает так, как я хочу.
Спросите о сортировке
У меня есть таблица данных, двумерная, хранящаяся в двумерном массиве. Я хочу произвести некоторые манипуляции, например, отсортировать по любому столбцу из этой таблицы данных.
Функция ArraySort(), в инструкции, может сортировать массивы по 1-му измерению. Я не понимаю, как это может сработать для меня.
Есть ли какие-нибудь предложения по поводу сортировки таблиц данных в MetaTrader?
Эксперт Betwen
Здравствуйте,
Я хочу знать, есть ли способ общаться между советниками, допустим, у меня есть советник A в качестве основной стратегии
и советник B в качестве резервной стратегии.
Я размещаю их на 2 разных парах...
Я хочу, чтобы если советник A находится в просадке, запускался советник B...
когда суммарная прибыль советника A и советника B достигнет некоторой целевой точки...
закрыть все позиции советника A и советника B.
возможно ли это сделать?
Здравствуйте,
Я хочу знать, есть ли способ общаться между экспертами, допустим, у меня есть советник A в качестве основной стратегии
и резервный советник B в качестве резервной стратегии
Я размещаю их на двух разных парах...
Я хочу, чтобы если советник A находится в просадке, запускался советник B...
когда суммарная прибыль советника A и советника B достигнет некоторой целевой точки...
закрыть все позиции советника A и советника B.
возможно ли это сделать?Я думаю, глобальные переменные - это то, что вы ищете. Вы можете ознакомиться с ними в справочном разделе MetaEditor. Чтобы просмотреть текущие глобальные переменные, нажмите F3 в терминале MT4.