如何编码? - 页 336

 
tkuan77:
嗨,mladen,很遗憾,我刚刚又重试了一次,还是没有成功。

是否有其他方法可以让我根据特定的时间来关闭我的交易?

请注意

睿安

我使用了这个代码。

extern bool UseCurrSymbol = false;

int init() { return(0); }

int deinit() { return(0); }

void start(void)

{

bool result;

if(OrdersTotal()>0)

{

if (TimeCurrent()>= StrToTime("07:00:00"))

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

double pBid=MarketInfo(OrderSymbol(),MODE_BID);

result = OrderClose(OrderTicket(),OrderLots(),pBid,3,Blue);

}

if (OrderType()==OP_SELL)

{

double pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

result = OrderClose(OrderTicket(),OrderLots(),pAsk,3,Red);

}

}

}

}

return;

}

来测试,它关闭了订单(见例子)。

附加的文件:
test_closed.gif  63 kb
 
mladen:
我使用了这段代码。
extern bool UseCurrSymbol = false;

int init() { return(0); }

int deinit() { return(0); }

void start(void)

{

bool result;

if(OrdersTotal()>0)

{

if (TimeCurrent()>= StrToTime("07:00:00"))

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

double pBid=MarketInfo(OrderSymbol(),MODE_BID);

result = OrderClose(OrderTicket(),OrderLots(),pBid,3,Blue);

}

if (OrderType()==OP_SELL)

{

double pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

result = OrderClose(OrderTicket(),OrderLots(),pAsk,3,Red);

}

}

}

}

return;

}

为了测试,它关闭了订单(见例子)。

嗨,mladen,谢谢。这个问题在我这边已经解决了。只是想问一下,你能不能给我解释一下你编码中的这几行字的目的是什么?

外部 bool UseCurrSymbol = false; and

如果(!UseCurrSymbol || OrderSymbol()==Symbol())

请注意

阮先生

 
tkuan77:
我的问题已经解决了。只是想问一下,你能向我解释一下你的代码中这几行的目的是什么吗?

外部 bool UseCurrSymbol = false; 和

如果(!UseCurrSymbol || OrderSymbol()==Symbol())

注意

阮先生

你使用了UseCurrSymbol变量和你代码中的那一行

我不得不制作这个变量,以便代码中使用与你的代码相同的变量。

 
mladen:
你使用了UseCurrSymbol变量,在你的代码中的那一行,我不得不让它成为变量,以便代码使用与你的代码相同的变量。

嗨,mladen,对不起,我从你之前提供的资料中得到了这部分的代码。

我的意思是,为什么我们需要把UseCurrSymbol设置为false,第二行的目的是什么 -->if (!UseCurrSymbol || OrderSymbol()==Symbol())

 
tkuan77:
我的意思是,为什么我们需要把UseCurrSymbol设置为false,第二行的目的是什么 -->if (!UseCurrSymbol || OrderSymbol()==Symbol()

我们不需要把它设置为假

如果你把它设置为 "true",那么只有当前符号会被检查到 订单。所以它允许你选择你想处理的订单。

 

大家好!

我有以下问题。

我想要一个icustom indi的值,例如iCustom(NULL,0, "MACD",12,26,9,0,i)在一个子函数中使用,例如。

double Mom(const double& series[], int period, int totcount, int index)

{

if (totcount<1 || period<1) return (EMPTY_VALUE);

if (indextotcount-1) return (EMPTY_VALUE);

return (series-series);

}

以获得 "iCustom(NULL,0, "MACD",12,26,9,0,i) "的动量......

当我用Mom(High,22,Bars,i)正常调用它时

这是在工作,但当我使用自定义indi而不是 "High "时,它当然就不工作了。

所以我的问题是,我怎样才能实现这一点,使代码工作?

感谢任何帮助!

再见,AT

 
at120:
嗨,伙计们

我有以下问题。

我想要一个icustom indi的值,例如iCustom(NULL,0, "MACD",12,26,9,0,i)在一个子函数中使用,例如。

double Mom(const double& series[], int period, int totcount, int index)

{

if (totcount<1 || period<1) return (EMPTY_VALUE);

if (indextotcount-1) return (EMPTY_VALUE);

return (series-series);

}

以获得 "iCustom(NULL,0, "MACD",12,26,9,0,i) "的动量......

当我用Mom(High,22,Bars,i)正常调用它时

这是在工作,但当我使用自定义indi而不是 "High "时,它当然就不工作了。

所以我的问题是,我怎样才能实现这一点,使代码工作?

感谢任何帮助!

再见,AT

at120

你在指标文件夹中是否有名为 "macd "的指标(我不是指内置的macd,而是一些自定义的macd)?如果有,请检查参数 是否正确

 

嗨,Mladen!

谢谢你的快速回放!

对不起,MACD是个不好的例子,可以用其他的例子,如自定义MACD或类似的东西。

我通过额外窗口和测试indi/output检查了输出,以设置正确的设置。

以确保 "iCustom(NULL,0, "myIndi",0,i) "有正确的参数。当然,它是被编译的,正确的文件夹,等等...。

我总是得到这样的错误(当我使用一个变量时)--例如

double mom1 = iCustom(NULL,0, "myIndi",0,i); -> mom(mom1,Bars,20,i)

-- "mom" --参数对话不允许,或者当我直接使用它时 -->

mom( iCustom(NULL,0, "myIndi",0,i),Bars,20,i)

错误:iCustom - 参数以参考形式传递,预计为变量

谢谢你的帮助和信息!

再见,AT

 
at120:
嗨,Mladen!

谢谢你的快速回放!

对不起,MACD是个不好的例子,可以用其他的例子,如自定义MACD或类似的东西。

我通过额外窗口和测试indi/output检查了输出,以设置正确的设置。

以确保 "iCustom(NULL,0, "myIndi",0,i) "有正确的参数。当然,它是被编译的,正确的文件夹,等等...。

我总是得到这样的错误(当我使用一个变量时)--例如

double mom1 = iCustom(NULL,0, "myIndi",0,i);-> mom(mom1,Bars,20,i)

-- "mom" --参数对话不允许,或者当我直接使用它时 -->

mom( iCustom(NULL,0, "myIndi",0,i),Bars,20,i)

错误:iCustom - 参数以参考形式传递,预计为变量

谢谢你的帮助和信息!

再见,AT

如果你使用简单的iCustom()调用,那么错误可能只发生在参数上。

你不能使用iCustom()作为mom()函数的参数(查看mom函数标题,你会看到mom()函数接受什么参数和什么类型的参数)。iCustom()的结果被定义为 "double"--它不能接受通过引用传递的数组的步伐。也可以看看这个主题:https://www.mql5.com/en/forum/173108- 也许有帮助

 

嗨,Mladen!

我认为我的iCustom的调用是正确的,因为在测试和正常情况下(导出 数据或作为indi使用)

到目前为止工作正常。我想问题出在你提到的双数/数组的值上。

当我现在使用一个

double mom1[]。

mom1 = iCustom(NULL,0, "myIndi",0,i)。

和比一个-> mom(mom1,Bars,20,i)。

--> "mom" --参数对话不允许

我怎样才能写对呢?

非常感谢,再见,AT