Сергей Криушин: 最新的版本--工作清晰--你可以点--当收盘手在同一方向打开时,你应该有某种延迟...开始在零点以上拖动......2-4个点,如果它直接回去......职责思考--箭头已经站了很久,但没有位置......而且,与以前相比,已经发出了更多的信号--嗯,这只是一个粗略的估计......。好吧,这仍然是最好的选择......再次感谢......别的东西是无声的 - aou-au谁还发现了什么......或不想给它带来厄运......))
//+------------------------------------------------------------------+//| Виртуальный стоп |//+------------------------------------------------------------------+void PutLable(conststring name="",datetime time=0,double price=0,constcolor clr=clrGreen)
{
//--- сбросим значение ошибкиResetLastError();
//--- Создаем меткуif(!ObjectCreate(0,name,OBJ_ARROW_LEFT_PRICE,0,time,price))
{
Print(__FUNCTION__,
": не удалось создать левую ценовую метку! Код ошибки = ",GetLastError());
return;
//--- установим цвет меткиObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим стиль окаймляющей линииObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
//--- установим размер меткиObjectSetInteger(0,name,OBJPROP_WIDTH,2);
}
}
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+bool isNewBar(string symbol,ENUM_TIMEFRAMES timeframe)
{
//---- получим время появления текущего бараdatetime TNew=datetime(SeriesInfoInteger(symbol,timeframe,SERIES_LASTBAR_DATE));
datetime m_TOld=0;
//--- проверка на появление нового бараif(TNew!=m_TOld && TNew)
{
m_TOld=TNew;
//--- появился новый бар!return(true);
Print("Новый бар!");
}
//--- новых баров пока нет!return(false);
}
//+------------------------------------------------------------------+//| Возвращает true, если появился новый бар для пары символ/период |//+------------------------------------------------------------------+bool IsNewBar()
{
//--- в статической переменной будем помнить время открытия последнего бараstaticdatetime last_time=0;
//--- текущее времяdatetime lastbar_time=SeriesInfoInteger(Symbol(),Period(),SERIES_LASTBAR_DATE);
//--- если это первый вызов функцииif(last_time==0)
{
//--- установим время и выйдем
last_time=lastbar_time;
return(false);
}
//--- если время отличаетсяif(last_time!=lastbar_time)
{
//--- запомним время и вернем true
last_time=lastbar_time;
return(true);
}
//--- дошли до этого места - значит бар не новый, вернем falsereturn(false);
}
//+------------------------------------------------------------------+//| Считаем лот в зависимости от полученного профита |//+------------------------------------------------------------------+doubleVolume(void)
{
double lot=Lots;
//--- Получим доступ к историиHistorySelect(0,TimeCurrent());
//--- Сделки в историиint orders=HistoryDealsTotal();
//--- Тикет последней сделки ulong ticket=HistoryDealGetTicket(orders-1);
if(ticket==0)
{
Print("Нет сделок в истории! ");
lot=Lots;
}
//--- Профит сделкиdouble profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
//--- Лот сделкиdouble lastlot=HistoryDealGetDouble(ticket,DEAL_VOLUME);
//--- Профит отрицательныйif(profit<0.0)
{
//--- Увеличиваем следующий лот
lot=lastlot*KLot;
Print(" Cделка закрыта по стопу! ");
}
//--- Приводим лот к минимальномуdouble maxvol=SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
if(lot<maxvol)
lot=maxvol;
//--- Если лот больше максимального то начальный лотif(lot>MaxLot)
lot=Lots;
//--- Возвращаем торговый объемreturn(lot);
}
//+------------------------------------------------------------------+//| Смотрим тип последней закрытой сделки |//+------------------------------------------------------------------+int LastDealType(void)
{
int type=0;
//--- Получим доступ к историиHistorySelect(0,TimeCurrent());
//--- Сделки в историиint orders=HistoryDealsTotal();
//--- Тикет последней сделки ulong ticket=HistoryDealGetTicket(orders-1);
//--- Нет сделок в историиif(ticket==0)
{
Print("Нет сделок в истории! ");
type=0;
}
if(ticket>0)
{
//--- Последняя сделка BUY if(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_BUY)
{
type=2;
}
//--- Последняя сделка SELLif(HistoryDealGetInteger(ticket,DEAL_TYPE)==DEAL_TYPE_SELL)
{
type=1;
}
}
//---return(type);
}
修正了MT5版本中的错误
谢谢你的更新...本周mt5做得很好...如果你从1000开始算起,超过10%......这是一张图片......今天有超过100人...我现在要看这个更新,我也想把mt4和cmilliona grid6结合起来https://www.mql5.com/ru/code/12971,看看它如何一起工作...)
最新的版本--工作清晰--你可以点--当收盘手在同一方向打开时,你应该有某种延迟...开始在零点以上拖动......2-4个点,如果它直接回去......职责思考--箭头已经站了很久,但没有位置......而且,与以前相比,已经发出了更多的信号--嗯,这只是一个粗略的估计......。好吧,这仍然是最好的选择......再次感谢......别的东西是无声的 - aou-au谁还发现了什么......或不想给它带来厄运......))
把这个策略的信号和我的马丁顾问粘在一起,这是从2015年1月到今天的结果
欧元兑美元。
USDCHF。
把这个策略的信号和我的马丁顾问粘在一起,这是从2015年1月到今天的结果
欧元兑美元。
USDCHF。
试图翻译RSI指标--没有用......显然,它与库不匹配......。
而其中CopyBuffer 在趋势定义块中丢失,而RSI有70和30的标准水平。
请告诉我在哪里写,或者谁能帮助我纠正顾问"}中的 两个错误。- 程序的意外结束 '{' - 不平衡的括号 TMA.mq4
请告诉我在哪里写,或者谁能帮助我纠正顾问"}中的两个错误。- 程序的意外结束 '{' - 不平衡的括号 TMA.mq4
请正确插入代码:在论坛上正确插入代码(我纠正了你的信息)。
补充:我还强烈建议使用代码样式器--它将有助于发现错误(与源代码一起工作:样式器--程序开发)。