2008-8-4 09:32
TradeStar
哥哥姐姐们,怎么实现连续亏损N次后加仓啊:
哥哥姐姐们,怎么实现连续亏损N次后加仓啊:
有多少种实现方法?
最好的实现方法是什么?只能用“全局变量”吗?大家来谈谈把。。。
这个功能呢,想法上比较简单,但是用“全局变量”的话,会变得相当复杂,请问有没有好点的办法啊?
[[i] 本帖最后由 TradeStar 于 2008-8-4 09:47 编辑 [/i]]
2008-8-4 10:13
nopain
1、用序列变量来控制,不要用全局变量。
2、连续亏损后加仓不是一个好主意
2008-8-4 10:21
TradeStar
呵呵,对呀,用序列变量简单多了。。。
:—)
连续亏损后加仓不好的理由是啥嘛?这个大家是不是可以讨论一下呀?
2008-8-4 10:39
TradeStar
哥哥,是这样用吗?
-------------------------------------------
NumericSeries j(0);
j=亏损;
j=亏损;
j=亏损;
if(j==亏损 && j[1]==亏损 && j[2]==亏损)
{
Alert("你亏损三个咯");
}
2008-8-4 11:07
nopain
不是这样的,给您写一个模版吧
[code]
Vars
NumericSeries conFailureCnt(0);
Begin
If(BarStatus==0)
{
conFailureCnt = 0;
}else
{
conFailureCnt = conFailureCnt[1];
}
YourBuyCon = ?
YourSellShortCon = ?
If(YourBuyCon&&MarketPosition==0)
{
If(conFailureCnt > 3)
{
Buy(2,NextOpen,True);
}else
{
Buy(1,NextOpen,True);
}
}
If(YourSellShortCon&&MarketPosition==0)
{
If(conFailureCnt > 3)
{
SellShort(2,NextOpen,True);
}else
{
SellShort(1,NextOpen,True);
}
}
YourSellCon = ?
YourBuyToCoverCon = ?
If(MarketPosition==1 && YourSellCon)
{
If(PositionProfit < 0)
{
conFailureCnt = conFailureCnt + 1;
}else
{
conFailureCnt = 0;
}
sell(....);
}
If(MarketPosition==-1 && YourBuyToCoverCon )
{
If(PositionProfit < 0)
{
conFailureCnt = conFailureCnt + 1;
}else
{
conFailureCnt = 0;
}
BuyToCover(....);
}
End
[/code]
2008-8-19 09:13
mywcgo
请问上面模板中的conFailureCnt 什么意思,帮助文档里找不到
2008-8-19 09:21
TradeStar
是个自定义数值型序列值参数,用来贮存亏损交易的次数。。。
2008-8-19 11:17
mywcgo
谢谢了 这样我就能理解这个模板了:lol
2008-8-19 17:59
clmtw
从资金管理策略来说, 连续亏损后加仓一般不被认为是一种好的策略
2008-8-20 16:32
mywcgo
能不能请各位高手,把上面的模板修改一下,改成符合条件1,并且浮赢大于多少,加一次仓,符合条件1,浮赢大于多少,加第二次仓? 谢谢了 方便新手学习.
2008-8-21 08:48
nopain
基本上和上面的差不多,
把PositionProfit < 0 修改为PositionProfit > 5000,5000是您的指定的赢利值,这样就可以了
2008-8-21 17:09
mywcgo
请帮忙看看下面这个模板哪里出了问题:
Params
Numeric BuyLots(1);
Numeric SellLots(1);
Vars
NumericSeries conFailureCnt(0);
Numericseries X;
Bool Condition1;
Bool Condition2;
Bool Condition3;
Bool Condition4;
Begin
If(BarStatus==0)
{
conFailureCnt = 0;
}else
{
conFailureCnt = conFailureCnt[1];
}
Condition1 =
Condition2 =
Condition3 =
Condition4 =
X = 500
if (Condition1 && Condition3 && MarketPosition == 0)
{
Buy(BuyLots,Close,true);
}
if (marketposition == 1)
{
If(conFailureCnt == 1)
{
Buy(BuyLots,Close,true);
}
If(conFailureCnt == 2)
{
Buy(BuyLots,Close,true);
}
If(conFailureCnt == 3)
{
Buy(BuyLots,Close,true);
}
}
if (Condition2)
{
Sell(0,close,true);
conFailureCnt = 0;
}
if (Condition2 && Condition4 && MarketPosition == 0)
{
SellShort(SellLots,Close,true);
}
if (marketposition == -1)
{
If(conFailureCnt == 1)
{
SellShort(SellLots,Close,true);
}
If(conFailureCnt == 2)
{
SellShort(SellLots,Close,true);
}
If(conFailureCnt == 3)
{
SellShort(SellLots,Close,true);
}
}
if (Condition1)
{
BuyToCover(0,close,true);
conFailureCnt = 0;
}
If(MarketPosition <>0 )
{
If(ContractProfit > X)
{
conFailureCnt = conFailureCnt + 1;
}
}
End
我的设想是持仓后,每手盈利一超过X就加一仓,因为加了仓后每手盈利会降低,所以再次每手盈利达到X的时候,又可以加一手,不论多空.可是按照我这程序,执行的时候多单胡乱加仓,不管盈亏,空单从不加仓
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.