//+------------------------------------------------------------------+ //| DRAW_COLOR_LINE Lite.mq5 | //| Copyright 2016, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright"Copyright 2011, MetaQuotes Software Corp."#property link"https://www.mql5.com"#property version"1.00"#property description"An indicator to demonstrate DRAW_COLOR_LINE"#property description"It draws a line on Close price in colored pieces of 20 bars each"#property description"The width, style and color of the line parts are changed randomly"#property description"every N ticks"#property indicator_chart_window#property indicator_buffers2#property indicator_plots1//--- plot ColorLine #property indicator_label1"ColorLine"#property indicator_type1DRAW_COLOR_LINE//--- Define 5 colors for coloring each bar (they are stored in the special array) #property indicator_color1clrBlue,clrRed// (Up to 64 colors can be specified) #property indicator_style1STYLE_SOLID#property indicator_width13//--- A buffer for plotting double ColorLineBuffer[];
//--- A buffer for storing the line color on each bar double ColorLineColors[];
//+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ intOnInit()
{
//--- Binding an array and an indicator buffer SetIndexBuffer(0,ColorLineBuffer,INDICATOR_DATA);
SetIndexBuffer(1,ColorLineColors,INDICATOR_COLOR_INDEX);
//---ArraySetAsSeries(ColorLineBuffer,true);
ArraySetAsSeries(ColorLineColors,true);
//--- return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
ArraySetAsSeries(close,true);
if(prev_calculated==0)
{
for(int i=0;i<rates_total;i++)
ColorLineBuffer[i]=close[i];
}
//--- Block for calculating indicator values for(int i=0;i<10;i++)
{
//--- Write the indicator value into the buffer
ColorLineBuffer[i]=close[i];
//--- For this bar, the line will have the color with the index color_index if(ColorLineBuffer[i]>ColorLineBuffer[i+1])
ColorLineColors[i]=0;
else
ColorLineColors[i]=1;
}
//--- Return the prev_calculated value for the next call of the function return(rates_total);
}
//+------------------------------------------------------------------+
В своей статье я сделал достаточно убедительные тесты, доказывающие тот факт, что далеко не каждый вызов пользовательского или даже технического индикатора в коде - это самый оптимальный вариант для обработки им промежуточных расчетов в разрабатываемом индикаторе. Итоговый результат по скорости своего исполнения может оказаться значительно...
ありがとうございました。商業的な目的の場合は?
For Market in sense of ?
となると、独自のGUIライブラリを独自のイメージで構築する必要があります :-)
MQLは複雑なGUIを意図したものではありません。計数や取引を目的としたものです。
つまり、できるんだけど、耐えられないくらいバカなんです。
CCanvasライブラリの勉強をすることにした
エラーも出ないし(というか、コンパイラが何も出さない)、画面にも何も表示されないので、解らない。赤い三角形を描きたいのですが・・・。
そして、その結果がこちらです。
CCanvasライブラリの探求を決意
既成の例題をありがとうございました
もしよろしければ、私の失敗談を少し聞かせていただけませんか?ただ、ホームページのヘルプを見ていたら、ドキュメントには機能そのものの説明しかなく、どの機能の後にどの機能があるかという下の例がないのです
既成の例題をありがとうございました
もしよろしければ、私の失敗談を少し聞かせていただけませんか?ただ、ホームページのヘルプを見ていたら、ドキュメントには機能そのものの説明しかなく、どの機能がどの場所の後にあるのか、以下の例がないのです。
https://www.mql5.com/ru/search#!keyword=Canvas&module=mql5_module_articles の記事を読んでください。
こんにちは!!!
利益、ロット、チケットで負け注文を記憶する関数を書いてみたいのですが。
今まで配列を扱ったことがなく、例題や参考文献でやっていました。
配列のサイズを どこで、どのように指定すればよいのかわかりません。
ご確認の上、可能であれば修正してください。
======
構造体オーダー
{
double OrProf;
double OrLot;
int OrTiK;
};
StructOrder OrBuy[];
StructOrder OrSell[];
====
void Cloce_No_FreeMargin()
{
double profit_SELL = 0;
double profit_BUY = 0;
double no_profits_BUY = 0;
double no_profits_SELL = 0;
double cur_profits_SELL = 0;
double cur_profits_BUY = 0;
//---
int bo = 0;
int so = 0;
InitStruct_Order(OrBuy)です。
InitStruct_Order(OrSell)です。
//ArrayResize(OrBuy,bo);
//ArrayResize(OrSell,so)です。
for(int trade= OrdersTotal()-1; trade>= 0; trade--)
{
if(OrderSelect(trade,SELECT_BY_POS,MODE_TRADES)==false)
が壊れる。
if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
{
if(オーダータイプ()==OP_SELL)
{
profit_SELL+=OrderProfit()+OrderSwap()+OrderCommission()です。
}
if(OrderType()==OP_BUY)
{
profit_BUY+=OrderProfit()+OrderSwap()+OrderCommission()です。
}
//===========================================================
if(オーダータイプ()==OP_SELL)
{
cur_profits_SELL=OrderProfit()+OrderSwap()+OrderCommission()です。
if(cur_profits_SELL<0)
{
no_profits_SELL+=cur_profits_SELL。
OrSell[so].OrProf = OrderProfit()-OrderSwap()-OrderCommission().OrSell[so].OrProf = OrderProfit()-OrderSwap()-OrderCommission();
OrSell[so].OrLot=OrderLots()です。
OrSell[so].OrTiK = OrderTicket();
so++。
Print(" SELL type: Profit - ",OrBuy[bo].OrProf,": Lot - ",OrBuy[bo].OrLot,": Ticket - ",OrBuy[bo].OrTiK);
}
}
//===========================================================
if(OrderType()==OP_BUY)
{
cur_profits_BUY=OrderProfit()+OrderSwap()+OrderCommission()です。
if(cur_profits_BUY<0)
{
no_profits_BUY+=cur_profits_BUY。
OrBuy[bo].OrProf = OrderProfit()-OrderSwap()-OrderCommission().OrBuy[bo].OrProf = OrderProfit()-OrderSwap()-OrderCommission();
OrBuy[bo].OrLot = OrderLots().OrBuy[bo].OrLot = OrderLots();
OrBuy[bo].OrTiK = OrderTicket().OrBuy[bo].OrTiK = OrderTicket();
bo++。
Print(" BUY type: Profit - ",OrBuy[bo].OrProf,": Lot - ",OrBuy[bo].OrLot,": Ticket - ",OrBuy[bo].OrTiK);
}
}
}
}
}
//+------------------------------------------------------------------+
//| 注文のための初期構造
//+------------------------------------------------------------------+
void InitStruct_Order(StructOrder &Masiv[])
{
int Size = ArrayRange(Masiv,0);
for(int i=0; i<Size; i++)
{
Masiv[i].OrProf = 0;
Masiv[i].OrLot = 0;
Masiv[i].OrTiK = 0;
}
}
こんにちは。
マーケットプレイス用に、mq4ファイルと多数のmqhファイルからなるプロジェクトを 1つにまとめる方法を教えてください。
iCustomでExpert Advisorにリバーサル指標をプログラムしたいのですが、1本の線で構成され、買いと売りで異なる色を使用するものです。矢印がない。色については、3つのバッファを持っているように見えますが、実際には、マウスでホールドすると、両方の色について1つのValue1しか表示されません。棒グラフの比較と、0との比較の両方を試しましたが、役に立ちません。このような指標の反転をプログラムする方法、誰が知っている?ここでは、インジケーターバッファーの初期設定とその画像について説明します。StepMAのように見えますが、そうではありません。
iCustomでExpert Advisorにリバーサル指標をプログラムしたいのですが、1本の線で構成され、買いと売りで異なる色を使用するものです。矢印がない。色については、3つのバッファを持っているように見えますが、実際には、マウスでホールドすると、両方の色について1つのValue1しか表示されません。棒グラフを比較するのと、ゼロと比較するのと、両方試しましたが、役に立ちません。このような指標の反転をプログラムする方法、誰が知っている?ここでは、インジケーターバッファーの初期設定とその画像について説明します。StepMAのように見えますが、そうではありません。
ボタンを使って、コードを挿入して ください。
iCustomでExpert Advisorにリバーサルインジケーターをプログラムしたいのですが、1本の線で構成され、買いと売りで色が異なります。矢印がない。色については、3つのバッファを持っているように見えますが、実際には、マウスでホールドすると、両方の色について1つのValue1しか表示されません。両方のバーとゼロを比較してみましたが、役に立ちません。このような指標の反転をプログラムする方法、誰が知っている?ここでは、インジケーターバッファーの初期設定とその画像について説明します。StepMAのように見えますが、そうではありません。
例
DRAW_COLOR_LINEに基づく指標。インジケータバッファは 2つあり、1つは値用('ColorLineBuffer')、もう1つは色用('ColorLineColors')である。
そしてExpert Advisorは、バッファ番号「0」(「ColorLineBuffer」)と番号「1」(「ColorLineColors」)から値をコピーします。