问吧! - 页 105

 

给编码员的问题

你好

我写了一个警报,但它只在我用我的指标打开窗口时起作用。只有当我在图表窗口之间跳转时,换句话说,当我在图表时间段之间跳转时,它也会起作用。看来,指标在工作时不能计数。我怎样才能解决我的问题?需要帮助。这与指标计数有关吗?我是否应该在警报的参数 中做些什么?怎么做?

我是否应该使用类似的东西。

双重

? = ObjectGetValueByShift(string name, int shift))。

如果(???????????)

Alert("Pattern on " + Symbol() + " " + Period())。

普西奥

 

愚蠢的问题...

有谁知道? 试图创建一个最简单的独立项目,但却搞砸了。

输入。 (1)一对X和(2)一对Y的最后一个Tic值。

(都是CDF "对"...即3个字母的符号))

输出1:在屏幕上打印X-Y

输出2:在指标窗口中绘制X-Y的MA。

.不要问...LoL

 

提醒一次

你好。

请你写一个例子,说明Alert只有一次的代码。

当一个对象出现在图表上,你想有一次警报。

普西奥

 
Pucio:
你好。

请你写一个例子,说明Alert只有一次的代码。

当一个对象出现在图表上,你想有一次警报。

普西奥

也许你可以使用这段代码:https://www.mql5.com/en/forum/general

 

我有一个类似于 的指标。有谁知道如何把它的值传给EA?我试着用缓冲器,这种方式

double Trend[];

...

SetIndexBuffer(0,Trend);

...

Trend[0]=UpRating。

返回(0)。

}

我不知道这是否有效,但我知道所有指标的铭文已经消失了。对此有什么想法吗?

 

需要修改帮助

你好,交易员朋友

我需要对这段代码的帮助。

目前的功能 是按时间关闭第一笔订单和任何后续订单,这意味着在同一时间可能有超过2笔订单被关闭。

问题:我如何改变它,使其只按时间 关闭前两笔开仓订单。

这里的代码。

谢谢你的帮助

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

//|关闭条件类型2

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

空白的CheckCloseConditionType2()

{

int Orders[]。

int i, j;

ArrayResize(Orders, 0);

int cnt = OrdersTotal();

for (i=0; i < cnt; i++)

{

if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 继续。

如果(OrderSymbol() != Symbol())继续。

如果(OrderMagicNumber() != Magic) 继续。

int type = OrderType()。

如果(type == OP_BUY || type == OP_SELL)

{

int size = ArraySize(Orders);

ArrayResize(Orders, size+1)。

Orders = OrderTicket();

}

}

//-----

size = ArraySize(Orders);

for (i=0; i < size; i++)

{

if (!OrderSelect(Orders, SELECT_BY_TICKET)) continue;

如果(OrderCloseTime() > 0) 继续。

datetime tm1 = OrderOpenTime();

for (j=i+1; j < size; j++)

{

if (!OrderSelect(Orders[j], SELECT_BY_TICKET)) continue;

如果(OrderCloseTime() > 0)继续。

datetime tm2 = OrderOpenTime();

如果(tm1 > tm2)

{

int ticket = Orders;

Orders = Orders[j];

Orders[j] = ticket。

}

}

}

//-----

for (i = size-1; i >= 1; i--)

{

double Profit = ArrayGetOrdersProfit(Orders);

if ((Profit >= TotalTakeProfit && TotalTakeProfit > 0) || (Profit >= Profit2Exit && Profit2Exit > 0)

{

Print("[Enter] Close by condition Type2");

string msg1 = "";

string msg2 = "";

双重P。

双重T.P = 0。

for (j=0; j < size; j++)

{

如果(Orders[j] == -1) 继续。

if (!OrderSelect(Orders[j], SELECT_BY_TICKET)) continue;

如果(OrderCloseTime() > 0) 继续。

如果 (StringLen(msg1) > 0) msg1 = msg1 + " + ";

msg1 = msg1 + "订单 " +Orders[j];

GetOrderProfit(Orders[j], P);

if (StringLen(msg2) > 0) msg2 = msg2 + " + ";

msg2 = msg2 +DoubleToStr(P, 2);

T.P += P。

}

Print("Close: " + msg1);

打印("利润。"+msg2 + " = " +DoubleToStr(T.P, 2))。

ArrayCloseOrders(Orders);

Print("[Exit] Close by condition Type2");

返回。

}

Orders = -1;

}

}

 

如何计算点子的数量

你好。

我意识到,在市场出现大的波动(上升或下降趋势)后。剩余的市场在某种程度上是有风险的交易。我正在尝试编程一个EA,以避免进入任何交易,比如说在一个大约90点的大动作之后。

我需要知道如何计算从早上8点(伦敦市场开盘)的第一个小节到当前小节的点数。如果市场已经移动了超过90点,我将不进行任何交易。

谁能写几行代码,给我一些线索?非常感谢,谢谢你。

 
yyc196:
你好。

我意识到,在市场走了一个大的动作(上升或下降趋势)之后。剩下的市场在某种程度上是有风险的。我正在尝试编程一个EA,以避免进入任何交易,比如说在一个大约90点的大动作之后。

我需要知道如何计算从早上8点(伦敦市场开盘)的第一个小节到当前小节的点数。如果市场已经移动了超过90点,我将不进行任何交易。

谁能写几行代码,给我一些线索?非常感谢,谢谢你。

如果需要,请先检查 你是否晚于早上8点。

if(Hour() < 8) return;[/PHP]

Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);

double Min = iLow(Symbol(), PERIOD_D1, 0);

int Range = (Max - Min) / Point;

if(Range > 90) return;

...

 

我试图给这个指标High_Low (Zigzag)V2增加一个新的功能,这样每当它形成一个新的高低点,ZZ就会提醒我。不知道哪里出了问题。在我的屏幕上没有显示出indi。有谁知道吗?请帮助我。我是编码新手,请完善我所做的工作,使indi能像我在上面所想的那样运行。以下是代码。

high_low_v2_zigzag_with_alert.mq4

附加的文件:
 

你好。

如何绘制一个矩形背景?我的意思是通过冷凝。我知道它使用ObjectCreate(),但我不知道该怎么写,我应该怎么做。