...
// Внешние переменные (оптимизируются)externstring A1 = " Параметры ММ ";
externdouble Lots = 0.02; // Стартовый лот//------------------- externdouble LotExponent = 2.7; // на сколько умножать стартовый лот в степени - схема по Илану externstring A2 = " В настоящих пипсах ";
externint StopLossPips_BUY = 100; // уровень стартового усреднения в бай объёма позиции в пипсах // Увеличение шага усреднений по схемеexterndouble PipStepExponent_BUY = 1.3; // на сколько умножать стартовый шаг в степени//-----------------------------------------------------------------------
.....
// если стартовая открыта и достигнут уровень усреднения, то усреднить на Lots * MathPow(LotExponent,NumberOfPositions(Symbol(), -1, MN_L)); if (NumberOfPositions(Symbol(), -1, MN_L)>=1 &&
GetProfitOpenPosInCurrency(Symbol(), -1, MN_L)<0)
// if (MathAbs (GetProfitOpenPosInPoint(Symbol(), -1, MN_L)) > StopLossPips)
{
if (GetTypeLastOpenPos(Symbol(), MN_L)==OP_BUY)
if (MarketInfo(OrderSymbol(), MODE_BID)-PriceOpenLastPos(Symbol(), OP_BUY, MN_L)<0) // надо ли усреднять
{
if (NumberOfPositions(Symbol(), -1, MN_L)==1)
{// при первом усреднении, усреднять через стартовое количество пунктов - StopLossPips_BUYif ( NormalizeDouble((MathAbs(MarketInfo(OrderSymbol(), MODE_BID)-PriceOpenLastPos(Symbol(), OP_BUY, MN_L))/Point),0)>StopLossPips_BUY)
{WmOrderSend(Symbol(), OP_BUY, NormalizeLots(Lots*MathPow(LotExponent,NumberOfPositions(Symbol(),OP_BUY,MN_L))), Ask, 0, TP_START_BUY, " первое усреднение вверх ", MN_L);
Print (" первое усреднение ");
}
}
if (NumberOfPositions(Symbol(), -1, MN_L)>1) // при последующих - усреднять через MathPow(LotExponent,NumberOfPositions(Symbol(),OP_BUY,MN_L))
{
if ( NormalizeDouble((MathAbs(MarketInfo(OrderSymbol(), MODE_BID)-PriceOpenLastPos(Symbol(), OP_BUY, MN_L))/Point),0) >
NormalizeDouble((StopLossPips_BUY* MathPow(PipStepExponent_BUY,NumberOfPositions(Symbol(),OP_BUY,MN_L)-1)),0))
{
WmOrderSend(Symbol(), OP_BUY, NormalizeLots(Lots*MathPow(LotExponent,NumberOfPositions(Symbol(),OP_BUY,MN_L))), Ask, 0, TP_START_BUY, " усреднение вверх ", MN_L);
Print (" последующие, если это больше ", NormalizeDouble((MathAbs(MarketInfo(OrderSymbol(), MODE_BID)-PriceOpenLastPos(Symbol(), OP_BUY, MN_L))/Point),0),
" этого, то открыть бай ", NormalizeDouble(StopLossPips_BUY*MathPow(PipStepExponent_BUY,NumberOfPositions(Symbol(),OP_BUY,MN_L)-1),0));
}
}
}
if (GetTypeLastOpenPos(Symbol(), MN_L)==OP_SELL)
if ((PriceOpenLastPos(Symbol(), OP_SELL, MN_L)-MarketInfo(OrderSymbol(), MODE_ASK))<0)
if (NumberOfPositions(Symbol(), -1, MN_L)==1)
{
if (NormalizeDouble((MathAbs(PriceOpenLastPos(Symbol(), OP_SELL, MN_L)-MarketInfo(OrderSymbol(), MODE_ASK))/Point),0)>StopLossPips_SELL)
WmOrderSend(Symbol(), OP_SELL, NormalizeLots(Lots*MathPow(LotExponent,NumberOfPositions(Symbol(),OP_SELL,MN_L))),Bid, 0, TP_START_SELL, " усреднение вниз ", MN_L);
}
}
.....
你好!你能告诉我如何教我的专家顾问检测分形吗?
我想知道更多细节。有很多不同的指数可以绘制和发现分形。专家顾问不需要检测它们。你拿着指标,从它的缓冲区复制某个分形的值。如果你注意的话,没什么复杂的。
日安!伙计们,就这个问题给我建议:在策略测试器中,exp根据增加后续平均线通道大小的算法和方案开出订单--你可以在图片中看到--每一个后续平均线都在与前一个平均线的较大距离处开出(就像在Ilan中)。但同时,打印机产生这样的表达值,不应该进行平均化,因为它们的开放条件没有得到满足--25不超过2856,2197,1690。 它是如何进入这个条件并开仓的呢?我决定用大括号把所有东西都围起来,但这并没有帮助。
对开盘价的测试。下面是代码和图片。
你好,你能告诉我如何教专家顾问检测分形吗?
见导航仪。 如果是关于这个的,就像这样。
日安!伙计们,就这个问题给我建议:在策略测试器中,exp根据增加后续平均线通道大小的算法和方案开出订单--你可以在图片中看到--每一个后续平均线都在与前一个平均线的较大距离处开出(就像在Ilan中)。但与此同时,打印机产生了这样的表达值,平均化不应该发生,因为它们的开放条件没有得到满足,25比2856,2197,1690。 它是如何进入这个条件并开仓的呢?我决定用大括号把所有东西都围起来,但这并没有帮助。
对开盘价的测试。下面是代码和图片。
根据我的理解,如果不看到所有的代码,不了解这里的工作原理,就不太可能有人会告诉你。这个区块中使用的所有功能只有你知道。最好是边走边打印所有内容,并留意信息的输出。
按照我的理解,在没有看到所有的代码和学习这里的工作原理的情况下,我想没有人能够告诉你。这个区块中使用的所有功能只有你知道。最好是边走边打印,观察信息的输出情况。
所有的功能都能正常工作--这些都是Kim I.V.的功能。"只有来自Kim I.V.的有用功能",从功能的名称来看--它们的目的很清楚。
我想明白了--一切都在正常工作。它应该在开仓前 就被打印出来。
根据算法建立了平均头寸,PriceOpenLastPos(Symbol(),OP_BUY, MN_L)函数返回了刚刚建立的头寸值,这就是我有疑问的原因。
谢谢你,霍兹。
罗曼,很高兴它为你工作了 :)而且,还这么快。
基本上,我的编译器又开始发誓了。有一个库,里面使用了一个类。当然,这门课也被纳入了图书馆。
#include <HOZ_Code\Classes\CLogging.mqh> CLogging logging;
在编译这个使用CLogging.mqh类的库时,编译器这样发誓。
在这条线上的班级。
这一切能意味着什么呢?
帮助!!!。
在公共论坛的一个EA中,我在交易进入条件中附加了一个3-bar模式。
经过优化和测试(3.5年),我在一个模拟账户上安装了十个窗口,每个窗口都有单独的设置,这为猫头鹰提供了每天至少1.5笔交易的速度。在我的服务器上的10个虚拟计算机上提供同样的速度--每个窗口都有一个。
一个星期过去了,但任何地方都没有达成任何交易。
该怎么做?
=========================
int GetSignal()
{
double LevelADX = iADX(NULL,TF_ADX,PeriodADX,4,MODE_MAIN,0);
double Delta_01_ADX =(iADX(NULL,TF_ADX,PeriodADX,4,MODE_MAIN,0)
- iADX(NULL, TF_ADX, PeriodADX, 4, MODE_MAIN, 2));
double mas, maf;
mas=iMA(NULL, TF_MA, Slow。period,0,Slow.metod,Slow.price,1);
maf=iMA(NULL,TF_MA,Fast.period,0,Fast.metod,Fast。price,1);
//------------------
double delta1,delta2;
delta1=NormalizeDouble((Close[1]-Close[2])/Point,5);
delta2=NormalizeDouble((Close[2]-Close[3])/Point,5);
double body3=NormalizeDouble((Open[3]-Close[3])/Point,5)
//------------------
int STsig=-1;
if(CrossLevel && Lines>0) {
int up,dw;
int up_l,dw_l;
for(jj=0;jj<8;jj++) {
if(ST[jj][0]<LevelDw) dw++; else{
if(ST[jj][0]>)
LevelUp) up++;
}
if(ST[jj][1]<LevelDw) dw_l++; else{
if(ST[jj][1]>LevelUp) up_l++;
}
if(up<=8-Line && up_l>8-Line) STsig=1;
if(dw<=8-Line && dw_l>8-Line) STsig=0。
}
if(STsig==-1 && BreakSweep) {
double big,small;
double big_l,small_l;
for(jj=0;jj<8;jj++) {
if(ST[jj][1]>big_l) big_l=ST[jj][1];
if(ST[jj][1]<small_l || small_l==0) small_l=ST[jj][1];
}
如果(big_l-small_l<=Sweep && (small_l>=LevelUp || big_l<=LevelDw){
for(jj=0;jj<8;jj++) {
if(ST[jj][0]>big) big=ST[jj][0];
if(ST[jj][0]<small || small==0) small=ST[jj][0];
}
如果(big-small>Sweep)
{
//--------------- 我的卷[]和开[]和关[]附加组件 ------------------------------
if(Close[1]>Close[2]&&Close[2]>Close[3]&&Close[3]<Open[3] &&Close[2]>High[3]
&&body3>=Body3 && delta1>=Delta1 && delta2>Delta2 && big_l<=LevelDw && maf>mas)
STsig=0;
if(Close[1]<Close[2]&& Close[2]<Close[3]&& Close[3]>Open[3] && Close[2]<Low[3]
&& body3>=Body3 && delta1>=Delta1 && delta2>Delta2 && small_l>=LevelUp && maf<mas)
STsig=1;
}
}
}
if(Volume[0]<2 && Volume[1]>Volume1 && Volume[2]>Volume2
&& Delta_01_ADX > DeltaADX && LevelADX < StopADX && STsig==0) return(OP_BUY);
if(Volume[0]<2 && Volume[1]>Volume1 && Volume[2]>Volume2
&& Delta_01_ADX > DeltaADX && LevelADX < StopADX && STsig==1) return(OP_SELL);
return(-1)
}
=================================================
提前感谢!