Выберите подходящую торговую стратегию и оформите подписку на нее в пару кликов. Все Сигналы сопровождаются подробной статистикой и графиками. Станьте Поставщиком торговых сигналов и продавайте подписку тысячам трейдеров по всему миру. Наш сервис позволит вам хорошо зарабатывать на прибыльной стратегии даже при небольшом стартовом капитале...
Данная функция предназначена для оформления исходного кода в соответствии с рекомендуемым стандартом. Это позволяет сделать код более читаемым, выглядящем профессионально. Грамотно оформленный код гораздо проще анализировать в последующем как его автору, так и другим пользователям. Для того чтобы запустить стилизатор, необходимо выполнить...
/-------------------------выход цены за пределы сигнальных уровней-----------------------------------------------------------------------------------------------
if(Bid>=priceA){ //если цена вышла за верхнею границу, то переместить сердцевину в новое положениеObjectsDeleteAll();
OR=0; //переменная ордера обнуляется для поиска ситуации открытия новых ордеров
}
if(Bid<=priceB){ //если цена вышла за нижнею границу, то переместить сердцевину в новое положениеObjectsDeleteAll();
OR=0; //переменная ордера обнуляется для поиска ситуации открытия новых ордеров
}
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
price=iHigh(Symbol(),PERIOD_M15,0); //Сигнальный уровень О(Сердцевина)ObjectCreate("UrO",OBJ_HLINE,0,0,price);
ObjectSet("UrO",OBJPROP_COLOR,clrYellowGreen);
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
priceA=price+30*Point; //Сигнальный уровень А(Максимум)ObjectCreate("UrA",OBJ_HLINE,0,0,priceA);
ObjectSet("UrA",OBJPROP_COLOR,clrDarkSlateBlue);
//----------------------------------------------------------------------------------------------------------------------------------------------------------------
priceB=price-30*Point; //Сигнальный уровень B(Минимум)ObjectCreate("UrB",OBJ_HLINE,0,0,priceB);
ObjectSet("UrB",OBJPROP_COLOR,clrOrangeRed);
/-------------------------выход цены за пределы сигнальных уровней-------------------------------------------------
if(Bid>=priceA){ //если цена вышла за верхнею границу, то переместить сердцевину в новое положениеObjectsDeleteAll();
OR=0; //переменная ордера обнуляется для поиска ситуации открытия новых ордеров
}
if(Bid<=priceB){ //если цена вышла за нижнею границу, то переместить сердцевину в новое положениеObjectsDeleteAll();
OR=0; //переменная ордера обнуляется для поиска ситуации открытия новых ордеров
}
//----------------------------------------------------------------------------------------------------------------
if((Bid>=priceA) ||(Bid<=priceB)){ //если цена вышла за одну из ГРАНИЦ, то удалить все объекты и очистить признак поиска
ObjectsDeleteAll();
OR=0; // А это для чего?????????????????
}
if((Bid>=priceA) ||(Bid<=priceB)){ //если цена вышла за одну из ГРАНИЦ, сдвинуть уровни
ObjectSet("UrO",OBJPROP_PRICE1,iHigh(Symbol(),PERIOD_M15,0)); // Так что ли???
Objectsset( аналогично)Objectsset( )
}
嗯...我没有想过要改变坐标。谢谢你的提示。
那么这里有一个问题。有一个进入点的条件。我通过静态变量 来实现它,这样它就不会在每次打勾时重置为零。那么,在图表的某些地方,机器人画出了一个入口点,那里没有水平线,因此,它们与MA的交叉点。请在你的测试器中执行该代码,你会看到问题所在。关于欧元兑美元。也许这个问题需要以不同的方式来实现?我在编程方面不是专家。
也就是说,图案已经出现,级别已经画好,机器人在等待其中一个级别的三个交叉点。
你怎么看这个问题?
嗯...我没有想过要改变坐标。谢谢你的提示。
那么这里有一个问题。有一个进入点的条件。我通过静态变量 来实现它,这样它就不会在每次打勾时重置为零。那么,在图表的某些地方,机器人画出了一个入口点,那里没有水平线,因此,它们与MA的交叉点。请在你的测试器中执行该代码,你会看到问题所在。关于欧元兑美元。也许这个问题需要以不同的方式来实现?我在编程方面不是专家。
也就是说,图案已经出现,级别已经画好,机器人在等待其中一个级别的三个交叉点。
你怎么看这个问题?
如果你不介意我这么说,谁需要它?看看机器人从哪里得到这些数值,你会发现问题的另一种解决方案。
帮助二号给出了一个错误!我已经用红色标出了错误,请帮助我!"。
//+------------------------------------------------------------------+
//|尾部停顿由Asyll.mq4完成。
//| Copyright 2017, MetaQuotes Software Corp.
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#财产版权 "Alibek Asyll"
#属性链接 "https://www.mql4you.com"
Extern int TralType = 0; // 0-Sar, 1-ATR, 2-HMA.
外部双SAR_Step = 0.02。
外置双SAR_Max = 0.2。
外置 int ATR_Period = 14;
外置双倍ATR_K = 2.0。
外来的MMA_Period = 16。
extern int int MMA_Method = 3;
外部 inttern MMA_Shift = 0;
datetime LBT;
//+------------------------------------------------------------------+
//|专家初始化功能|
//+------------------------------------------------------------------+
int init()
{
//---
//---
return(0);
}
//+------------------------------------------------------------------+
//|专家去初始化函数|
//+------------------------------------------------------------------+
int deinit()
{
//---
return(0);
}
//+------------------------------------------------------------------+
//|专家勾选功能|
//+------------------------------------------------------------------+
int start()
{
bool error = false。
如果(LBT!=Time[0] {
如果(OrdersTotal()>0) {
for (int i=o; i<OrdersTotal(); i++){
如果(OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol()&&OrderType()<2) {
double SL = OrderStopLoss();
如果(OrderType()==0) {
switch (TralType) {
case 0: SL = iSAR(NULL,0,SAR_Step,SAR_Max,0);
突破。
case 1: SL = High[1] - iATR(NULL,0,ATR_Period,1)*ATR_K;
突破。
case 2: SL = iCustom(NULL,0, "VininI_HMA_sound&",HMA_Period, HMA_Method, 3, HMA_Shift,false,false," ,1,0,0)。
突破。
}
如果(SL<OrderStopLoss())
SL = OrderStopLoss()。
}
如果(OrderType()==1){
switch (TralType){
情况0:SL = iSAR(NUll,0,SAR_Step,SAR_Max,0)。
突破。
case 1: SL = Low[1] + iATR(NULL,0,ATR_Period,1)*ATR_K;
突破。
case 2: SL = iCustom(NULL,0, "VininI_HMA_sound&",HMA_Period, HMA_Method, 2, HMA_Shift,false,false," ,1,0,0)。
突破。
}
如果(SL>OrderStopLoss())
SL = OrderStopLoss()。
}
如果(SL!=OrderStopLoss()){
如果(!OrderModify(OrderTicket(),OrderOpenPrice(), OrderTakeProfit(),0))
error = true。
}
}
if (!error)
LBT = Time[0]。
}
return()。
}
//+-------------------------------------------------------------------+
使用SRC按钮来插入代码 是有意义的。报告错误的文本。删除文字以加快审查员的工作。
调用这些函数需要时间--而且它们是空的。而且,如果没有它们,处理程序文本会更容易。计算大括 号。为了更容易做到这一点,可以试试工具菜单中的造型器。丢弃空行。
大家好。
我有一个简单的想法,我正试图在MT-4测试器上进行编码和测试
当以下条件同时存在时,可以开立订单
1.在一分钟的蜡烛开幕时
2 以我想要的价格
3.在期望的日期
4.价格值必须与当天的价值严格吻合。
例如,27日是一个一分钟的蜡烛图,开盘价 为1.2414
我需要建立一个订单1)在开放的蜡烛图2)在1.2414 3)但在27日之后的第二天。
例如,在28日,我们有一个1分钟的蜡烛图开在1.2438。
我必须开一个订单 1) 在开放的蜡烛图上 2) 在1.2438 3) 但在28日之后的第二天
例如,在12日,有一个1分钟的蜡烛图在1.2451处打开。
我需要建立一个订单1)在开放的蜡烛图2)在1.2451 3)但在12日之后的第二天。
为了实现这个想法,我开始研究一个数组的主题,并创建了两个一维数组,但它并不工作
如果你能修改我的代码以实现上述想法,我将非常感谢你。
我是个迟钝的人,所以如果你能写出正确的代码,而不是用文字解释,我将非常感激。
这样我就会更快地理解它。
以下是我的代码。
你好!这段代码的目的是当价格超过上限或下限时移动信号水平,但这并没有发生。请告诉我这是什么错误。
我需要开一个订单,1)在蜡烛的开端2)在1.2414 3)但在27日之后的最后一天。
以下是我的代码。首先,对已经规范化的BID进行规范化处理几乎是不合理的,除非指导员告诉你要
第二,我们能得到什么?27日,价格出现,你紧急将数据输入阵列,在28日触发?如果在28日发生了什么紧急事件呢?你把数据放到一个难以计算的数组中。你的数据应该是可计算的。我建议分步骤调试你的EA。1) 确定所需的价格并使用Alert()函数显示。如果你确定它是正确的,计算并显示下一个...以此类推,直到最后。事先写好整个代码还为时过早,因为随着调试的进行,还需要对代码进行修改。你对这项从简单到复杂的技术有什么看法?
让我们看看这里写的是什么。首先,线条应该更短。它们在屏幕上会更合适,而且编译器会工作得更快。
如果BID比较大,你必须做一些事情。然后,如果BID较少,必须做同样的事情。你可以用更简短的措辞:如果价格是多还是少,那么......。你在评论中写了一些关于移动东西的内容,但你所做的只是删除所有的对象。你的10行被4行所取代。
但是!!OR符号应该用在其他地方,不是吗?看来,我们应该在这里创建新的对象,而不是将这个OR归零。或者更简单--与其删除对象,不如把它们移到一个新的位置--这只是3行代码而已。还是教员要求更多?
从简单到虚假还是反之?首先,将一个已经正常化的BID正常化是不可取的,除非老师告诉你
第二,我们这里有什么?27日发生了一个价格,你紧急将数据输入数组,这样它就能在28日发挥作用?如果28日有紧急状况呢?你把数据放到一个难以计算的数组中。你的数据应该是可计算的。我建议分步骤调试你的EA。1) 确定所需的价格并使用Alert()函数显示。如果你确定它是正确的,计算并显示下一个...以此类推,直到最后。事先写好整个代码还为时过早,因为随着调试的进行,还需要对代码进行修改。你如何看待这种从简单到复杂的技术?
非常感谢您的提示。
但在我看来,在你的推理中,你似乎在假设我正试图编写一个真正的EA。
很抱歉,我没有告诉你情况不是这样的。
我试图测试上述参数之间是否存在某种规律性、相关性,也就是说,确认或拒绝这种想法,这可能是TORKING专家顾问的基础。
因此,如果你能纠正我的代码,使一切符合我的上述想法,我将非常感激。
当然,在我写交易专家顾问时,你的意见也会对我有用。
谢谢你
非常感谢你的提示。
但我看到的是,在你的推理中,你假设我正试图编写一个真正的EA。
很抱歉,我没有告诉你情况不是这样的。
我试图测试上述参数之间是否存在某种规律性、相关性,也就是说,确认或拒绝这种想法,这可能是TORKING专家顾问的基础。
因此,如果你能纠正我的代码,使一切符合我的上述想法,我将非常感激。
当然,你的意见对我在编写交易专家顾问时很有帮助。
谢谢你
对不起,打扰您了。但是...对于交易和非交易的EA来说,画线的逻辑应该有什么不同?
当你在工作时,你看手上的手表的方式与你在家里看手表的方式相比,是否有所不同?