MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 840 1...833834835836837838839840841842843844845846847...1953 新しいコメント Roman Sharanov 2019.05.11 16:21 #8391 どうしたんですか? テンプレートクラスがあり template <typename T> class MyList{ private: T *array[]; int _size; public: WavesList(){ _size = 0; } void add(T &obj){ _size++; ArrayResize(array, _size, 0); array[_size-1] = obj; } void cut(){ delete array[_size-1]; _size--; ArrayResize(array, _size, 0); } int size(){ return _size; } T lastWave(){ return array[size-1]; } }; そして、コードではこのように作ってみる。 MyList myList<OtherClass>(); 眉をひそめる! Igor Makanu 2019.05.11 17:51 #8392 Roman Sharanov:そして、コードでこんなことをやってみる。 眉をひそめる!こんな風に必要なんです。 MyList<OtherClass> myList;https://www.mql5.com/ru/forum/221917/page25#comment_11205772 に掲載されているテンプレートでの作業例です。 私のコードをあなたのコードに置き換えてみてください。 Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения 2019.04.03www.mql5.com С 6 декабря 2017 года в стандартную поставку MetaTrader 5 стали входить так называемые Generic-классы, реализующие эффективные алгоритмы для хранен... Roman Sharanov 2019.05.11 18:54 #8393 Igor Makanu:こうでなければならない。 以下は、私が掲載したテンプレートでの作業例です。https://www.mql5.com/ru/forum/221917/page25#comment_11205772 私のコードを使って、あなたのコードを書いてみてください。ありがとうございました。 VitGo 2019.05.12 10:20 #8394 テキストの位置を行に対して相対的に設定することは可能ですか? 線はプログラムで作成し、テキストは線の上に描画されますが、場合によってはテキストを下に配置する必要があります...。 どうすればいいのでしょうか? void paintShLine(datetime sdata, datetime edata, double bev, string nm, string txt, color cl) { ObjectCreate(0, nm, OBJ_TREND, 0, sdata, bev, edata, bev); //--- установим цвет линии ObjectSetInteger(0,nm,OBJPROP_COLOR,cl); //--- установим стиль отображения линии ObjectSetInteger(0,nm,OBJPROP_STYLE,STYLE_DASH); //--- установим толщину линии ObjectSetInteger(0,nm,OBJPROP_WIDTH,1); //--- включим (true) или отключим (false) режим продолжения отображения линии вправо ObjectSetInteger(0,nm,OBJPROP_RAY_RIGHT,true); ObjectSetInteger(0,nm,OBJPROP_RAY,true); //--- отобразим на переднем (false) или заднем (true) плане ObjectSetInteger(0,nm,OBJPROP_BACK,true); //--- включим (true) или отключим (false) режим перемещения линии мышью ObjectSetInteger(0,nm,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,nm,OBJPROP_SELECTED,false); //--- установим текст if (showShadowText) ObjectSetString(0,nm,OBJPROP_TEXT," "+txt); //--- скроем (true) или отобразим (false) имя графического объекта в списке объектов ObjectSetInteger(0,nm,OBJPROP_HIDDEN,true); } Konstantins Korolkovs 2019.05.12 10:35 #8395 こんにちは、 私は、買い取引を開くときに、アドバイザーが開いた取引の取引ロットを最大取引ロットと比較し、ロットが特定の値以上であれば、アドバイザーが自動的に最後の取引を閉じるようにしたいと思います。 以下の例では、取引ロットが2以上であれば、アドバイザーが取引を閉じることを示しました...。この条件はどうでしょうか? if ((typeLastOrder==OP_BUY && orderlots()>2 || typeLastOrder==OP_BUYSTOP && orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2) ){Alert("no lot higher than 2 is allowed"); CloseDelete(lastTicket); return;} Alexey Viktorov 2019.05.12 13:12 #8396 Konstantins Korolkovs: 午後 Expert Advisorで、開いた取引の取引量と最大取引量を比較し、一定値以上であれば、最後の取引を自動的に決済するようにしてほしいです。 以下の例では、Expert Advisorは取引ロットが2より大きい場合、取引を終了するように指定しています。この条件はどうでしょうか? if ((typeLastOrder==OP_BUY && orderlots()>2 || typeLastOrder==OP_BUYSTOP && orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2)){ { { (typeLastOrder==OP_BUYSTOP &&orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2)) Alert("lot higher than 2 may not be used"); CloseDelete(lastTicket)。 を返します。}そして、なぜ開いてすぐに閉じなければならないのか?もしかしたら、まったく開かないほうがいいのかも? Konstantins Korolkovs 2019.05.12 13:23 #8397 Alexey Viktorov:なぜ最初に開いて、すぐに閉じるのか?全く開かない方がいいのでは?欲をコントロールするために Konstantin Lebedev 2019.05.12 17:24 #8398 赤、緑、黄色は珍しいので、ローソクの上のティック番号を左、右、または水平にシフトするのに役立ちます。この数字は縦に動きますが、横にはできないんです。所属するキャンドルの前に出てきてほしいのです。インジケーターのコードです。 //+------------------------------------------------------------------+ //| ファインボリューム.mq4//| イーブイビル|//| itisallillusion@gmail.com |//+------------------------------------------------------------------+#property copyright "Aliev"#property link "businessystems.ru "#property indicator_separate_window#property indicator_minimum 0#プロパティ indicator_buffers 6#property indicator_width1 2#property indicator_width2 2#property indicator_width3 2#property indicator_width4 4#property indicator_width5 4#プロパティ indicator_color1 SkyBlue#プロパティ indicator_color2 Maroon#property indicator_color3 イエロー#プロパティ indicator_color4 ブルー#property indicator_color5 レッドextern int BarsToCount = 400;extern string pus1 = "";extern string p_s = "ポイント設定";extern bool use_points = true;extern int distance_point= 80;extern color color_point_u = Lime;extern color color_point_d = Red;extern color color_point_s = Yellow;extern int size_point = 6;外部文字列 pus2 = "";extern string s_w = "Way";extern bool use_show_same_way = true;extern bool use_show_daily_way = true;extern string pus3 = "";extern string al = "Alerts";extern bool use_alerts = false;extern string up_alert = "Up";extern string down_alert = "ダウン";ダブルアップ[]。ダブルダウン[]。double mid[];double up2[]です。ダブルダウン2[]。double none[];static int prevtime = 0;int init(){SetIndexStyle(0,DRAW_HISTOGRAM)を設定します。SetIndexBuffer(0,up)を設定します。SetIndexStyle(1,DRAW_HISTOGRAM)を設定します。SetIndexBuffer(1,down)を設定します。SetIndexStyle(2,DRAW_HISTOGRAM)を設定します。SetIndexBuffer(2,mid)を設定します。SetIndexStyle(3,DRAW_HISTOGRAM)を設定します。SetIndexBuffer(3,up2)を設定。SetIndexStyle(4,DRAW_HISTOGRAM)を設定します。SetIndexBuffer(4,down2)を設定。SetIndexStyle(5,DRAW_NONE)を設定します。SetIndexBuffer(5,none)を設定します。IndicatorShortName("Aliev FX Volumes")。return(0)です。}int deinit(){文字列名_de;for(int c=BarsToCount;c>=0;c--){name_de="Vol_"+DoubleToStr(c,0);if(ObjectFind(name_de)!=-1) ObjectDelete(name_de);}return(0)です。}int start(){////////////up[0]=EMPTY_VALUE。down[0]=EMPTY_VALUE。mid[0]=EMPTY_VALUEとする。if(Close[0]>Open[0]) up[0]=Volume[0];if(Close[0]<Open[0]) down[0]=Volume[0];if(Close[0]==Open[0]) mid[0]=Volume[0];////////////////if(use_points)Ob_cre(0)です。if(!use_points)Ob_del(0);////////if(use_show_daily_way)Ob_cre2()です。if(!use_show_daily_way)Ob_del2()。////////////if (Time[0] == prevtime) return(0);prevtime = Time[0];for(int c=BarsToCount;c>=1;c--){////////////if(use_points)Ob_cre(c)です。if(!use_points)Ob_del(c)です。////////////up[c]=EMPTY_VALUEです。down[c]=EMPTY_VALUE。mid[c]=EMPTY_VALUEとする。up2[c]=EMPTY_VALUEです。down2[c]=EMPTY_VALUE。/////////////////if(Close[c]>Open[c]) up[c]=Volume[c];if(Close[c]<Open[c]) down[c]=Volume[c]。if(Close[c]==Open[c]) mid[c]=Volume[c];none[c]=Volume[c]+Volume[c]/6;//////////////if(use_show_same_way){if(Close[c]>Open[c] && Close[c+1]>Open[c+1])とする。{up2[c]=Volume[c]; up2[c+1]=Volume[c+1];up[c]=EMPTY_VALUE; up[c+1]=EMPTY_VALUE;}if(クローズ[c]<オープン[c] && クローズ[c+1]<オープン[c+1]){down2[c]=Volume[c]; down2[c+1]=Volume[c+1];down[c]=EMPTY_VALUE; down[c+1]=EMPTY_VALUE。}}if(use_alerts){if(up2[1]!=EMPTY_VALUE && up2[4]==EMPTY_VALUE) Alert(up_alert);if(down2[1]!=EMPTY_VALUE && down2[4]==EMPTY_VALUE) Alert(down_alert);}}return(0)です。}//func//+------------------------------------------------------------------+///////////////////////////////void Ob_cre(int num_of_bar){文字列名="Vol_"+DoubleToStr(num_of_bar,0);色 col_po;if(Close[num_of_bar]>Open[num_of_bar]) col_po=color_point_u;if(Close[num_of_bar]<Open[num_of_bar]) col_po=color_point_d;if(Close[num_of_bar]==Open[num_of_bar]) col_po=color_point_s;if(ObjectFind(name)==-1)とする。{ObjectCreate(name,OBJ_TEXT,0,0)を作成します。}ObjectSet(name,OBJPROP_TIME1,Time[num_of_bar])とする。ObjectSet(name,OBJPROP_PRICE1,High[num_of_bar]+distance_point*Point)とする。ObjectSet(name,OBJPROP_ANGLE,90)です。ObjectSetText(name,DoubleToStr(Volume[num_of_bar],0),size_point, "Arrial",col_po);}void Ob_cre2(){int Num_of_win = WindowFind("Aliev FX Volumes");if(ObjectFind("D_w")==-1){ObjectCreate("D_w",OBJ_LABEL,Num_of_win,0,0)を実行。ObjectSet("D_w",OBJPROP_CORNER,1)です。ObjectSet("D_w",OBJPROP_XDISTANCE,20)。ObjectSet("D_w",OBJPROP_YDISTANCE,20)を使用します。ObjectSetText("D_w", "Daily volume",10, "Arrial",White)。}if(ObjectFind("D_w_v")==-1){ObjectCreate("D_w_v",OBJ_LABEL,Num_of_win,0,0)を実行。ObjectSet("D_w_v",OBJPROP_CORNER,1)です。ObjectSet("D_w_v",OBJPROP_XDISTANCE,20)を使用します。ObjectSet("D_w_v",OBJPROP_YDISTANCE,45)を使用します。}カラー vol_col;if(iClose(Symbol(),PERIOD_D1,0)>iOpen(Symbol(),PERIOD_D1,0)) vol_col=Lime;if(iClose(Symbol(),PERIOD_D1,0)<iOpen(Symbol(),PERIOD_D1,0)) vol_col=OrangeRed.PERIOD_D1,0) vol_col=OrangeRed;ObjectSetText("D_w_v",DoubleToStr(iVolume(Symbol(),PERIOD_D1,0),0),12, "Arrial",vol_col) を設定します。}void Ob_del(int num_of_bar){文字列名="vol_"+DoubleToStr(num_of_bar,0);if(ObjectFind(name)!=-1)。{ObjectDelete(name)。}}void Ob_del2(){if(ObjectFind("D_w")!=-1)ObjectDelete("D_w")。if(ObjectFind("D_w_v")!=-1))です。ObjectDelete("D_w_v")。} Any questions from newcomers どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - コーディングのヘルプ VitGo 2019.05.12 17:29 #8399 koctja:赤、緑、黄色のようにローソクの上のティック番号を左、右、または水平にシフトするのに役立つことはまれである。この数字は縦に動きますが、横にはできないんです。所属するキャンドルの前に出てきてほしいのです。インジケーターのコードです。 そんな時は数字の前にスペースを入れればいいのですが...(横向き印刷の場合)。 Alekseu Fedotov 2019.05.12 18:20 #8400 koctja:赤、緑、黄色は珍しいので、ローソクの上のティック番号を左、右、または水平にシフトするのに役立ちます。この数字は縦に動きますが、横にはできないんです。所属するキャンドルの前に出てきてほしいのです。インジケーターのコードです。のOBJ_TEXT オブジェクトにアンカーポイントを設定してみて ください。 ANCHOR_CENTERアンカーポイントは厳密には オブジェクトの中心で ある ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_CENTER); 1...833834835836837838839840841842843844845846847...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
どうしたんですか?
テンプレートクラスがあり
そして、コードではこのように作ってみる。
眉をひそめる!
そして、コードでこんなことをやってみる。
眉をひそめる!
こんな風に必要なんです。
https://www.mql5.com/ru/forum/221917/page25#comment_11205772 に掲載されているテンプレートでの作業例です。
私のコードをあなたのコードに置き換えてみてください。
こうでなければならない。
以下は、私が掲載したテンプレートでの作業例です。https://www.mql5.com/ru/forum/221917/page25#comment_11205772
私のコードを使って、あなたのコードを書いてみてください。
ありがとうございました。
テキストの位置を行に対して相対的に設定することは可能ですか?
線はプログラムで作成し、テキストは線の上に描画されますが、場合によってはテキストを下に配置する必要があります...。
どうすればいいのでしょうか?
私は、買い取引を開くときに、アドバイザーが開いた取引の取引ロットを最大取引ロットと比較し、ロットが特定の値以上であれば、アドバイザーが自動的に最後の取引を閉じるようにしたいと思います。
以下の例では、取引ロットが2以上であれば、アドバイザーが取引を閉じることを示しました...。この条件はどうでしょうか?
if ((typeLastOrder==OP_BUY && orderlots()>2 || typeLastOrder==OP_BUYSTOP && orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2) ){
Alert("no lot higher than 2 is allowed");
CloseDelete(lastTicket);
return;
}
午後
Expert Advisorで、開いた取引の取引量と最大取引量を比較し、一定値以上であれば、最後の取引を自動的に決済するようにしてほしいです。
以下の例では、Expert Advisorは取引ロットが2より大きい場合、取引を終了するように指定しています。この条件はどうでしょうか?
if ((typeLastOrder==OP_BUY && orderlots()>2 || typeLastOrder==OP_BUYSTOP && orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2)){ { { (typeLastOrder==OP_BUYSTOP &&orderlots()>2 || typeLastOrder==OP_BUYLIMIT && orderlots()>2))
Alert("lot higher than 2 may not be used");
CloseDelete(lastTicket)。
を返します。
}
そして、なぜ開いてすぐに閉じなければならないのか?もしかしたら、まったく開かないほうがいいのかも?
なぜ最初に開いて、すぐに閉じるのか?全く開かない方がいいのでは?
欲をコントロールするために
赤、緑、黄色は珍しいので、ローソクの上のティック番号を左、右、または水平にシフトするのに役立ちます。この数字は縦に動きますが、横にはできないんです。所属するキャンドルの前に出てきてほしいのです。インジケーターのコードです。
//+------------------------------------------------------------------+
赤、緑、黄色のようにローソクの上のティック番号を左、右、または水平にシフトするのに役立つことはまれである。この数字は縦に動きますが、横にはできないんです。所属するキャンドルの前に出てきてほしいのです。インジケーターのコードです。
赤、緑、黄色は珍しいので、ローソクの上のティック番号を左、右、または水平にシフトするのに役立ちます。この数字は縦に動きますが、横にはできないんです。所属するキャンドルの前に出てきてほしいのです。インジケーターのコードです。
のOBJ_TEXT オブジェクトにアンカーポイントを設定してみて ください。
ANCHOR_CENTER
アンカーポイントは厳密には オブジェクトの中心で ある