//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА if(sl<MarketInfo(Symbol(),MODE_STOPLEVEL)) // ЕСЛИ СТОПОЛС МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
sl= MarketInfo(Symbol(),MODE_STOPLEVEL);//СТОП ЛОССУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
修改止损位以获取利润
// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИif(tp<MarketInfo(Symbol(),MODE_STOPLEVEL)) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp= MarketInfo(Symbol(),MODE_STOPLEVEL);// ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
//---- ПРОВЕРКА НА РАЗРЕШЕНИЕ ТОРГОВ ПЕРЕД ОТКРЫТИЕМ ОРДЕРОВif(MarketInfo(Symbol(),MODE_TRADEALLOWED)==true)
{// начало есл торговля разрешена/*
куча проверок на условия открытия и само открытие ордеров
*/
} // КОЕНЦ ПРОВЕРКИ НА РАЗРЕШЕНИЕ ТОРГОВЛИelse//ИНАЧЕ ЕСЛИ ТОРГОВЛЯ НЕ РАЗРЕШЕНА
{ // НАЧАЛО ЭЛС ЕСЛИ ТОРГИ НЕ РАЗРЕШЕНЫ Print("ТОРГИ НЕ РАЗРЕШЕНЫ- ПЫТАТЬСЯ ОТКРЫТЬ ОРДЕРА НЕ БУДЕМ");
} // КОЕНЦ ЭЛС ЕСЛИ ТОРГИ НЕ РАЗРЕШЕНЫ
if(lot<Min_Lot) lot=Min_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ МЕНЬШЕ ЧЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ЛОТ ПРИСВАЕМАЕМ МИНИМАЛЬНЫЙ ЛОТ У БРОКЕРАif(lot>Max_Lot) lot=Max_Lot; //ЕСЛИ ЛОТ ПОЛУЧИЛСЯ БОЛЬШЕ ЧЕМ МАКСИМАЛЬНЫЙ ЛОТ У БРОКЕРА ТО ОЛТ ПРИСВАЕВАЕМ МАКС ЛОТ У БРОКЕРА
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА if(sl<MarketInfo(Symbol(),MODE_STOPLEVEL)*1.5) // ЕСЛИ СТОПОЛС МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
sl= MarketInfo(Symbol(),MODE_STOPLEVEL)*1.5;//СТОП ЛОССУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИif(tp<MarketInfo(Symbol(),MODE_STOPLEVEL)*1.5) // ЕСЛИ ПРОФИТ МЕНЬШЕ ЧЕМ МИНИМАЛЬНО ДОПУСТИМЫЙ УРОВЕНЬ ЕГО УСТАНОВКИ ТО
{
tp= MarketInfo(Symbol(),MODE_STOPLEVEL)*1.5;// ПРОФИТУ ПРИСВАЕВАЕМ МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ ЕГО УСТАНОВКИ
}
MakarFX ,这个绑定的功能是什么:它执行什么功能?
输入 int BarTrade = 5; // 我理解为这是5的跟踪期数。
int TimeBarTrade=BarTrade*Period()*60; // 我怎么理解? 为什么要乘以60?
MakarFX ,这个绑定的功能是什么:它执行什么功能?
输入 int BarTrade = 5; // 我理解为这是5的跟踪期数。
int TimeBarTrade=BarTrade*Period()*60; //如何理解? 为什么要乘以60?
巴氏贸易*周期()*60
条数*当前时间框架*60秒
即酒吧数量转换为秒
巴氏贸易*周期()*60
条数*当前时间框架*60秒
即转换为秒的条数
你可以这样做。
如果我们排除了与下列因素有关的错误
mode_stoplevel, mode_tradeallowed, mode_minlot, mode_lotstep, mode_maxlot
那么猫头鹰就不会打到服务器上。
Makar,非常感谢你指出需要做哪些检查,以避免困扰服务器和禁制EAJ。
像这样进行的检查
暂停的模式水平的停止
修改止损位以获取利润
检查贸易 授权
检查最大和最小手数
首先,我在变量中得到了最大手数和最小手数的值,像这样
然后在下面的某个地方,当我写下圣杯的时候,我检查一下
这是否正确,还是我错了?
我没有检查手数的变化,因为手数是按存款的百分比计算的,这个值乘以一个点,然后归一化 - 这个检查可以省略 - 对吗,或者我还是应该这样做?如果我们还需要检查,如何写这张支票?
所有这些检查的要点是始终有正确的止损、利润和手数的数值,所以我们一般可以开始开单。如果所有这些参数都没问题,专家顾问就不会打扰服务器;我的理解是否正确?
非常感谢你,Makar,告诉我应该做哪些检查以避免服务器和禁止EAJ。
//ПРОВЕРКА НА МОДЕ СТОП ЛЕВЕЛ- МИНИМАЛЬНЫЙ УРОВЕНЬ СТОПА
// ПРОВЕРКА ТЕЙК ПРОФИТА НА МИНИМАЛЬНО ДОПУСТИМУЮ ВЕЛИЧИНУ УСТАНОВКИ
由于滑移,这里可能有一个130的误差。
我想这样做
大家好,有没有人遇到过通过iHighest/iLowest 找到的图表上的悬空点的问题?
前言:我有极少的编程经验,我在用mql4写一个指标,它应该在图表上显示由if条件找到的点,并用线连接它们。从逻辑上讲,它能正确地寻找点,但画出来的时候有一个偏移,然后是2个小节,然后是3个小节。我怎样才能解决这个问题? 我也附上了带有代码的文件。
大家好,有没有人遇到过通过iHighest/iLowest找到的图表上的悬空点的问题?
前言:我有极少的编程经验,我在用mql4写一个指标,它应该在图表上显示由if条件找到的点,并用线连接它们。从逻辑上讲,它能正确地寻找点,但画出的点有偏移,然后是2条,然后是3条。我也附上了带有代码的文件。
点的绘制是正确的,没有偏移。
如果条件得到满足,并且iHighest/iLowest 大于或小于当前的High/Low。
它吸引了
正确绘制点,没有偏移
如果满足条件,并且iHighest/iLowest大于或小于当前的High/Low。
然后画出
所以,我想我开始意识到我的错误了)事实证明,为了直观地将这些点显示在正确的位置,我需要为myAZBuffer[n]、ExtLowBuffer[n]、ExtHighBuffer[n]输入一些单独的计数器而不是n? 但如何做到这一点呢?
不,你的理解是正确的。
该条件使用历史上的两个或三个小节。
这就是为什么当条件得到满足时,它在2-3个小节后画出。
不,你的理解是正确的。
该条件使用历史上的两个或三个小节。
这就是为什么当条件得到满足时,它在2-3个小节后画出。