[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 214

 

下午好。我写了一个函数,应该返回一个订单开仓时的条数

int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice() ) t=OrderOpenPrice();
}
}

return (iBarShift(Symbol(),Period(),t,true));
}

然而,它总是返回-1。我在哪里犯了错误?提前感谢。

 
first_may:

下午好。我写了一个函数,应该返回一个订单开仓时的条数。

int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice() ) t=OrderOpenPrice();
}
}

return (iBarShift(Symbol(),Period(),t,true));
}

然而,它总是返回-1。我在哪里犯了错误?提前感谢。

也许它是这样的。

返回(iBarShift(Symbol(),Period(),t));也就是说,没有真。

 
first_may:

下午好。我写了一个函数,应该返回一个订单开仓时的条数。

int BarLastOpenPose()
{
datetime t;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()>1) continue;
if (t<OrderOpenPrice() ) t=OrderOpenPrice();
}
}

return (iBarShift(Symbol(),Period(),t,true));
}

然而,它总是返回-1。我在哪里犯了错误?预先感谢你。

t变量被指定为开盘价,尽管它被声明为一个整数。

 
Vinin:

变量t被指定为开盘价,尽管它被声明为一个整数。

对了,我本想写OrderOpenTime(),但写成 OrderOpenPrice()
 
谢谢你,我意识到了我的错误。
 

你如何描述这样一种情况?



阿凡达
13
4absinth 25.09.2011 19:23

请告知。

如果当日第一个5分钟条形图的极值(例如,高点)与当日(日线)的极值重合,那么我们就做一些事情。 你会如何描述它呢?


罗杰 25.09.2011 20:25 更正 |删除
如果(MathAbs(High[1]-iHigh(NULL,PERIOD_D1,0))<Point)
 

帮助好心人!!。


阿凡达
1
垂头丧气 25.09.2011 19:34

亲爱的资源使用者,你们好

请帮助,谁面临着读/写一个真实的数字到一个文件。

任务是从文件中读取余额,如果当前的余额更多 - 覆盖文件。

问题是,它总是输出0(零)。

在写/读整数时,我没有发现这样的问题。

以下是代码。

双重平衡。

int file_handle_bala;

file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_READ) 。
//复制位置,在空文件的情况下 - position = 0
如果(FileSize(file_handle_bala)>0)
{
balance=FileReadDouble(file_handle_bala,DOUBLE_VALUE)。
Alert(balance); ------------------------------------- 这里应该写上零,尽管之前保存的余额应该写在这里
FileClose(file_handle_bala)。
如果(AccountBalance()>balance) ------------------------------------,这条规则不起作用,因为下面的警报没有输出任何东西
{
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE)。
balance=AccountBalance()。
警报(平衡)。
FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE)。
FileClose(file_handle_bala)。
}
}
否则 // 如果文件是空的
{
FileClose(file_handle_bala); //首先,关闭打开的文件
file_handle_bala=FileOpen("file_bala.dat",FILE_BIN|FILE_WRITE); //打开进行写入。
balance=AccountBalance()。
FileWriteDouble(file_handle_bala,balance,DOUBLE_VALUE)。
FileClose(file_handle_bala)。
}

先前非常感谢!!!。


阿凡达
2222
Roger 9/25/2011 20:22

注意这一行

FileWriteInteger(file_handle_bala,balance,DOUBLE_VALUE)。


3461
Zhunko 25/09/2011 20:27

1.你应该更加尊重和友好地发布你的代码。

2.你正试图写一个8字节的整数。MQL4没有这样的数据类型。

 

\What did I do wrong? 为什么有这么多错误?(我需要知道指标在过去10个柱子中的最大值)。提前感谢。

 

大家好!

我正在写我的第一个机器人,同时我也在熟悉MQL。我在测试过程中遇到了以下问题。

订单OP_BUYSTOP在下单后立即被执行,尽管从图表上看,价格没有达到目标值(见下图)。

时间类型秩序卷宗价格S / LT / P盈利平衡
12011.09.19 02:10买停10.0176.93576.73577.135
22011.09.19 02:10购买10.0176.93576.73577.135

USDJPY,M5(视觉)

日期 2011.09.19

时间 02:15

开放 76.903

76.909

76.890

关闭 76.890

66

我正在测试所有的虱子。

也许我没有正确理解OP_BUYSTOP命令?如果价格超过一定的值,就要买,对吗?

下面是一段下单的源代码

int ticket=OrderSend(Symb, OP_BUYSTOP, Lot, Price, 0, SL, TP)。

提前非常感谢大家!

 
Shniperson:

\What did I do wrong? 为什么有这么多错误?(我需要知道过去10个柱子的指标的最大 值)。提前感谢。

你正在声明函数Hi。

double Hi(int pos=0)
在start()函数中