//================================================================================================================ //------------------------------- Определение тоннеля и его верхней и нижней границ ------------------------------ //================================================================================================================ if (NormalizeDouble(MathAbs(MA169-MA144),dg)/pt<=sp) // Если разница МАшек меньше спреда, ...
Tonnel=false; // Тоннель меньше спреда - считаем, что он узкийif (NormalizeDouble(MathAbs(MA169-MA144),dg)/pt>sp) // Если разница МАшек больше спреда, ...
Tonnel=true; // Тоннель больше спреда - считаем, что он норм.//------------------------------------------------------------- if (CmpD(MA169,MA144)) { // Если 169-я МАшка выше 144-й, ...
UP_Limit=MA169+sp*pt; // ... то 169 - верх тоннеля, ...
DN_Limit=MA144-sp*pt; // ... а 144 - низ тоннеля
}
if (CmpD(MA144,MA169)) { // Если 144-я МАшка выше 169-й, ...
UP_Limit=MA144+sp*pt; // ... 144 - верх тоннеля, ...
DN_Limit=MA169-sp*pt; // ... 169 - низ тоннеля
}
if (NormalizeDouble(MA169-MA144,dg)==0) { // Если 169-я МАшка равна 144-й, ...
UP_Limit=MA169+sp*pt; // ... то 169 - верх тоннеля, ...
DN_Limit=MA144-sp*pt; // ... а 144 - низ тоннеля
}
//------------------------------------------------------------- string NameArUP=Prefix+"UP"+TimeToStr(Time[0]); // Нарисуем тоннельstring NameArDN=Prefix+"DN"+TimeToStr(Time[0]);
SetArrow(4, DeepSkyBlue, NameArUP, Time[0], UP_Limit, 0); // Его верх
SetArrow(4, Gold, NameArDN, Time[0], DN_Limit, 0); // Его низ//================================================================================================================ //------------------------------------- Проверка на вхождение цены в тоннель ------------------------------------- //================================================================================================================ if (CmpD(UP_Limit, pa) && CmpD(pb, DN_Limit)) {
if (Above) { // Если цена была выше тоннеля
LastAbove=true; // Ставим флаг "прошлого" положения цены "выше"
LastBottom=false; // Снимаем флаг "прошлого" положения цены "ниже"
}
if (Bottom) { // Если цена была ниже тоннеля
LastBottom=true; // Ставим флаг "прошлого" положения цены "ниже"
LastAbove=false; // Снимаем флаг "прошлого" положения цены "выше"
}
Inside=true; // Ставим флаг расположения цены внутри тоннеля
Above=false; // Сброс флага "над"
Bottom=false; // Сброс флага "под"
ReadyTradeB=true; // Флаг готовности к торговле Бай
ReadyTradeS=true; // Флаг готовности к торговле Селл
}
//================================================================================================================ //------------------------------- Проверка на расположение цены относительно тоннеля ----------------------------- //================================================================================================================ if (CmpD(pa,UP_Limit)) { // Если цена выше тоннеляif (Inside) {
Inside=false; // Сброс флага нахождения цены внутри тоннеля
LastInside=true;
}
Above=true; // Цена находится над тоннелем
Bottom=false;
}
if (CmpD(DN_Limit,pb)) { // Если цена ниже тоннеляif (Inside) {
Inside=false; // Сброс флага нахождения цены внутри тоннеля
LastInside=true;
}
Bottom=true; // Цена находится под тоннелем
Above=false;
}
//================================================================================================================ //------------------------------------ Проверка на пересечение границ тоннеля ------------------------------------ //================================================================================================================ // .... пока не отлажу предыдущее, за это не стоит и браться...//----------------------------------------------------------------
谢谢你的回答,但我的算法是用俄语写的,但我不擅长mql,至少要提示一下固定卖/买单数量的函数(我会写在设置里),然后是禁止放置卖/买单挂单的信号。
为什么这个你已经写好的算法没有反映在你的代码中?
你认为仅仅看一下你没有写过的代码就可以指出你的错误吗?
我们仍然需要 "阅读 "它...
下面是一段代码的摘录,我们写在纸上的所有内容也都显示在代码中。
因此,在最简单的事情被解决之前,你不应该进一步...
那你有什么呢?你把所有的东西都堆在一起,你没有评论过任何一行。现在休息一个星期,回到你的代码。我相信你要花两个小时才能记住。100%
永久地段0.1。
在这种情况下,在我看来,这周是一个很好的结果。我不太记得了,我想大概是800分。在我看来,只有稳定性不是很好:图表不是很平滑......。总之,谢谢你的回答。至少有一些数字正在出现。我离这个目标很远:每年3000-4000分是极限。但我的平衡图更平坦...
我一直在想:0.1的固定手数 - 但用什么杠杆?从余额表上看,不太清楚获得了多少积分?
我如何从这样的指标中获得选定的Fiba水平的值?
//+------------------------------------------------------------------+
//| 抛物线_ZZ.mq4|
//| Copyright © 2009, Vic2008 |
//| |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Vic2008"
#属性链接""
#include <stdlib.mqh>.
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2品红
//---- 输入参数
extern double SAR_step=0.02; //parparameters parabolic.
外置双SAR_maximum=0.2。
extern int BarsCount = 500; //Distance in bars to draw the indicator.
extern bool Fibo1_off = False; //禁用Fibo级别。
extern bool Fibo2_off = False;
extern bool Fibo_Absolut_Value = False; //包括Fibo水平的绝对价格值。
外部颜色 Label_Color = Gray;
外部颜色 Fibo_Color = Blue;
//---- 缓冲区
双倍ExtMapBuffer1[]。
双倍ExtMapBuffer2[]。
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
//---- 指标
SetIndexBuffer(0,ExtMapBuffer1)。
SetIndexStyle(0,DRAW_SECTION)。
SetIndexBuffer(1,ExtMapBuffer2)。
SetIndexStyle(1,DRAW_SECTION,0,2,Magenta)。
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
ObjectsDeleteAll(0,OBJ_ARROW)。
ObjectDelete("FiboZZLast")。
ObjectDelete("FiboZZPrev")。
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
//int counted_bars=IndicatorCounted()。
字符串txt。
int w,PosLow,PosHigh;
double LPic=1000000,HPic=0,price;
datetime TimeTmp;
//----
ExtMapBuffer1[0]=Close[0];
ExtMapBuffer2[0]=EMPTY_VALUE。
for( w=0;w<BarsCount;w++){
if( w! =0 ){ ExtMapBuffer1[w]=EMPTY_VALUE; ExtMapBuffer2[w]=EMPTY_VALUE; }
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) > Close[w] && LPic>=Low[w] ){ LPic=Low[w] ; PosLow=w; }
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && HPic<=High[w] ) { HPic=High[w]; PosHigh=w; }
// H -> L
如果( iSAR(NULL,0,SAR_step,SAR_maximum,(w+1))> Close[w+1] && iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && HPic!=0)
{
ExtMapBuffer1[PosHigh]=HPic;
ExtMapBuffer2[PosHigh]=HPic;
HPic=0。
}
// L -> H
if( iSAR(NULL,0,SAR_step,SAR_maximum,w) < Close[w] && iSAR(NULL,0,SAR_step,SAR_maximum,w+1) > Close[w+1] && LPic!=1000000 )
{
ExtMapBuffer1[PosLow]=LPic;
ExtMapBuffer2[PosLow]=LPic;
LPic=1000000。
}
}
如果( Fibo1_off ) ObjectDelete("FiboZZLast")。
如果( Fibo2_off ) ObjectDelete("FiboZZPrev")。
//画出价格标记和FIBO水平
int wave_cnt=0。
for( w=0;w<BarsCount;w++){
如果( ExtMapBuffer2[w]!=EMPTY_VALUE ){
如果( wave_cnt<=3 ){
ObjectDelete("PZZ_"+DoubleToStr( wave_cnt, 0))。
ObjectCreate("PZZ_"+DoubleToStr( wave_cnt, 0), OBJ_ARROW, 0, Time[w], ExtMapBuffer2[w], Time[w], 0) 。
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), OBJPROP_ARROWCODE, SYMBOL_LEFTPRICE)。
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), SYMBOL_LEFTPRICE, ExtMapBuffer2[w])。
ObjectSet("PZZ_"+DoubleToStr( wave_cnt, 0), OBJPROP_COLOR, Label_Color )。
如果(wave_cnt==1 && Fibo1_off==False ){
ObjectDelete("FiboZZLast")。
ObjectCreate("FiboZZLast", OBJ_FIBO, 0, TimeTmp, ExtMapBuffer2[w], TimeTmp, price)。
ObjectSet("FiboZZLast", OBJPROP_LEVELCOLOR, Fibo_Color)。
ObjectSet("FiboZZLast", OBJPROP_COLOR, Fibo_Color)。
ObjectSet("FiboZZLast", OBJPROP_RAY, False );//要启用射线,请将False改为True。
ObjectSet("FiboZZLast", OBJPROP_FIBOLEVELS, 14)。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZLast",0, "23.6")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZLast",1, "38.2")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZLast",2, "50.0")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZLast",3, "61.8")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZLast",4, "100.0")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZLast",5, "161.8")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZLast",6, "261.8")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZLast",7, "423.6")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZLast",8, "8.8")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZLast",9, "14.5")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZLast",10, "76.4")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZLast",11, "85.5")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZLast",12, "92.1")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZLast",13, "0.0")。
如果( Fibo_Absolut_Value ){
ObjectSet("FiboZZLast", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZLast",0, "23.6 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZLast",1, "38.2 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZLast",2, "50.0 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZLast",3, "61.8 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZLast",4, "100.0 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZLast",5, "161.8 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZLast",6, "261.8 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZLast",7, "423.6 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZLast",8, "8.8 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZLast",9, "14.5 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZLast",10, "76.4 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZLast",11, "85.5 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZLast",12, "92.1 %$")。
ObjectSet("FiboZZLast",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZLast",13, "0.0")。
}
}
如果( wave_cnt==2 && Fibo2_off==False ){
ObjectDelete("FiboZZPrev")。
ObjectCreate("FiboZZPrev", OBJ_FIBO, 0, TimeTmp, ExtMapBuffer2[w], TimeTmp, price) 。
ObjectSet("FiboZZPrev", OBJPROP_LEVELCOLOR, Fibo_Color)。
ObjectSet("FiboZZPrev", OBJPROP_COLOR, Fibo_Color)。
ObjectSet("FiboZZPrev", OBJPROP_RAY, False );//要启用射线,请将False改为True。
ObjectSet("FiboZZPrev", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZPrev",0, "23.6");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZPrev",1, "38.2")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZPrev",2, "50.0")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZPrev",3, "61.8")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZPrev",4, "100.0")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZPrev",5, "161.8")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZPrev",6, "261.8")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZPrev",7, "423.6")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZPrev",8, "8.8")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZPrev",9, "14.5");
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZPrev",10, "76.4")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZPrev",11, "85.5")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZPrev",12, "92.1")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZPrev",13, "0.0")。
如果( Fibo_Absolut_Value ){
ObjectSet("FiboZZPrev", OBJPROP_FIBOLEVELS, 14);
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription("FiboZZPrev",0, "23.6 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription("FiboZZPrev",1, "38.2 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+2,0.50); ObjectSetFiboDescription("FiboZZPrev",2, "50.0 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+3,0.618); ObjectSetFiboDescription("FiboZZPrev",3, "61.8 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+4,1.0); ObjectSetFiboDescription("FiboZZPrev",4, "100.0 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+5,1.618); ObjectSetFiboDescription("FiboZZPrev",5, "161.8 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+6,2.618); ObjectSetFiboDescription("FiboZZPrev",6, "261.8 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+7,4.236); ObjectSetFiboDescription("FiboZZPrev",7, "423.6 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+8,0.088); ObjectSetFiboDescription("FiboZZPrev",8, "8.8 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+9,0.145); ObjectSetFiboDescription("FiboZZPrev",9, "14.5 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+10,0.764); ObjectSetFiboDescription("FiboZZPrev",10, "76.4 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+11,0.855); ObjectSetFiboDescription("FiboZZPrev",11, "85.5 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+12,0.921); ObjectSetFiboDescription("FiboZZPrev",12, "92.1 %$")。
ObjectSet("FiboZZPrev",OBJPROP_FIRSTLEVEL+13,0.0); ObjectSetFiboDescription("FiboZZPrev",13, "0.0")。
}
}
}
wave_cnt++。
price=ExtMapBuffer2[w];
TimeTmp=Time[w];
}
}
//----
return(0);
}
//+------------------------------------------------------------------+
如何从这样一个指标中获得所选纤维水平的值?
什么他妈的?
你可能想把 "战争与和平 "也放在里面。
请帮助...我的专家顾问检查开放的订单......一次可以开放一个订单......但是当我在开放订单的时候在一条直线上输入止损点,它就会出现错误130......例如,它是这样的
如果(down>0)
{ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,0,Bid-TakeProfit*Point,0,16384,0,Red)。
我输入了一个大小为100的止损点
ticket=OrderSend(Symbol(),OP_SELL,dLot,Bid,3,100,Bid-TakeProfit*Point,0,16384,0,Red); ...在测试者中给出错误130
DTz Alpari......也许我应该在,打开 订单并设置止损后修改p?......告诉我大概如何做到这一点,或者给我指出一个可以做到这一点的EA...请
请帮助...
请帮助...顾问有一个开放订单检查功能......一个订单可以在同一时间开放......但当在开放时直接输入一个停止尺寸时
一个新的订单可以在它被打开后被修改,并且可以设置一个停止......你能告诉我如何做到这一点,或者给我指出一个可以做到这一点的EA......请
止损点应该是双倍的类型。应指定应设置止损的价格。
100*点
为什么你已经写好的这个算法没有反映在你的代码中?
你认为只要看一下你的未格式化的代码就能立即指出你的错误吗?
你仍然需要 "阅读 "它...
这里是代码的摘录,你在纸上勾画的一切也都在代码中显示出来。
因此,在你把最简单的事情做好之前,你不应该再进一步......
你呢?你把所有的东西都堆在一起,你没有评论过任何一行。现在休息一个星期,回到你的代码。我相信你要花两个小时才能记住。100%
对不起,这段代码不是我的,我自己在研究。 这是关于挂单的部分,其余的是胡说八道,就像我们通常做的设置、手数、分形和拖曳。这个EA不工作,即由于堆积的订单,它正在损失,所以我决定放置一些限制,看看会发生什么。我将使用mql语言,但我不知道用它做什么。谢谢,我会研究的。
这很奇怪。有什么可道歉的呢?嗯...我已经向你展示了你应该如何设计你自己的代码,这样你就不必在以后弄清楚了。
既然你的代码是别人的...但是...你也可以对那些在分析过程中变得清晰的字符串进行评论。之后会更清楚,你最好在分析的基础上写出你自己的文章。所以要充分理解,了解并根据自己的需要进行转换。
这恰恰会使你获得一个合乎逻辑的理解。这也会对你有好处。:)
好运!