Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пожалуйста, помогите мне переместить линию.
--------------------------------------------------------------------------------
Индикатор работает так, как и было задумано. Звуковой сигнал, когда цена касается линии, но я хочу расширить это. Я хочу сделать следующее:
Скопируйте индикатор ниже, затем сделайте 2 модификации:
модификация #1:
создайте линию stoploss1 (она уже есть) и переместите ее туда, где находится мой стоп-лосс, если у меня нет установленного стоп-лосса, переместите линию на 500 пунктов в сторону, чтобы предотвратить активацию сигнала тревоги.
модификация №2:
Создайте линию takeprofit1 (ее нет в коде) и переместите ее туда, где находится мой стоп-лосс, если у меня не установлен стоп-лосс, переместите линию на 502 пункта, чтобы предотвратить активацию сигнала тревоги. Также используйте различные звуковые оповещения.
В основном индикатор будет проверять, каковы мои стоп-лосс и тейк-профит, и будет двигаться по соответствующим ценам, если стоп-лосс и тейк-профит не установлены, линии будут перемещаться на 500, 502 пункта в сторону.
Таким образом, когда рынок достигнет моего профита или стоп-лосса, звук даст мне знать, когда я не смотрю на metatrader или сверну окно, и я смогу вернуться назад и посмотреть, какие другие настройки у меня могут быть.
Большое спасибо за помощь, брат.
//+------------------------------------------------------------------+
//| HLine Alert.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property indicator_chart_window
extern string LineName="Stoploss1";
extern color LineColor=Red;
extern int LineStyle=STYLE_SOLID;
extern int AlertPipRange=1;
extern string AlertWav="Alert2.wav";
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- индикаторы
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция деинициализации индикатора | |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted();
ObjectCreate(LineName, OBJ_HLINE, 0, 0, 0, Bid);
ObjectSet(LineName, OBJPROP_STYLE, LineStyle);
ObjectSet(LineName, OBJPROP_WIDTH, 2);
ObjectSet(LineName, OBJPROP_COLOR, LineColor);
double val = ObjectGet( LineName, OBJPROP_PRICE1);
if (Bid-AlertPipRange*Point = val) PlaySound(AlertWav);
//----
//----
return(0);
}
//+--------------------------------------------------------------
Вот версия MTF, которую я сделал для вас с оповещением
Здравствуйте...
...Я скачал ваш индикатор (с алертом) я исправил его...потому что...есть небольшая ошибка...
когда стрелка всплывает вверх, ярлык показывается вниз и наоборот...
поэтому я хотел бы знать, как объединить оба в один... и как установить отправку оповещений на
по электронной почте во всех TF.
Заранее спасибо.
пожалуйста, мне нужна помощь
пожалуйста, может ли кто-нибудь помочь мне с написанием кодов, я хочу разработать робота для стратегии скальпинга, которую я обнаружил
Ребята,
вот простой код для оповещения о пересечении и закрытии скользящей средней, как показано на прикрепленной картинке,
Мне кажется, что в выражении if что-то не так, пожалуйста, проверьте,
заранее спасибо.
//+------------------------------------------------------------------+
#property copyright "Non"
#property link "non"
#property indicator_chart_window
extern int Time_Frame = PERIOD_M5;
extern int MA_Period = 20;
extern int MA_Method = MODE_SMA;
extern int MA_applied_to = PRICE_CLOSE;
extern bool Enabled = true;
extern int WhatCorner=2;
int PrevAlertTime=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectDelete("Alart_Condition");
ObjectDelete("Alart_Setup");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int BarsCount=IndicatorCounted();
if (Enabled == false)
{
string Alart_Condition = "Alart Disabled";
ObjectCreate("Alart_Condition", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Alart_Condition", Alart_Condition , 12, "Comic Sans MS", Red);
ObjectSet("Alart_Condition", OBJPROP_CORNER, WhatCorner);
ObjectSet("Alart_Condition", OBJPROP_XDISTANCE, 1);
ObjectSet("Alart_Condition", OBJPROP_YDISTANCE, 1);
return (0);
}
// if (!Enabled) return (0);
if (Enabled == true)
{
string Alart_Setup = (GetMethodText1(MA_Method)+ (DoubleToStr(MA_Period,0))+")"+ GetMethodText(MA_applied_to)) ;
ObjectCreate("Alart_Setup", OBJ_LABEL, 0, 0, 0);
ObjectSetText("Alart_Setup", Alart_Setup , 12, "Comic Sans MS", Red);
ObjectSet("Alart_Setup", OBJPROP_CORNER, WhatCorner);
ObjectSet("Alart_Setup", OBJPROP_XDISTANCE, 1);
ObjectSet("Alart_Setup", OBJPROP_YDISTANCE, 1);
}
// if close of i < iMA && iMA < close of i-1 && last time alart .. then sell
for (int i=Bars;i>=1;i--)
{
double m = iMA(NULL,Time_Frame,MA_Period,0,MA_Method,MA_applied_to,i);
if ((CurTime() - PrevAlertTime > 20) && Close < m && m < Close)
{
Alert ("Sell " + Symbol());
PlaySound ("alert.wav");
PrevAlertTime=CurTime();
return(-1);
}
// if close of i-1 < iMA && iMA < close of i && last time alart .. then buy
if ( (CurTime() - PrevAlertTime > 20) && Close < m && m < Close )
{
Alert ("Buy "+ Symbol());
PlaySound ("alert.wav");
PrevAlertTime=CurTime();
return(-1);
}
}
//----
//----
return(0);
}
string GetMethodText1(int MA_Method)
{ switch(MA_Method)
{
case 0 : return("SMA("); break;
case 1 : return("EMA("); break;
case 2 : return("SMMA("); break;
case 3 : return("LWMA("); break; }
}
string GetMethodText(int MA_applied_to)
{
switch(MA_applied_to)
{case 0: return("C"); break; // Close
case 1: return("O"); break; // Open
case 2: return("H"); break; // High
case 3: return("L"); break; } // Low
}
//+------------
Помогите со скриптом
Привет...
Я полный новичок в кодировании, поэтому мне интересно, может ли кто-нибудь сказать, что не так с этим скриптом...
Я продолжаю получать ошибку 4109 ERR_TRADE_NOT_ALLOWED... сообщение в MT4 "Invalid price 1.48770000 for OrderSend function" Но я не могу понять почему... Так что, пожалуйста, помогите мне...
{
double High1;
double Low1;
double TP = 50;
double SL = 50;
int Lots = (((AccountBalance()/15)/50)/10);
//----
{
High1 = iHigh(NULL, PERIOD_D1, 0);
Low1 = iLow(NULL, PERIOD_D1, 0);
double Buy = High1*Point;
double Sell= Low1*Point;
Print(Buy);
Print(Sell);
}
//----
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,Buy,NULL,Ask-SL*Point,Ask+TP*Point);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Sell,3,Bid+SL*Point,Bid-TP*Point);
Alert (GetLastError());
}
//----
return(0);
}Помогите
По крайней мере, теперь я разобрался с проблемой запрета торговли...
Но теперь я продолжаю получать ошибку"недействительные стопы". Кто-нибудь может просветить меня здесь...? Я не понимаю, что здесь не так...
Заранее спасибо...
{
double High1;
double Low1;
int TP = 50;
int SL = 50;
int Lots = (((AccountBalance()/15)/50)/10);
//----
{
High1 = iHigh(NULL, PERIOD_D1, 0);
Low1 = iLow(NULL, PERIOD_D1, 0);
Print(High1);
Print(Low1);
}
//----
{
OrderSend(Symbol(),OP_BUYSTOP,Lots,High1,NULL,Ask-SL*Point,Ask+TP*Point);
OrderSend(Symbol(),OP_SELLSTOP,Lots,Low1,NULL,Bid+SL*Point,Bid-TP*Point);
Alert (GetLastError());
}
//----
return(0);
}Ограничить количество сделок до....
Я пытаюсь добавить код к советнику, который будет ограничивать количество сделок в день только двумя (2). Только ОДНА длинная сделка и ОДНА короткая сделка в день. Вот код, который у меня есть на данный момент, но при обратном тестировании он не работает.
Можете ли вы мне помочь?
datetime LongTrade=0;
datetime ShortTrade=0;
if(countOrders(OP_BUY,magic)==0 && LongTrade!=iTime(NULL,PERIOD_D1,0))
{
OrderSend(Symbol(),OP_BUY,lots,Ask,0,Bid-stop_loss*Point,lTP,comment + "lTP",magic);
LongTrade=iTime(NULL,PERIOD_D1,0);
return(0);
}
--------------------
if(countOrders(OP_SELL,magic)==0 && ShortTrade!=iTime(NULL,PERIOD_D1,0))
{
OrderSend(Symbol(),OP_SELL,lots,Bid,0,Ask+stop_loss*Point,sTP,comment + "sTP",magic);
ShortTrade=iTime(NULL,PERIOD_D1,0);
return(0);
}
СПАСИБО.
Я пытаюсь добавить код к советнику, который ограничит количество сделок, совершаемых им в день, только двумя (2). Только ОДНА длинная сделка и ОДНА короткая сделка в день. Вот код, который у меня есть на данный момент, но при обратном тестировании он не работает. Можете ли вы мне помочь?
Заменить
datetime LongTrade=0;
datetime ShortTrade=0;
на
static datetime LongTrade=0;
static datetime ShortTrade=0;
Помогите с этим советником и индикатором, пожалуйста
Я новичок, поэтому привет, как вы можете видеть, мне не везет с этим.
У меня есть этот индикатор (Гистограмма/просматривает 300 баров назад, но он перерисовывается НАМНОГО чаще. Может ли кто-нибудь предложить индикатор, который еще не будет делать ту же работу. Это все, если вы можете помочь, это было бы фантастическим.
С уважением, CharlieC
histoind.mq4
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 LawnGreen
string gs_unused_124 = "";
bool gi_unused_132 = FALSE;
extern int RISK = 3;
extern int CountBars = 300;
double g_ibuf_144[];
double g_ibuf_148[];
int init() {
IndicatorBuffers(2);
SetIndexStyle(0, DRAW_ARROW);
SetIndexArrow(0, 234);
SetIndexStyle(1, DRAW_ARROW);
SetIndexArrow(1, 233);
SetIndexBuffer(0, g_ibuf_144);
SetIndexBuffer(1, g_ibuf_148);
Comment();
return (0);
}
int start() {
int li_12;
double ld_52;
double ld_60;
double ld_68;
double ld_76;
double ld_84;
double ld_92;
double ld_100;
double lda_108[50000];
SetIndexDrawBegin(0, Bars - CountBars + 11 + 1);
SetIndexDrawBegin(1, Bars - CountBars + 11 + 1);
int l_ind_counted_8 = IndicatorCounted();
int li_20 = RISK * 2 + 3;
double ld_36 = RISK + 67;
double ld_44 = 33 - RISK;
int l_period_24 = li_20;
if (Bars <= 12) return (0);
if (l_ind_counted_8 < 12) {
for (int li_0 = 1; li_0 <= 0; li_0++) g_ibuf_144[CountBars - li_0] = 0.0;
for (li_0 = 1; li_0 <= 0; li_0++) g_ibuf_148[CountBars - li_0] = 0.0;
}
for (int li_4 = CountBars - 11 - 1; li_4 >= 0; li_4--) {
li_12 = li_4;
ld_76 = 0.0;
ld_84 = 0.0;
for (li_12 = li_4; li_12 <= li_4 + 9; li_12++) ld_84 += MathAbs(High[li_12] - Low[li_12]);
ld_76 = ld_84 / 10.0;
li_12 = li_4;
ld_68 = 0;
while (li_12 < li_4 + 9 && ld_68 < 1.0) {
if (MathAbs(Open[li_12] - (Close[li_12 + 1])) >= 2.0 * ld_76) ld_68 += 1.0;
li_12++;
}
if (ld_68 >= 1.0) ld_92 = li_12;
else ld_92 = -1;
li_12 = li_4;
ld_68 = 0;
while (li_12 < li_4 + 6 && ld_68 < 1.0) {
if (MathAbs(Close[li_12 + 3] - Close[li_12]) >= 4.6 * ld_76) ld_68 += 1.0;
li_12++;
}
if (ld_68 >= 1.0) ld_100 = li_12;
else ld_100 = -1;
если (ld_92 > -1.0) l_period_24 = 3;
иначе l_period_24 = li_20;
если (ld_100 > -1.0) l_period_24 = 4;
иначе l_period_24 = li_20;
ld_52 = 100 - MathAbs(iWPR(NULL, 0, l_period_24, li_4));
lda_108[li_4] = ld_52;
g_ibuf_144[li_4] = 0;
g_ibuf_148[li_4] = 0;
ld_60 = 0;
if (ld_52 < ld_44) {
for (int li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) {
}
if (lda_108[li_4 + li_16] > ld_36) {
ld_60 = High[li_4] + ld_76 / 2.0;
g_ibuf_144[li_4] = ld_60;
}
}
if (ld_52 > ld_36) {
for (li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) {
}
if (lda_108[li_4 + li_16] < ld_44) {
ld_60 = Low[li_4] - ld_76 / 2.0;
g_ibuf_148[li_4] = ld_60;
}
}
}
return (0);
}
CharlieC
Пока я здесь, кто-нибудь может поставить на него звуковое оповещение (Darn Cheeky Ay, for a Newbeeee) эта штука заставляет делать забавные вещи.
Извините
CharlieC