仕事が完了した

実行時間2 分
依頼者からのフィードバック
Super Programmierer kann man nur empfehlen, geht auf die Kunden wünsche ein und kann sie umsetzten. gerne wieder . danke :)

指定

hallo,


Suche einen Deutschsprachigen Programmierer der mir einen bereits vorhandenen mql4 Indikator zu einem mql4 Expert Advisor um Programmieren kann bzw. so schreiben kann dass wenn das "Popup Fenster" des Indikators erscheint der EA Automatisch Handelt (selbstständig Positionen eröffnet oder bei gegen signal wieder schließt)


Der Indikator reagiert bei Eintritt der ereignisses beim eröffnen einer neuen Kerze mit einem Alarm "Popup Fenster"


In dem angewendetem Chartfenster erscheint ein

Blauer Punkt für eine evtl. "Long BUY Position".

und ein Roter Punkt für evtl. "Short SELL Position "

der erscheinte Punkt im chart gleicht dem  Risiko der Einstellungen z.B RISK 4


Der EXPERT ADVISOR sollte bei dem eintritt der Ereignisses Positionen eröffnen

Roter Punkt    "Short SELL Position "

Blauer Punkt   "Long BUY Position"


Eingaben (Variable)

Der Stop Loss sollte man manuell zusätzlich einstellen können (Pips) oder dem jeweiligem Punkt im chart entsprechen zuordnen

Der Take Profit sollte ebenfalls eingestellt werden können (Pips) (Manuell Variabl einstellbar)

Breakeven SL auf Entry bei z.b 10 Pips (Manuell Variable einstellbar)

Magic Number zb. 666 (Manuell Variable einstellbar)

Ebenfalls sollte man wie im Indikator  RISK und ALLBARS manuell eingestellt werden können (Manuell Variabl einstellbar)


//----
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 RoyalBlue
#property indicator_color2 Red
//----
extern int RISK=4;
extern int AllBars=250;
int up=0,dn=0;
double val1buffer[];
double val2buffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW,EMPTY);
   SetIndexArrow(0,108);
   SetIndexBuffer(0, val1buffer);
   //
   SetIndexStyle(1,DRAW_ARROW,EMPTY);
   SetIndexArrow(1,108);
   SetIndexBuffer(1, val2buffer);
   //----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   double value2;
   double value3;
   double value10=10;
   double value11;
   double x1=70;
   double x2=30;
   int TrueCount;
   int counter;
   int MRO1;
   int MRO2;
   int i1;
   double Range;
   double AvgRange;
   double val1;
   double val2;
   double Table_value2[500][2];
   int counted_bars=IndicatorCounted();
   //
   value10=3+RISK*2;
   x1=67+RISK;
   x2=33-RISK;
   value11=value10;
//----------------------------
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;       //last bar recounted
   int i;
   int shift=Bars-counted_bars-1;
   if (shift > AllBars) shift=AllBars;
   for(i=shift; i>0; i--)
     {
      counter=i;
      Range=0;
      AvgRange=0;
      for(counter=i ;counter<=i+9;counter++)
        {
         AvgRange=AvgRange+MathAbs(High[counter]-Low[counter]);
        }
      Range=AvgRange/10;
      counter=i;
      TrueCount=0;
      while(counter<i+9 && TrueCount<1)
        {
         if (MathAbs(Open[counter]-Close[counter+1])>=Range*2.0 )
            TrueCount++;
         counter++;
        }
      if (TrueCount>=1)
         MRO1=counter;
      else
         MRO1=-1;
      counter=i;
      TrueCount=0;
      while(counter<i+6 && TrueCount<1)
        {
         if(MathAbs(Close[counter+3]-Close[counter])>=Range*4.6)
         {TrueCount++;}
         counter++;
        }
      if(TrueCount>=1)
         MRO2=counter;
      else
         MRO2=-1;
      if (MRO1>-1)
         value11=3;
      else
         value11=value10;
      if (MRO2>-1)
         value11=4;
      else
         value11=value10;
      //----
      value2=100-MathAbs(iWPR(NULL,0,value11,i));
      Table_value2[i][0]=i;
      Table_value2[i][1]=value2;
      val1=0;
      val2=0;
      value3=0;
      //-------------------     val1 
      if (value2<x2) //  x2 = 30
        {
         i1=1;
         while(Table_value2[i+i1][1]>=x2 && Table_value2[i+i1][1]<=x1)
         {i1++;}
         if (Table_value2[i+i1][1]>x1)
           {
            value3=High[i]+Range*0.5;
            val1=value3;
           }
        }
      //-------------------     val2 
      if(value2>x1) // x1 = 70
        {
         i1=1;
         while(Table_value2[i+i1][1]>=x2 && Table_value2[i+i1][1]<=x1)
         {i1++;}
         if (Table_value2[i+i1][1]< x2)
           {
            value3=Low[i]-Range*0.5;
            val2=value3;
           }
        }
      if (val2!=0 && up==0 )
        {
         val1buffer[i]= val2-1*Point;
         up=1;
         dn=0;
         if(shift<=2)
           {
            Alert (Symbol()," ",Period(),"M  Asctrend BUY ");
           }
        }
      if (val1 !=0 && dn==0)
        {
         val2buffer[i]= val1+1*Point;
         dn=1;
         up=0;
         if(shift<=2)
           {
            Alert (Symbol()," ",Period(),"M   Asctrend SELL ");
           }
        }
     }
   return(0);
//----
  }
//+------------------------------------------------------------------+

応答済み

1
開発者 1
評価
(807)
プロジェクト
1127
43%
仲裁
47
49% / 23%
期限切れ
84
7%
2
開発者 2
評価
(2666)
プロジェクト
3397
68%
仲裁
77
48% / 14%
期限切れ
342
10%
パブリッシュした人: 1 code
3
開発者 3
評価
(1125)
プロジェクト
1813
61%
仲裁
14
64% / 7%
期限切れ
84
5%
4
開発者 4
評価
(1304)
プロジェクト
1732
49%
仲裁
53
70% / 13%
期限切れ
38
2%

プロジェクト情報

予算
30 - 60 USD
締め切り
最低 1 最高 30 日