[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 143

 

これでよしとする。

//+------------------------------------------------------------------+
extern string   _____= "Параметры Длинных позиций"; 
extern int     RSI_period  =20;
extern int     MA_period          =21;
extern int     TP=200;
extern int     SL=61;

extern string   ____= "Параметры Коротких позиций";
extern int     RSI_period_SELL  =20;          
extern int     MA_period_SELL          =21;
extern int     TP_=200;
extern int     SL_=61;

//------------------------------
extern string     ______= "Общие Параметры ";
extern double  Lot=0.1;
extern int     Slippage=3;
extern int    Low_lim=8;
extern int   Up_lim=8;

int ExpertBars;
int ticket;

//*********************************************************************
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
ExpertBars = Bars;
//----
   return(0);
  }

次のページ





int start()
  {
bool isNewBar=false;
if ( ExpertBars !=Bars) { ExpertBars=Bars; isNewBar=true; }
if ( isNewBar) { //если есть новый бар
 
//===== Ищем возможность войти в рынок =========================================
if ( Long)                   {     //если "выключатель" включен
if (! ExpertOrder( MagicLong ))//если  нет открытых длинных позиций 
  {
 //------заполняем массив значениями RSI для длинных позиций --------
double RSI_array_buy[50];
int    j=0;
while ( j<50)
 {
RSI_array_buy[ j]= iRSI(NULL, 0, RSI_period, MODE_SMA, j);
j++;
 }
ArraySetAsSeries( RSI_array_buy,true);
double MA_low =iMAOnArray( RSI_array_buy,0, MA_period,1,MODE_SMA,0);
double RSI_0=iRSI(NULL, 0, RSI_period,MODE_SMA, 1);
double RSI_1=iRSI(NULL, 0, RSI_period,MODE_SMA, 2);   
//---------проверяем условие на покупку----------------------------
  if   (           ( RSI_1< MA_low)  &&
          ( RSI_0> MA_low)  )
   {
  ticket=OrderSend(Symbol(),0, Lot,Ask, Slippage,Bid- SL*Point,Ask+ TP*Point,NULL, MagicLong,0,CLR_NONE);
  if ( ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0);   }          
   }
   }}
   //--------------------------------------------------------------
if ( Short)                   {     //если "выключатель" включен 
if (! ExpertOrder( MagicShort ))//если  нет открытых длинных позиций 
  {  
 // ---заполняем массив значениями рси  для коротких  позиций
double RSI_array_sell[50];
int    k=0;
while ( k<50)
 {
RSI_array_sell[ k]= iRSI(NULL, 0, RSI_period_SELL, MODE_SMA, k);
k++;
 }
ArraySetAsSeries( RSI_array_sell,true);
double MA_up =iMAOnArray( RSI_array_sell,0, MA_period_SELL ,1,MODE_SMA,0);
double RSI_0s=iRSI(NULL, 0, RSI_period_SELL,MODE_SMA, 1);
double RSI_1s=iRSI(NULL, 0, RSI_period_SELL,MODE_SMA,2);
    
//--------проверяем условие на продажу------------------------------
  if  (           ( RSI_1s > MA_up )  &&
          ( RSI_0s < MA_up )) 
   {       
  ticket=OrderSend(Symbol(),1, Lot,Bid, Slippage,Bid+ SL_*Point,Bid- TP_*Point,NULL, MagicShort,0,CLR_NONE);
  if ( ticket<0) { Print("Ошибка открытия ордера SELL #", GetLastError()); return (0);  }     
   } 
   }} 
 

ありがとうございました。

 
こんにちは! 低と高の両方のTFからの信号のTF上のディスプレイとヒストグラムの形でZZしようとしたが、5エラーを与えた" ExtMapBuffer2 "-変数が定義されていない "、何が間違っている? ....あなたができない場合は助けて! 感謝
ファイル:
dinap_zzg.mq4  4 kb
 

ジェントルマン(同志 :)))

MAMyのインジケータ(kodobaseにあります)を矢印の形で実装しようとしています。

MAMyのインジケータ(kodobaseにあります)を矢印の形で実装しようとしています。

矢印は未形成のバーに描かれ、その形成までに条件が変化した場合、矢印は削除されず、インジケータを再起動したときにのみ削除できます。

形成された棒グラフにのみ矢印を描画させたい。もし時間があれば、実践的なレッスンをしてください。この雑なコードを修正してください.

(余計なものが出てくる可能性が高いので、すみません(ゼロからインジケータを書くには、そこから手が伸びないのです-金縛りですが)、やはり他の方の作品を使わせていただいています)。

ありがとうございました。

ファイル:
 

ありがとうございました。

これぞまさにドクターの命令

なぜなら、アカウントの履歴から、チャート上で

あまり良い印象はないですね。



 

デバッガがない場合、キー押下待ちとダイアログ出力機能とかがあるのかもしれませんが、mqlでデバッガ(変数の現在値でアルゴリズムをステップバイステップで見る)をシミュレートする方法を教えていただけませんか?

 

Print 機能はわかったのですが、今度は別の質問があります。インジケーターの出力はどのように行われるのでしょうか?

チャートには512本のバーがあります。理論的には、1-14のバーでスタートとバー番号を、その他のバーでメインとバー番号を表示するはずですが、なぜかずっとスタートと295のバーからしか表示されません。何が問題なのか、教えていただけませんか?

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Yellow

extern int Param=14;
extern double Razmah=0.9;

double VH[], VL[], Rang=0, z=0, z1=0, num=0, num1=0;
int init()
  {
   SetIndexBuffer(0, VH);
   SetIndexBuffer(1, VL);
   return(0);
  }
int start()
  {
   int i, counted_bars=IndicatorCounted();
   if ( counted_bars<= Param+1) 
   { 
      for( i=0; i<=Bars- counted_bars-1; i++)
      {
         VH[ i]=High[ i];
         VL[ i]=Low[ i];
         num++;
         Print("Start     ", num);
      }
      return(0);
   }
   
   i=-5;
   if( counted_bars> Param+1) i=Bars- counted_bars-1;
   while( i>=0)
     {
      num1++;
      Print("Main     ", num1 );
      VH[ i]=High[ i]*1.01;
      VL[ i]=Low[ i]*0.99;
      i--;
     }
   return(0);
  }
 
Andrej78 писал(а)>>

Print機能はわかったのですが、今度は別の質問があります。インジケーターの出力はどのように行われるのでしょうか?

チャートには512本のバーがあります。理論的には、1-14のバーでスタートとバー番号を、その他のバーでメインとバー番号を表示するはずですが、なぜかずっとスタートと295のバーからしか表示されません。何が問題なのか、アドバイスをお願いします。

ログを確認する

 
Vinin писал(а)>>

過去ログを見る必要があります

>> 過去ログはどのように見ているのですか?

 
ループさせることができないのですが、助けていただけませんか?一新するだけでも十分でしょうか。よろしくお願いします。コードに記述する。
ファイル:
proba9.mq4  3 kb