artem artem der MACD befindet. Sie muss 4 Mal bestätigt werden, und der Auftrag sollte bei der 4. Kerze eröffnet werden. Ich habe die Datei angehängt, um sie visuell zu verdeutlichen.
SanAlex, können Sie zoomen, um deutlich sichtbare MACD-Balken zu haben und wie schnell man langsame Balken kreuzt? Ich kann es kaum sehen.
Versuchen Sie
#define MagicNumber 122122externstring s1 = "Trading options";
externdouble Lot = 0.01; // размер лота 0 - авт.расчетexterndouble StopLoss = 40; // стоплоссexterndouble TakeProfit = 10; // тейкпрофитexterndouble TrailStop = 21; // уровень без убыткаexternint Trailing = 0; // трейлинг стоп 1 вкл. 0 выкл.externint Breakeven = 0; // перенос стоп лосса в без убытокexternstring s2 = "Day & Hour";
externint HrStart = 0; // время начала торговлиexternint HrEnd = 23; // время окончания торговлиexternint Monday = 1; // Понедельник 1 вкд. 0 выкл.externint Tuesday = 1; // Вторникexternint Wednesday = 1; // Средаexternint Thursday = 1; // Четвергexternint Friday = 1; // Пятница//+------------------------------------------------------------------+// параметры индикаторовdouble MovingPeriodLw = 5;
double MovingPeriodS1 = 75;
double MovingPeriodS2 = 85;
double StopLevel;
double TrailStep = 3; // шаг трейлинг стопаbool OrderBuy = true, OrderSell = true, Order = false, Init = true;
int timeprev = 0, Slip = 3.0, start, cnt;
//+------------------------------------------------------------------+//| Init function |//+------------------------------------------------------------------+voidOnInit()
{
if (Digits == 3 || Digits == 5) { // Пересчет для 5-ти знаков
TakeProfit *= 10;
TrailStop *= 10;
TrailStep *= 10;
StopLoss *=10;
Slip *=10;
}
return;
}
//+------------------------------------------------------------------+//| Start function |//+------------------------------------------------------------------+void start()
{
StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);
if(CheckForOpen()!=start)
{start=CheckForOpen(); cnt=0;}
else
{cnt+=1;}// Определение направления пересечения мувингов// if (Init) InitMetod(); // Трейлинг стоп открытых позицийif (Trailing != 0 ) RealTrailOrder(TrailStop, TrailStep, StopLevel, MagicNumber);
// Ожидание нового бара на графикеif(timeprev == Time[0]) return;
timeprev = Time[0];
if(cnt==3)
{// Открытие ордера по методу Пуриаif(CheckForOpen()==0 && OrderBuy==true) // Если сигнал для покупок
{
if(OrderSend(Symbol(),OP_BUY,Lots(),Ask,Slip,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",MagicNumber,0,Blue))
{OrderBuy=false; Print("BUY OK");}
}
if(CheckForOpen()==1 && OrderSell==true) // Если сигнал для продаж
{
if(OrderSend(Symbol(),OP_SELL,Lots(),Bid,Slip,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",MagicNumber,0,Red))
{OrderSell=false; Print("SELL OK");}
}
}
}
//+------------------------------------------------------------------+//| Check for open order conditions |//+------------------------------------------------------------------+int CheckForOpen() // Открытие ордера по методу Пуриа
{
double malw,mas1,mas2,macd;
int res=-1, buy=0, sell=0;
// Считывание параметров индикаторов 3 свечи (4ой)
malw=iMA(NULL,0,MovingPeriodLw,0,MODE_EMA,PRICE_CLOSE,3);
mas1=iMA(NULL,0,MovingPeriodS1,0,MODE_LWMA,PRICE_LOW,3);
mas2=iMA(NULL,0,MovingPeriodS2,0,MODE_LWMA,PRICE_LOW,3);
macd=iMACD(NULL,0,15,26,1,PRICE_CLOSE,MODE_MAIN,3);
if(malw>mas1&&malw>mas2&&macd>0) {buy+=1; sell=0;}
if(malw<mas1&&malw<mas2&&macd<0) {buy=0; sell+=1;}
// Считывание параметров индикаторов 2 свечи (3ей)
malw=iMA(NULL,0,MovingPeriodLw,0,MODE_EMA,PRICE_CLOSE,2);
mas1=iMA(NULL,0,MovingPeriodS1,0,MODE_LWMA,PRICE_LOW,2);
mas2=iMA(NULL,0,MovingPeriodS2,0,MODE_LWMA,PRICE_LOW,2);
macd=iMACD(NULL,0,15,26,1,PRICE_CLOSE,MODE_MAIN,2);
if(malw>mas1&&malw>mas2&&macd>0) {buy+=1; sell=0;}
if(malw<mas1&&malw<mas2&&macd<0) {buy=0; sell+=1;}
// Считывание параметров индикаторов 1 свечи (2ой)
malw=iMA(NULL,0,MovingPeriodLw,0,MODE_EMA,PRICE_CLOSE,1);
mas1=iMA(NULL,0,MovingPeriodS1,0,MODE_LWMA,PRICE_LOW,1);
mas2=iMA(NULL,0,MovingPeriodS2,0,MODE_LWMA,PRICE_LOW,1);
macd=iMACD(NULL,0,15,26,1,PRICE_CLOSE,MODE_MAIN,1);
if(malw>mas1&&malw>mas2&&macd>0) {buy+=1; sell=0;}
if(malw<mas1&&malw<mas2&&macd<0) {buy=0; sell+=1;}
// Считывание параметров индикаторов 0 свечи (1ой)
malw=iMA(NULL,0,MovingPeriodLw,0,MODE_EMA,PRICE_CLOSE,0);
mas1=iMA(NULL,0,MovingPeriodS1,0,MODE_LWMA,PRICE_LOW,0);
mas2=iMA(NULL,0,MovingPeriodS2,0,MODE_LWMA,PRICE_LOW,0);
macd=iMACD(NULL,0,15,26,1,PRICE_CLOSE,MODE_MAIN,0);
if(malw>mas1&&malw>mas2&&macd>0) {buy+=1; sell=0;}
if(malw<mas1&&malw<mas2&&macd<0) {buy=0; sell+=1;}
if(buy <4) OrderBuy=true;
if(sell<4) OrderSell=true;
if(buy ==4) { res=0; OrderSell=true;}
if(sell==4) { res=1; OrderBuy =true;}
return(res);
}
SanAlex, können Sie die MACD-Balken so vergrößern, dass sie deutlich zu sehen sind und der schnelle Balken den langsamen kreuzt? Ich kann es kaum sehen.
aber was ich dort hinzugefügt habe - der Zweck des Expert Advisors ist ein anderer. Das Ziel ist es, den Gesamtgewinn aller offenen Paare zu erhalten und alle Expert Advisors zu schließen.
artem artem #: MakaeFX, jetzt aus irgendeinem Grund öffnet es nicht von der 4. Bestätigungskerze, sondern tatsächlich von der 7. Ich habe ein Bildschirmfoto des Testers beigefügt
Laden Sie Ihre EA-Datei hoch, ich werde im Tester nachsehen
SanAlex, also der Punkt ist, dass das, was ich implementieren will, noch besser sein wird + ich mache das jetzt seit ein paar Tagen, und ich bin schon grundsätzlich daran interessiert, wie der richtige Code aussehen sollte. Und es wird für die Zukunft sehr nützlich sein, und der Expert Advisor wird wirklich gut sein. Aber Ihre Version ist auch gut, da kann ich nichts gegen sagen.
SanAlex, können Sie zoomen, um deutlich sichtbare MACD-Balken zu haben und wie schnell man langsame Balken kreuzt? Ich kann es kaum sehen.
Versuchen Sie
SanAlex, können Sie die MACD-Balken so vergrößern, dass sie deutlich zu sehen sind und der schnelle Balken den langsamen kreuzt? Ich kann es kaum sehen.
aber was ich dort hinzugefügt habe - der Zweck des Expert Advisors ist ein anderer. Das Ziel ist es, den Gesamtgewinn aller offenen Paare zu erhalten und alle Expert Advisors zu schließen.
MakaeFX, jetzt aus irgendeinem Grund öffnet es nicht von der 4. Bestätigungskerze, sondern tatsächlich von der 7. Ich habe ein Bildschirmfoto des Testers beigefügt
MakarFX, beigefügt EA
genau MetaEditor - Version 5.00 build 2382
Es ist nicht klar, wie Sie die von Ihnen gepostete Datei kompiliert haben...
Versuchen Sie hier, das hinzuzufügen, was Sie sonst noch brauchen
MakarFX, ist es OK, wenn ich auf alle Ticks testen - von 01.08.21 bis 03.09.21 - dann 46 Aufträge
und wenn ich nur nach Eröffnungskursen innerhalb desselben Zeitraums prüfe - 29 Aufträge ?
+ Mehrere Aufträge verfehlten ausdrücklich ihren Eröffnungskurs, wenn sie um Ticks getestet wurden. Ich habe einen Screenshot angehängt, er zeigt