int start(){if(! NevBar())return(0);//.......return(0);}bool NevBar(){staticint prevtime=0;if( prevtime==Time[0])return(false);
prevtime=Time[0];return(true);}
这就对了。而如果以其他价格开盘是可能的。我们应该使用其他机制。
如果一个符号和时间框架只能开一个头寸,我们必须控制开仓的数量。
int CountOrder[6];// Функция формирует массив с количеством открытых позиций по каждому виду ордеров.//===============================================================================int Order_Count_Calculate(string _Symbol,int _Magic,int _OP=-1){ArrayInitialize( Order_Count,0);for(int i =OrdersTotal()-1; i >=0; i--){if(!OrderSelect( i, SELECT_BY_POS, MODE_TRADES))continue;if(OrderSymbol()!= _Symbol)continue;if(OrderMagicNumber()!= _Magic)continue;
Order_Count[OrderType()]++;}if(_OP>=0)return( Order_Count[_OP]);return(0);}
externdouble Lots =0.9;//лотexterndouble StopLoss =70;externdouble DecreaseFactor =80;externdouble MaximumRisk =0.014;externdouble MaximumLots =100;//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+double GetSizeLot()//оптимизация лотов{double Lot = Lots;int cycle;int prof =0;int orders = HistoryTotal();// history orders totalint losses =0;// number of losses orders without a breakint vinn =0;int i = orders;//---- select lot size
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);//----if(AccountFreeMargin()<=14)
DecreaseFactor =14;//----if(AccountFreeMargin()>10000)
DecreaseFactor =60;//----if( DecreaseFactor >0&& orders > DecreaseFactor){//----for( cycle =1; cycle < DecreaseFactor; cycle++){
i--;//----if(OrderSelect( i, SELECT_BY_TICKET, MODE_HISTORY)==false){Print("Error in history!");break;}//----if(OrderCloseTime()>0){
prof = prof +OrderProfit();if(OrderProfit()<=0)
losses++;else
vinn++;}}if( prof <=0&& losses > vinn)
Lot =0.1;if( prof <=0&& vinn > losses)
Lot = Lot -(0.1* losses);if( prof >0&& losses > vinn){
Lot = Lot +(0.1*NormalizeDouble( vinn /4,0.1));}if( prof >0&& losses <= vinn ){
Lot = Lot +(0.1*NormalizeDouble( vinn /2,0.1));}}if(AccountFreeMargin()<300|| Lot <0.1)
Lot =0.1;if( Lot*1275>=AccountFreeMargin())
Lot =NormalizeDouble(AccountFreeMargin()* MaximumRisk /100,1);if( MaximumLots !=0&& Lot > MaximumLots)
Lot = MaximumLots;if( DecreaseFactor > orders)
Lot = Lots;return( Lot);}//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+ int start(){double glav1, sig1, glav2, sig2;int cnt, ticket, total;
glav1 =iCustom(NULL,0,"i_Trend",0,1);
sig1 =iCustom(NULL,0,"i_Trend",1,1);
glav2 =iCustom(NULL,0,"i_Trend",0,2);
sig2 =iCustom(NULL,0,"i_Trend",1,2);
total =OrdersTotal();// проверяем есть ли открытые позицииif( total <1){if(AccountFreeMargin()<(500* Lots))// проверяем денежки на счету{Print("Денег почти нет, осталось всего: ",AccountFreeMargin());return(0);}}// проверяем открытие позиции на покупкуif(( glav2< sig2)&&( glav1> sig1)){OrderSend(Symbol(),OP_BUY, GetSizeLot(),Ask,3,Ask- StopLoss*Point,"AlanMod expert",16384,0,Green);return(0);}// проверяем возможность открытия на продажуif(( glav2> sig2)&&( glav1< sig1)){OrderSend(Symbol(),OP_SELL, GetSizeLot(),Bid,3,Bid+ StopLoss*Point,"AlanMod expert",16384,0,Red);return(0);}for( cnt =0; cnt < total; cnt++){OrderSelect( cnt, SELECT_BY_POS, MODE_TRADES);if(OrderType()<=OP_SELL&&// проверка открытой позиции OrderSymbol()==Symbol())// проверка с нашего ли она графика{if(OrderType()==OP_BUY)// если открыта позиция на покупку{if( glav1< sig1)// проверяем закрывать или нет?{OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet);// закрылиreturn(0);// сваливаем}}else// если эта позиция на продажу{if( glav1> sig1)//проверяем закрывать иль нет?{OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet);// закрылиreturn(0);// сваливаем}}}}}
我没有找到这个页面。
也找不到它。这并不重要。
如果你在开盘价工作,在新酒吧开盘时检查就足够了。
这就对了。而如果以其他价格开盘是可能的。我们应该使用其他机制。
如果一个符号和时间框架只能开一个头寸,我们必须控制开仓的数量。
现在,通过检查必要的数组元素的值,我们知道有多少这种类型的位置被打开。
例如(设置买入止损的例子)。
(为了设置挂单,根本不需要设定的价格在报价流中。
你可以使用当前价格或任何价格,只要你坚持从当前价格到停止价格的停止水平。)
("欧元兑美元--趋势、预测和后果")
而不是
double priceBUY..... ....
输入你的公式
EH......非常感谢,尤其是所附的代码。这正是医生要求的!))))
也找不到它。这并不重要。
如果你在开盘价工作,在新酒吧开盘时检查就足够了。
这就对了。而如果以其他价格开盘是可能的。我们应该使用其他机制。
如果一个符号和时间框架只能开一个头寸,我们必须控制开仓的数量。
现在,通过检查必要的数组元素的值,我们知道有多少这种类型的位置被打开。
我在代码中这样做了,但我不明白这个数组,它如何检测在这个条形上是否有一个订单,并且它关闭了,我们将等待一个新的条形?
我如何解释?我可能说错了话,或者误解了功能....。
1) 如果我们在零点栏上开了一个订单,而且已经关闭,那么即使有信号要开,我们也不会在这个栏上开另一个订单,因为我们已经在这个栏上进行了交易,而且已经关闭。
在每个柱子上只允许开一个交易,如果这个柱子上有一个交易,我们就不开单,怎么办?
帮助人们.....))我已经开始崩溃了 \\\\\\\\>>>>
我的代码中有这样的内容,我不明白它是如何检测到在这个柱子上有一个订单,并且它关闭了,我们将不得不等待一个新的柱子?
我如何解释?我可能说错了话,或者误解了功能....。
1)如果我们在零点栏上开了一个订单,而且已经关闭,那么即使有信号要开,我们也不会在这个栏上开另一个订单,因为我们已经在这个栏上进行了交易,而且已经关闭;我们只是等待下一个栏。
在每个柱子上只允许开一个交易,如果这个柱子上有一个交易,我们就不开单,怎么办?
帮助人们.....))我已经开始崩溃了 \\\\\\\\>>>>
请看Igor KIM的主题"来自KimIV的有用功能"。其中一个函数将回答你的问题
我在这里试图写一个顾问...刚刚开始学习...错误4062 出现在测试器中......(ERR_STRING_PARAMETER_EXPECTED -4062- 预计参数类型为字符串)
我不知道在哪里可以修复它。谁能在当地 看一下这个代码:)
我在这里试图写一个顾问...刚刚开始学习...错误4062 出现在测试器中......(ERR_STRING_PARAMETER_EXPECTED -4062- 预计参数类型为字符串)
我不知道在哪里可以修复它。你们中的任何一个本地人 都可以通过代码查看:)
1) doubleNormalizeDouble( double value, int digits), and you have (vinn/2, 0.1)
2)OrderSend(Symbol(), OP_BUY, GetSizeLot(), Ask, 3, Ask - StopLoss*Point,NO TAKE_profit, "AlanMod expert", 16384, 0, Green)。
如何命名自定义指标 中的缓冲区?