//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 02.07.2013 |//| Описание : Выполняет корректирование ценовых уровней под STOPLEVEL. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование торгового инструмента |//| op - торговая операция |//| pp - цена открытия/установки |//| sl - ценовой уровень StopLoss |//| tp - ценовой уровень TakeProfit |//+----------------------------------------------------------------------------+void CorrectingPrice(string sy, int op, double& pp, double& sl, double& tp) {
if (sy=="" || sy=="0") sy=Symbol();
RefreshRates();
int di=MarketInfo(sy, MODE_DIGITS);
int msl=MarketInfo(sy, MODE_STOPLEVEL);
int sp=MarketInfo(sy, MODE_SPREAD);
double mp=MarketInfo(sy, MODE_POINT);
double pa=MarketInfo(sy, MODE_ASK);
double pb=MarketInfo(sy, MODE_BID);
double ds=NormalizeDouble(pp-sl, di);
double dp=NormalizeDouble(pp-tp, di);
if (msl==0) msl=2*sp;
switch (op) {
case OP_BUY:
pp=pa;
sl=pp-ds;
tp=NormalizeDouble(pp-dp, di);
if (sl>pp-msl*mp) sl=pp-msl*mp;
if (tp>0 && tp<pp+msl*mp) tp=pp+msl*mp;
break;
case OP_SELL:
pp=pb;
sl=NormalizeDouble(pp-ds, di);
tp=pp-dp;
if (sl>0 && sl<pp+msl*mp) sl=pp+msl*mp;
if (tp>pp-msl*mp) tp=pp-msl*mp;
break;
case OP_BUYLIMIT:
if (pp>pa-msl*mp) {
pp=pa-msl*mp;
sl=pp-ds;
tp=NormalizeDouble(pp-dp, di);
}
if (sl>pp-msl*mp) sl=pp-msl*mp;
if (tp>0 && tp<pp+msl*mp) tp=pp+msl*mp;
break;
case OP_BUYSTOP:
if (pp<pa+msl*mp) {
pp=pa+msl*mp;
if (sl>0) sl=pp-ds;
if (tp>0) tp=NormalizeDouble(pp-dp, di);
}
if (sl>pp-msl*mp) sl=pp-msl*mp;
if (tp>0 && tp<pp+msl*mp) tp=pp+msl*mp;
break;
case OP_SELLLIMIT:
if (pp<pb+msl*mp) {
pp=pb+msl*mp;
sl=NormalizeDouble(pp-ds, di);
tp=pp-dp;
}
if (sl>0 && sl<pp+msl*mp) sl=pp+msl*mp;
if (tp>pp-msl*mp) tp=pp-msl*mp;
break;
case OP_SELLSTOP:
if (pp>pb-msl*mp) {
pp=pb-msl*mp;
sl=NormalizeDouble(pp-ds, di);
tp=pp-dp;
}
if (sl>0 && sl<pp+msl*mp) sl=pp+msl*mp;
if (tp>pp-msl*mp) tp=pp-msl*mp;
break;
default:
Message("CorrectingPrice(): Неизвестная торговая операция!");
break;
}
}
如果有人知道,请告知。Forex4you上的Gepard 5.0专家顾问正在开启一些大减价的交易。我在哪里可以调整设置?
如果你想微调你的设置,你可以做一个历史检查,只要检查设置,选择一个预设的第一步,然后选择一个 停止,然后检查优化,顾问将运行所有的选项,改变获利和利润。
如果你的意思是不同,你需要通过调整设置来说明你的意思
如果指标是窗口化的,你如何在图表上显示箭头? 只能使用4个缓冲区。
对于图表,对不起,我一定是读错了。尽管你可以使用第二个指标,它使用第一个指标的计算结果
如果(ticketbuy>0)
{
返回。
}
它没有通过代码中的其他条件打开任何更多的订单,也就是说,它看到这一个>0,而我可能有几个订单打开。谢谢。
你好,先生们!问题。
如果TP应该是100,我如何下单?
误差130显示在欧元/美元对上。
也许我应该使用Kim的CorrectingPrice函数,但开盘价/定盘价是 什么?询问/出价
我如何使用这个功能?
今天我以-9.58的价格开仓交易黄金。然后他一整天都在做加法。他想要什么。
看看黄金的一个点的价格和价差,希望一切都会变得清晰。
提示:买入头寸以卖出价开仓,而买入价比卖出价小,其差价大小。只要你开了一个头寸,就会立即开出与点差相等的负数。因此,不是专家顾问需要什么,而是你需要学习基础知识。
你好,先生们!问题。
如果TP应该是100,我如何下单?
误差130显示在欧元/美元对上。
也许我应该使用Kim的CorrectingPrice函数,但开盘价/定盘价是什么?询问/出价
我如何使用这个功能?
拿到的应该是开盘价的100点,而不是100。这就是为什么你有一个错误。
你把开盘价,加上(买入)或减去(卖出)100个点,再乘以点,你就得到了买入价。在你向服务器发送你的交易指令之前,请确保你的取舍在你的经纪公司的Stop-Level限额之内。你的后续问题的答案就在这里。
采取应该等于开盘价的100点,而不是100。这就是为什么你有一个错误。
你把开盘价加上(买入)或减去(卖出)100个点,再乘以点,你就得到了买入价。在你向服务器发送你的交易指令之前,请确保你的取舍在你的经纪公司的Stop-Level限额之内。你的后续问题的答案就在这里。
谢谢你,但我知道你必须计算买入等的TP(Ask + TP * Point)。
事实证明,TP=100点并不是一下子就能设定的,比如说,在130点的时候,它就能发挥作用。 但如果我们在手动模式下进行,我们可以先设置一个订单,然后将TP收紧100点。
该经纪人的止损杠杆为0.00050。
也许,当打开TP时,它在没有任何点差的情况下计算,但在申报的价格上计算。虽然,这很荒唐。