//+------------------------------------------------------------------+//| ZeroLevel.mq4 |//| VadimVP |//| poluyan@fxmail.ru |/*
Скрипт поставит TakeProfit и StopLoss у открытых ордеров на текущем
инструменте на уровень безубыточности.
Расчет ведется только для ордеров текущего инструмента.
Учитывает своп и комиссии. Работает при любых Digits.
Точность +/- размер спреда.
Об успешности изменений сообщит в диалоговом окне.
Проверьте, включена ли опция "разрешить советнику торговать".
*///| //+------------------------------------------------------------------+#property copyright "VadimVP"#property link "poluyan@fxmail.ru"//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start()
{
int kol=0;
int kolOK=0;
int i=0;
double lots=0;
double sum=0;
double sum1=0;
for (i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (OrderType()==OP_BUY)
{
lots=lots+OrderLots();
sum=sum+OrderLots()*OrderOpenPrice();
sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( ) ;
kol=kol+1;
}
if (OrderType()==OP_SELL)
{
lots=lots-OrderLots();
sum=sum-OrderLots()*OrderOpenPrice();
sum1=sum1+OrderProfit( )+OrderSwap( )+OrderCommission( ) ;
kol=kol+1;
}
}
double zeroprice=0;
if (lots!=0) zeroprice=sum/lots;
zeroprice = (MathRound(zeroprice*MathPow(10,Digits)))/MathPow(10,Digits);
//-----Alert ("!!! Пожалуйста дождитель окончания работы скрипта!");
int res = 0;
for (i=0; i<OrdersTotal(); i++)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
if (OrderSymbol()!=Symbol()) continue;
if (zeroprice>Ask)
{ if (OrderType()==OP_BUY) {if (zeroprice == OrderTakeProfit()) res=res+1; else { if (OrderModify(OrderTicket(),0,OrderStopLoss(),zeroprice,0,CLR_NONE)) res = res+1;} }
if (OrderType()==OP_SELL){if (zeroprice == OrderStopLoss()) res=res+1; else { if ( OrderModify(OrderTicket(),0,zeroprice,OrderTakeProfit(),0,CLR_NONE)) res = res+1;} } }
if (zeroprice<Bid)
{ if (OrderType()==OP_BUY) {if (zeroprice == OrderStopLoss()) res=res+1; else { if ( OrderModify(OrderTicket(),0,zeroprice,OrderTakeProfit(),0,CLR_NONE)) res = res+1;} }
if (OrderType()==OP_SELL){if (zeroprice == OrderTakeProfit()) res=res+1; else { if (OrderModify(OrderTicket(),0,OrderStopLoss(),zeroprice,0,CLR_NONE)) res = res+1;} } }
}
Alert ("***************************************************");
Alert ("Цена безубыточности "+DoubleToStr(zeroprice,Digits));
if (kol==res) Alert ("Все ордера успешно изменены! Точка безубыточности выставлена. ОК!"); elseAlert ("!!! Внимание!!! Не удалось изменить - " +(kol-res)+ " ордера из "+kol+" имеющихся");
Alert ("************ информация от ZeroLevel script ************");
//------return(0);
}
伙计们,请建议一个好的DC用于EA交易?
请分享信息,因为没有正常的DC,写猫头鹰有什么意义。
https://www.mql5.com/ru/market/product/1144
我有这个EA在市场上出售,售价1800美元,我在欧元兑美元上测试了一下,它能完美地赚钱,在其他货币对上,它的交易是零,我想它已经被调整到票据历史上了,这可能吗?
请分享信息,因为在没有任何正常DC的情况下,写一个猫头鹰有什么意义。
https://www.mql5.com/ru/market/product/1144
我有这个EA在市场上出售,售价1800美元,我在欧元兑美元上测试了一下,它能完美地赚钱,在其他货币对上,它的交易是零,我想它已经被调整到票据历史上了,这可能吗?
...你是根据什么语言规则来雕刻的?比如说。
:)
这就是问题所在,这就是需要正确 "制定 "的东西,我一直有很好的逻辑感,但已经有一个月没有做到了((((((((。
这就是问题所在,这就是需要正确 "制定 "的东西,我一直对逻辑没有问题,但我已经有一个月没能做到了((((((((。
帮助就在眼前!
"如果(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100 {"
在我看来,这个例子缺少括号:3个开头和2个结尾。我建议猫头鹰的作者检查所有的括号是否匹配。
我想这样写。
如果((iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)&&(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)){
"如果(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100&&iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100 {"
在我看来,这个例子缺少括号:3个开头和2个结尾。我建议猫头鹰的作者检查所有的括号是否匹配。
我想这样写。
如果((iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)&&(iCCI(Symbol,0,14,PRICE_TYPICAL,0)<100)){
试过了,在列表的末尾仍然显示一个错误
在这个例子中,我认为有3个开括号和2个闭括号丢失。我建议猫头鹰的作者检查所有括号是否匹配。
另外Notepad++也是一个好主意,在Notepad本身,你可以为mql4代码选择C++语法,在设置菜单中tabulation应该被设置为cp3(默认情况下似乎是4)。一目了然,有两个好处。
1.在整个代码中突出显示名称相似的变量
2. 突出显示代码中任何地方的成对括号(包括垂直突出显示,如果代码是Tab-aligned)。任何括号--圆括号、曲括号或方括号。
最后但并非最不重要的是,方便的查找和替换(也在选择中),标签(这 "标记"),一般来说是一个简单和不复杂的开发环境。如果你把它和元编辑结合起来,你得到的当然不是一个工作室,而是一个适度强大的串联。
祝大家今天愉快
我有一个脚本,在CU中下订单。
请帮助我改变它,以便考虑到传播。
例如,一对GBPCAD 差价为10 - 更多的订单是卖出 - 所以TP应该在1.7010,止损在1.7000(1.6999是理想的)。
谢谢你
建议如何将扰流板放入