我对这门语言有点陌生,但我已经掌握了基础知识。
我想要的是:持有止损头寸并获利了结。
我想下100欧元的订单,我想将止损设置为10欧元,并将获利回吐设置为5欧元。但在我看来,OrderSend方法需要大量的下单,以及止损和获利的水平。
我的问题是:如何根据我想要设置的欧元金额来计算这些值?
我在网上搜索了一些lot-pip-etc计算,但毕竟我尝试的都不起作用。这就是我想要的计算方式:
double AmountToTradeInEuro = 100;
double AmountToTakeInEuro = 5;
double AmountToMaxLossInEuro = 10;
double Lots = AmountToTradeInEuro / MarketInfo(Symbol(), MODE_TICKVALUE);
double StopLossLevel = AmountToTakeInEuro / MarketInfo(Symbol(), MODE_TICKVALUE);
double TakeProfitLevel = AmountToMaxLossInEuro / MarketInfo(Symbol(), MODE_TICKVALUE);
OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, StopLossLevel, TakeProfitLevel);基本上我想知道如何计算100欧元的批次,以及如何计算失控和获利的水平。
而且止损和获利水平也很高吗?或者他们是不同的单位?
发布于 2018-05-19 02:06:30
欢迎使用MQL4!第一个问题是关于帐户货币-如果它是美元(或其他东西不是欧元)-你必须进行这样的转换。好的,让我来描述一下如何处理欧元余额。您可以根据定额损失计算批量-在这种情况下,您可以使用MarketInfo(_Symbol,MODE_TICKVALUE)获得滴答值。但你必须知道在哪里退出的价格水平(停车位),无论是1点子还是100点子。让我们假设这是100个滴答(相当于5位数经纪人的10个点子)。那么,你的批量是
double lot = AmountToMaxLoss / (MarketInfor(_Symbol, MODE_TICKVALUE) * stoploss),那么你必须对结果进行标准化:
double lot_step=MarketInfo(_Symbol, MODE_LOTSTEP); double result = lot_step * NormalizeDouble(lot / lot_step, 0);然后检查该result > MarketInfo(_Symbol, MODE_MINLOT)。关于收购利润--这可能是一种奇怪的方法,用货币而不是价格水平来等待你的收购利润目标,但如果你需要的话,方法是一样的。
https://stackoverflow.com/questions/50414012
复制相似问题