tpg_k156: стоп линия устанавливается при открытии и далее не модифицируется. Как расчитать лот имея -50пп возможности просадки и размер средств в 250 баксов из 1000.
if (lbBuy) { if (ExistPositionByOP(OP_SELL)CloseAllPositions(); if (!ExistPositionByOP(OP_BUY)){ if (StopLoss!=0) ldStop=Ask-StopLoss*Point; if (TakeProfit!=0) ldTake=Ask+TakeProfit*Point; OpenPosition(OP_BUY, ldStop, ldTake); } } if (lbSell) { if (ExistPositionByOP(OP_BUY)CloseAllPositions(); if (!ExistPositionByOP(OP_SELL)){ if (StopLoss!=0) ldStop=Bid+StopLoss*Point; if (TakeProfit!=0) ldTake=Bid-TakeProfit*Point; OpenPosition(OP_SELL, ldStop, ldTake); } } }
我似乎记得,你是通过设置与以前相同的参数来修改订单的!
最有可能的是。我需要审查代码。虽然我有一个检查,以确保没有这样的修改被重复,而且正常化的双重性也成立。谢谢你!我会仔细检查的。
我想再次请教各位论坛用户。你能告诉我如何为脚本实现一个计算开单手数的函数吗?有两个输入参数:以点为单位的最大缩水和可用资金量。
例如,我们的账户上有1000英镑。我们输入可用资金为250美元,最大提款量为50点。在这些数据的基础上,我们以最大的手数开立订单,如果价格没有向我们的方向移动,它将能够在-50点时存活,而在-51点时,它将因止损而自行关闭。
下午好。
我在使用策略测试器时 遇到了麻烦。我加载报价,仍然是在一分钟的时间框架内,测试只发生在一定的时间间隔内,而且里面的数据可能有空隙...我想在一分钟的时间框架内测试专家顾问,时间至少为一年,而不是一周(
我想再次请教各位论坛用户。你能告诉我如何为脚本实现一个计算开单手数的函数吗?有两个输入参数:以点为单位的最大缩水和可用资金量。
例如,我们的账户上有1000英镑。我们输入可用资金为250美元,最大提款量为50点。在这些数据的基础上,我们以最大的手数开立订单,如果价格没有向我们的方向移动,它将能够在-50点时存活,而在-51点时,它将因止损而自行关闭。
你需要创建一个专家顾问,而不是一个脚本。脚本可以根据每笔交易的可用资金比例计算出手数,并以至少等于允许的最低限度的止损开仓。如果你想在每一个刻度上追踪止损,你需要一个带有追踪止损的专家顾问。
tpg_k156:
一般来说,我根本不是大师,也许这就是我不明白的原因,但在你的条件下,手数是由该位置的资金量决定的,即250英镑。此外,存款的可能缩减将由止损环决定。 以点为单位的最小止损水平在工具的属性中指定。如果你使用它,你可以确定存款的提取。如果你设置了一个较大的止损,可能的缩减就会增加。如果即使是最小的止损,也会获得不允许的存款缩减,我们就减少头寸的大小,不是250,而是例如200。стоп линия устанавливается при открытии и далее не модифицируется. Как расчитать лот имея -50пп возможности просадки и размер средств в 250 баксов из 1000.
你好,请帮助我重新制作仓位,在蜡烛收盘时开仓。EA是基于趋势或阻力线交易的
//+------------------------------------------------------------------+
//开设一个职位|//+------------------------------------------------------------------+
void OpenPositions() {
bool lbBuy=False, lbSell=False;
double ldStop=0, ldTake=0;
if ((Ask>gdPrevAsk && Ask>=gdUpPrice && ebBuyFromUp)
|| (Ask<gdPrevAsk && Ask<=gdDnPrice && ebBuyFromDn)) lbBuy=True;
if ( (Bid>gdPrevBid && Bid>=gdUpPrice && !ebBuyFromUp)
|| (Bid<gdPrevBid && Bid<=gdDnPrice && !ebBuyFromDn)) lbSell=True;
if (lbBuy) {
if (ExistPositionByOP(OP_SELL)CloseAllPositions();
if (!ExistPositionByOP(OP_BUY)){
if (StopLoss!=0) ldStop=Ask-StopLoss*Point;
if (TakeProfit!=0) ldTake=Ask+TakeProfit*Point;
OpenPosition(OP_BUY, ldStop, ldTake);
}
}
if (lbSell) {
if (ExistPositionByOP(OP_BUY)CloseAllPositions();
if (!ExistPositionByOP(OP_SELL)){
if (StopLoss!=0) ldStop=Bid+StopLoss*Point;
if (TakeProfit!=0) ldTake=Bid-TakeProfit*Point;
OpenPosition(OP_SELL, ldStop, ldTake);
}
}
}