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

 
nuan:

意味着,它在同一秒内关闭订单,而不是在30分钟内。


我已经按照你的例子输入了代码


机器人不会因为其他原因而关闭,也就是说,它不会在止损点或盈利点关闭。


1 2011.07.29 00:00 购买 1 0.01 1.4328 1.3328 1.5328 0.00 1000.00
2 2011.07.29 00:01 收盘 1 0.01 1.4327 1.3328 1.5328 -0.10 999.90
3 2011.07.29 00:01 买2 0.01 1.4329 1.3329 1.5329 0.00 999.90
4 2011.07.29 00:01 close 2 0.01 1.4326 1.3329 1.5329 -0.30 999.60
5 2011.07.29 00:01 买3 0.01 1.4328 1.3328 1.5328 0.00 999.60
6 2011.07.29 00:03 关闭 3 0.01 1.4327 1.3328 1.5328 -0.10 999.50
7 2011.07.29 00:03 购买 4 0.01 1.4329 1.3329 1.5329 0.00 999.50
8 2011.07.29 00:03 关闭 4 0.01 1.4329 1.3329 1.5329 0.00 999.50


把它全部放在start()函数的最末端。 你的业务应该摆在前面。

datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPosTime();
 
nuan:
用这个选项替换start()中的内容。
 datetime CloseTime;
//=====================
 int start(){

   if(TimeCurrent()-CloseTime > 30*60){CloseAllPos();CloseTime=TimeCurrent();}//Можно поставить в любом месте функции старт.
  return(0);
 }
//====================
 
forexnew:

我明白了。

如果你考虑以0元为起点开立一个账户,并将第1次充值作为充值。是否有可能以编程方式确定账户中的所有补货(包括第一次)?


:-Р

你在错误的方向上划船......:-)))

有一个函数

double AccountBalance( ) 

在它的帮助下,你可以通过在某个时间点关闭的交易来定义你的账户余额状态。

然后--我们假设你已经进入市场--你的账户上有浮动亏损,有未结头寸,然后你把资金存入你的账户...在这里,我们应该确定分割的数量(如果有的话),以纠正已开仓的数量(向上),以保持对缩减/利润的初始 "容忍度",例如,以资本的百分比点,从 "初始 "市场仓位的数量(分割前)计算。这个问题的解决方法是什么?

 
CloseTime 
Нужно задавать этот параметр? если да то как?
 
nuan:


不要。它是一个 "中间 "时间变量,总是等于最后的关闭时间。

操作时间的单位是秒。在你的情况下,它是30*60。
你可以用一些变量来代替30,比如,exstern int closetime = 30。
然后,时间会是这样的:closeetime*60。

 
charter:


不要。它是一个 "中间 "时间变量,总是等于最后的关闭时间。

操作时间的单位是秒。在你的情况下,它是30*60。
你可以用一些变量来代替30,比如,exstern int closetime = 30。
然后,时间会是这样的:closeetime*60。

刚刚尝试了同样的方法,是在身体的末端开始....。我不明白为什么会变成这样。还有其他选择吗?
 
Roman.:


:-Р

你在错误的方向上划船......:-)))

有一个函数

在它的帮助下,你可以确定你的交易账户在某个时间点关闭交易的平衡状态。

然后--我们假设你已经进入市场--你的账户上有浮动亏损,有未结头寸,然后你把资金存入你的账户...在这里,我们应该确定拆分的数量(如果有的话),以修正开仓的数量(向上),以保持对缩减/利润的初始 "容忍度",例如,以资本的百分点计算,"初始 "市场头寸的数量(拆分前)就是从这里计算的。这个问题的解决方法是什么?


如果你根据指定的风险初步确定了StartBalance(起始余额)与StarLots(起始手数)的比例,那么就应该确定股权价值。

如果(AccountEquity()<StartBalance) 补仓=(AccountBalance()+(StartBalance-AccountEquity()))*新手/星级手数

这不包括AccountCredit()。当然,如果我对你的理解正确的话。

 
nuan:
刚刚尝试了同样的事情,是在身体的末端开始....。我不明白为什么会出现这种情况。也许有另一种选择?
寻找其他方面的错误。
这两个选项都应该是有效的。
 
非常感谢!
 

大家好。我有一个问题要问你。我需要找到最近的最大值和最小值。但是,它们应该在Open[0]的+-10点之内。

我现在是这样的。

for (int i=1;i<100;i++)

如果(High[i+1]<High[i] &&High[i]>High[i-1] break;

它可以找到最接近的最大值。

如果我加入比较High[i]>(Open[0]+0.0010)和High[i]<(Open[0]+0.0020),这就是它看起来的样子。

如果(High[i+1]<High[i] && High[i]>High[i-1] && High[i]>(Open[0]+0.0010) && High[i]<(Open[0]+0.0020) break;

程序获取了错误的最大值。问题出在哪里?

我还没有试过最低限度。