コーディングのヘルプ - ページ 606

 

こんにちは。

私のインジケーターに問題があります。このコードは非常によく動作します。

//+------------------------------------------------------------------+

//| RSMA.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright "Tartut"

#property link ""

#property indicator_separate_window

#property indicator_minimum -40

#property indicator_maximum 100

#property indicator_level1 19

#property indicator_level2 -19

#property indicator_level3 0

#property indicator_buffers 3

#property indicator_color1 Lime

#property indicator_color2 Yellow

#property indicator_color3 MediumOrchid

extern int RSI_Period = 9;

extern int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

extern int MA_Period = 12;

extern int MA_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double MA_Array[],RSI[], Histo[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators setting

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName("RSMA");

SetIndexBuffer(0,Histo);

SetIndexLabel(0,"RSMA");

SetIndexBuffer(1,MA_Array);

SetIndexLabel(1,"MA("+MA_Period+")");

SetIndexBuffer(2,RSI);

SetIndexLabel(2,"RSI("+RSI_Period+")");

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int limit = Bars - IndicatorCounted() - 1;

//---- indicator calculation

ArrayResize(RSI,limit+1);

ArrayResize(MA_Array,limit+1);

for(int i=limit; i>=0; i--)

{

RSI= iRSI(NULL,0,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--)

{

MA_Array = iMAOnArray(RSI,0,MA_Period,0,MA_Method,i);

}

for(i=limit; i>=0; i--)

{

Histo = RSI-MA_Array;

}

//----

return(0);

}

//+------------------------------------------------------------------+

RSIとEMAのラインを削除したいのですが、そうするとヒストグラムの値が変わってしまうのです :/。

添付ファイルに2つのインジケータを追加しました。私を助けてください

私の英語のために申し訳ありません。

ファイル:
 
Tartut:
こんにちは。

私のインジケーターに問題があります。このコードは非常によく動作します。

//+------------------------------------------------------------------+

//| RSMA.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright "Tartut"

#property link ""

#property indicator_separate_window

#property indicator_minimum -40

#property indicator_maximum 100

#property indicator_level1 19

#property indicator_level2 -19

#property indicator_level3 0

#property indicator_buffers 3

#property indicator_color1 Lime

#property indicator_color2 Yellow

#property indicator_color3 MediumOrchid

extern int RSI_Period = 9;

extern int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

extern int MA_Period = 12;

extern int MA_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double MA_Array[],RSI[], Histo[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

//---- indicators setting

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName("RSMA");

SetIndexBuffer(0,Histo);

SetIndexLabel(0,"RSMA");

SetIndexBuffer(1,MA_Array);

SetIndexLabel(1,"MA("+MA_Period+")");

SetIndexBuffer(2,RSI);

SetIndexLabel(2,"RSI("+RSI_Period+")");

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int limit = Bars - IndicatorCounted() - 1;

//---- indicator calculation

ArrayResize(RSI,limit+1);

ArrayResize(MA_Array,limit+1);

for(int i=limit; i>=0; i--)

{

RSI= iRSI(NULL,0,RSI_Period,RSI_Applied_Price,i);

}

for(i=limit; i>=0; i--)

{

MA_Array = iMAOnArray(RSI,0,MA_Period,0,MA_Method,i);

}

for(i=limit; i>=0; i--)

{

Histo = RSI-MA_Array;

}

//----

return(0);

}

//+------------------------------------------------------------------+[/CODE]

I would like delete RSI and EMA line, but when I do it, histogram change value. :/

I add attachment two indicators. Help me!

Sorry for my English.

冒頭を次のように変更してください。

[CODE]//+------------------------------------------------------------------+

//| RSMA.mq4

//| |

//| |

//+------------------------------------------------------------------+

#property コピーライト "Tartut"

#property リンク ""

#property indicator_separate_window(インジケーター・セパレート・ウィンドウ

#property indicator_minimum -40

#property indicator_maximum 100 (インジケーターの最大値)

#property indicator_level1 19

#property indicator_level2 -19

#プロパティ indicator_level3 0

#property indicator_buffers 1 (インジケーターバッファー)

#property indicator_color1 ライム

extern int RSI_Period = 9;

extern int RSI_Applied_Price = 0;/0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

extern int MA_Period = 12;

extern int MA_Method = 1;// 0=SMA、1=EMA、2=SMMA、3=LWMA

double MA_Array[]、RSI[]、Histo[]。

//+------------------------------------------------------------------+

//| カスタムインジケータ初期化関数

//+------------------------------------------------------------------+

int init()

{

IndicatorBuffers)3)です。

//---- インジケータ設定
 
mladen:

冒頭をこれに変更する:

//+------------------------------------------------------------------+

//| RSMA.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright "Tartut"

#property link ""

#property indicator_separate_window

#property indicator_minimum -40

#property indicator_maximum 100

#property indicator_level1 19

#property indicator_level2 -19

#property indicator_level3 0

#property indicator_buffers 1

#property indicator_color1 Lime

extern int RSI_Period = 9;

extern int RSI_Applied_Price = 0;//0=close, 1=open, 2=high, 3=low, 4=(high+low)/2, 5=(high+low+close)/3, 6=(high+low+close+close)/4

extern int MA_Period = 12;

extern int MA_Method = 1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

double MA_Array[],RSI[], Histo[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

IndicatorBuffers)3);

//---- indicators setting

イェー!うまくいったね。 ありがとうございます。

 

次の問題があります。私のインジケータは、現在のバーの値を変更しません。チャートをリフレッシュする必要があります。

//+------------------------------------------------------------------+

//| RSMA Histogram.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright "Tartut"

#property link ""

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Lime

#property indicator_minimum -35

#property indicator_maximum 35

#property indicator_level1 19

#property indicator_level2 -19

#property indicator_level3 0

//#property indicator_color2 Yellow

//#property indicator_color3 MediumOrchid

extern double OverSold=-19.0;

extern double OverBought=19.0;

extern int RSI_Period=9;

extern int RSI_Applied_Price=0;

extern int MA_Period=12;

extern int MA_Method=1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

extern bool ShowArrows=true;

extern color OverSoldColor=Gold;

extern color OverBoughtColor = Gold;

extern string arrowsIdentifier = "RSMA arrows";

extern int arrowsWidth = 1;

extern int IDWindow=1;

extern string _Divergence="<>";

extern string _CBars="<>";

extern int CBars=99;

extern bool CheckDivergence=false;

extern bool CheckSlowDownMomentum=false;

extern string DivergenceIndentifier="RSMA Divergence";

double MA_Array[],RSI[],Histo[];

int trend[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

IndicatorBuffers(3);

//---- indicators setting

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName("RSMA Histogram");

SetIndexBuffer(0,Histo);

SetIndexLabel(0,"RSMA");

SetIndexBuffer(1,MA_Array);

SetIndexLabel(1,"MA("+MA_Period+")");

SetIndexBuffer(2,RSI);

SetIndexLabel(2,"RSI("+RSI_Period+")");

return(0);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int deinit()

{

deleteArrows();

fnDeleteAllDivergence();

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int limit=Bars-IndicatorCounted();

if(limit<0) return(-1);

if(limit>0) limit--;

//---- indicator calculation

ArrayResize(trend,limit+1);

ArrayResize(RSI,limit+1);

ArrayResize(MA_Array,limit+1);

for(int i=0; i<limit; i++)

{

RSI=iRSI(NULL,0,RSI_Period,RSI_Applied_Price,i);

}

for(i=0; i<limit; i++)

{

MA_Array=iMAOnArray(RSI,0,MA_Period,0,MA_Method,i);

}

for(i=0; i<limit; i++)

{

Histo=RSI-MA_Array;

if(Histo>OverBought)

trend=1;

else if(Histo<OverSold)

trend=-1;

manageArrow(i);

}

if(CheckDivergence==true)

{

int x= CBars/3;

for(i=0; i<x; i++)

{

double open0=iOpen(NULL,0,i);

double close0= iClose(NULL,0,i);

double open1 = iOpen(NULL,0,i+1);

double close1= iClose(NULL,0,i+1);

double open2 = iOpen(NULL,0,i+2);

double close2 = iClose(NULL, 0, i+2);

bool momentum = true;

if(CheckSlowDownMomentum==true)

{

double bar0 = MathAbs(open0-close0);

double bar1 = MathAbs(open1-close1);

double bar2 = MathAbs(open2-close2);

if(bar0<bar1 && bar1<bar2)

momentum=true;

else

momentum=false;

}

//PUT

if(Histo<Histo && Histo<Histo && open0<close0 && open1<close1 && open2<close2 && momentum==true)

{

double high0 = iHigh(NULL, 0, i);

double high2 = iHigh(NULL, 0, i+2);

TrendCreate(DivergenceIndentifier+"Sub"+i,Time,Histo,Time,Histo,Red,STYLE_SOLID,1,IDWindow);

TrendCreate(DivergenceIndentifier+"Main"+i,Time,high2,Time,high0,Red,STYLE_SOLID,1,0);

}

else if(Histo>Histo && Histo>Histo && open0>close0 && open1>close1 && open2>close2 && momentum==true)

{

double low0 = iLow(NULL, 0, i);

double low2 = iLow(NULL, 0, i+2);

TrendCreate(DivergenceIndentifier+"Sub"+i,Time,Histo,Time,Histo,Red,STYLE_SOLID,1,IDWindow);

TrendCreate(DivergenceIndentifier+"Main"+i,Time,low2,Time,low0,Red,STYLE_SOLID,1,0);

}

}

}

return(0);

}

//+------------------------------------------------------------------+

void manageArrow(int i)

{

if(ShowArrows)

{

deleteArrow(Time);

if(trend ==-1) drawArrow(i,OverBoughtColor,159,false);

if(trend == 1) drawArrow(i,OverSoldColor ,159,true );

}

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

void fnDeleteAllDivergence()

{

string lookFor=DivergenceIndentifier;

string objectName;

int lookForLength=StringLen(lookFor);

for(int i=ObjectsTotal()-1; i>=0; i--)

{

objectName=ObjectName(i);

if(StringSubstr(objectName,0,lookForLength)==lookFor) ObjectDelete(objectName);

}

}

//

//

//

//

//

void drawArrow(int i,color theColor,int theCode,bool up)

{

string name=arrowsIdentifier+":"+Time;

double gap=3.0*iATR(NULL,0,10,i)/4.0; //20

//

//

//

//

//

ObjectCreate(name,OBJ_ARROW,0,Time,0);

ObjectSet(name,OBJPROP_ARROWCODE,theCode);

ObjectSet(name,OBJPROP_COLOR,theColor);

ObjectSet(name,OBJPROP_WIDTH,arrowsWidth);

if(up)

ObjectSet(name,OBJPROP_PRICE1,High+gap);

else ObjectSet(name,OBJPROP_PRICE1,Low-gap);

}

//

//

//

//

//

void deleteArrows()

{

string lookFor = arrowsIdentifier+":";

int lookForLength = StringLen(lookFor);

for(int i=ObjectsTotal()-1; i>=0; i--)

{

string objectName=ObjectName(i);

if(StringSubstr(objectName,0,lookForLength)==lookFor) ObjectDelete(objectName);

}

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

void deleteArrow(datetime time)

{

string lookFor=arrowsIdentifier+":"+time; ObjectDelete(lookFor);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

//

//

//

//

//

bool TrendCreate(string name="Line1",

datetime time1=0, // first point time

double price1=0, // first point price

datetime time2=0, // second point time

double price2=0, // second point price

const color clr=clrRed, // line color

const ENUM_LINE_STYLE style=STYLE_SOLID, // line style

const int width=1,

const int window=0 // line width // highlight to move

)

{

//--- reset the error value

ResetLastError();

//--- create a trend line by the given coordinates

if(!ObjectCreate(name,OBJ_TREND,window,time1,price1,time2,price2))

{

Print(__FUNCTION__,": failed to create a trend line! Error code = ",GetLastError());

return(false);

}

//--- set line color

ObjectSetInteger(0,name,OBJPROP_COLOR,clr);

//--- set line display style

ObjectSetInteger(0,name,OBJPROP_STYLE,style);

//--- set line width

ObjectSetInteger(0,name,OBJPROP_WIDTH,width);

ObjectSetInteger(0,name,OBJPROP_SELECTED,false);

//--- enable (true) or disable (false) the mode of continuation of the line's display to the right

ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);

//--- successful execution

return(true);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

void CleanPoint(int i,double &first[],double &second[])

{

if((second!=EMPTY_VALUE) &&(second !=EMPTY_VALUE))

second=EMPTY_VALUE;

else

if((first!=EMPTY_VALUE) && (first!=EMPTY_VALUE) && (first==EMPTY_VALUE))

first=EMPTY_VALUE;

}

//

//

//

//

//

void PlotPoint(int i,double &first[],double &second[],double &from[])

{

if(first==EMPTY_VALUE)

{

if(first==EMPTY_VALUE)

{

first = from;

first = from;

second = EMPTY_VALUE;

}

else

{

second = from;

second = from;

first = EMPTY_VALUE;

}

}

else

{

first = from;

second = EMPTY_VALUE;

}

}

//+------------------------------------------------------------------+

//---

 
Tartut:
次の問題があります。私のインジケータは、現在のバーの値を変更しません。チャートをリフレッシュする必要があります。

このように試してみてください。

//+------------------------------------------------------------------+

//| RSMA Histogram.mq4 |

//| |

//| |

//+------------------------------------------------------------------+

#property copyright "Tartut"

#property link ""

#property indicator_separate_window

#property indicator_buffers 1

#property indicator_color1 Lime

#property indicator_minimum -35

#property indicator_maximum 35

#property indicator_level1 19

#property indicator_level2 -19

#property indicator_level3 0

//#property indicator_color2 Yellow

//#property indicator_color3 MediumOrchid

extern double OverSold=-19.0;

extern double OverBought=19.0;

extern int RSI_Period=9;

extern int RSI_Applied_Price=0;

extern int MA_Period=12;

extern int MA_Method=1;// 0=SMA, 1=EMA, 2=SMMA, 3=LWMA

extern bool ShowArrows=true;

extern color OverSoldColor=Gold;

extern color OverBoughtColor = Gold;

extern string arrowsIdentifier = "RSMA arrows";

extern int arrowsWidth = 1;

extern int IDWindow=1;

extern string _Divergence="<>";

extern string _CBars="<>";

extern int CBars=99;

extern bool CheckDivergence=false;

extern bool CheckSlowDownMomentum=false;

extern string DivergenceIndentifier="RSMA Divergence";

double MA_Array[],RSI[],Histo[];

double trend[];

//+------------------------------------------------------------------+

//| Custom indicator initialization function |

//+------------------------------------------------------------------+

int init()

{

IndicatorBuffers(4);

//---- indicators setting

SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);

SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,1);

SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,1);

IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS));

IndicatorShortName("RSMA Histogram");

SetIndexBuffer(0,Histo);

SetIndexLabel(0,"RSMA");

SetIndexBuffer(1,MA_Array);

SetIndexLabel(1,"MA("+MA_Period+")");

SetIndexBuffer(2,RSI);

SetIndexLabel(2,"RSI("+RSI_Period+")");

SetIndexBuffer(3,trend);

return(0);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

int deinit()

{

deleteArrows();

fnDeleteAllDivergence();

return(0);

}

//+------------------------------------------------------------------+

//| Custom indicator iteration function |

//+------------------------------------------------------------------+

int start()

{

int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

if(counted_bars>0) counted_bars--;

int limit = MathMin(Bars-counted_bars,Bars-1);

//---- indicator calculation

Comment(limit);

for(int i=0; i<limit; i++)

{

RSI=iRSI(NULL,0,RSI_Period,RSI_Applied_Price,i);

}

for(i=0; i<limit; i++)

{

MA_Array=iMAOnArray(RSI,0,MA_Period,0,MA_Method,i);

}

for(i=0; i<limit; i++)

{

Histo=RSI-MA_Array;

if(Histo>OverBought)

trend=1;

else if(Histo<OverSold)

trend=-1;

manageArrow(i);

}

if(CheckDivergence==true)

{

int x= CBars/3;

for(i=0; i<x; i++)

{

double open0=iOpen(NULL,0,i);

double close0= iClose(NULL,0,i);

double open1 = iOpen(NULL,0,i+1);

double close1= iClose(NULL,0,i+1);

double open2 = iOpen(NULL,0,i+2);

double close2 = iClose(NULL, 0, i+2);

bool momentum = true;

if(CheckSlowDownMomentum==true)

{

double bar0 = MathAbs(open0-close0);

double bar1 = MathAbs(open1-close1);

double bar2 = MathAbs(open2-close2);

if(bar0<bar1 && bar1<bar2)

momentum=true;

else

momentum=false;

}

//PUT

if(Histo<Histo && Histo<Histo && open0<close0 && open1<close1 && open2<close2 && momentum==true)

{

double high0 = iHigh(NULL, 0, i);

double high2 = iHigh(NULL, 0, i+2);

TrendCreate(DivergenceIndentifier+"Sub"+i,Time,Histo,Time,Histo,Red,STYLE_SOLID,1,IDWindow);

TrendCreate(DivergenceIndentifier+"Main"+i,Time,high2,Time,high0,Red,STYLE_SOLID,1,0);

}

else if(Histo>Histo && Histo>Histo && open0>close0 && open1>close1 && open2>close2 && momentum==true)

{

double low0 = iLow(NULL, 0, i);

double low2 = iLow(NULL, 0, i+2);

TrendCreate(DivergenceIndentifier+"Sub"+i,Time,Histo,Time,Histo,Red,STYLE_SOLID,1,IDWindow);

TrendCreate(DivergenceIndentifier+"Main"+i,Time,low2,Time,low0,Red,STYLE_SOLID,1,0);

}

}

}

return(0);

}

//+------------------------------------------------------------------+

void manageArrow(int i)

{

if(ShowArrows)

{

deleteArrow(Time);

if(trend ==-1) drawArrow(i,OverBoughtColor,159,false);

if(trend == 1) drawArrow(i,OverSoldColor ,159,true );

}

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

void fnDeleteAllDivergence()

{

string lookFor=DivergenceIndentifier;

string objectName;

int lookForLength=StringLen(lookFor);

for(int i=ObjectsTotal()-1; i>=0; i--)

{

objectName=ObjectName(i);

if(StringSubstr(objectName,0,lookForLength)==lookFor) ObjectDelete(objectName);

}

}

//

//

//

//

//

void drawArrow(int i,color theColor,int theCode,bool up)

{

string name=arrowsIdentifier+":"+Time;

double gap=3.0*iATR(NULL,0,10,i)/4.0; //20

//

//

//

//

//

ObjectCreate(name,OBJ_ARROW,0,Time,0);

ObjectSet(name,OBJPROP_ARROWCODE,theCode);

ObjectSet(name,OBJPROP_COLOR,theColor);

ObjectSet(name,OBJPROP_WIDTH,arrowsWidth);

if(up)

ObjectSet(name,OBJPROP_PRICE1,High+gap);

else ObjectSet(name,OBJPROP_PRICE1,Low-gap);

}

//

//

//

//

//

void deleteArrows()

{

string lookFor = arrowsIdentifier+":";

int lookForLength = StringLen(lookFor);

for(int i=ObjectsTotal()-1; i>=0; i--)

{

string objectName=ObjectName(i);

if(StringSubstr(objectName,0,lookForLength)==lookFor) ObjectDelete(objectName);

}

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

void deleteArrow(datetime time)

{

string lookFor=arrowsIdentifier+":"+time; ObjectDelete(lookFor);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

//

//

//

//

//

bool TrendCreate(string name="Line1",

datetime time1=0, // first point time

double price1=0, // first point price

datetime time2=0, // second point time

double price2=0, // second point price

const color clr=clrRed, // line color

const ENUM_LINE_STYLE style=STYLE_SOLID, // line style

const int width=1,

const int window=0 // line width // highlight to move

)

{

//--- reset the error value

ResetLastError();

//--- create a trend line by the given coordinates

if(!ObjectCreate(name,OBJ_TREND,window,time1,price1,time2,price2))

{

Print(__FUNCTION__,": failed to create a trend line! Error code = ",GetLastError());

return(false);

}

//--- set line color

ObjectSetInteger(0,name,OBJPROP_COLOR,clr);

//--- set line display style

ObjectSetInteger(0,name,OBJPROP_STYLE,style);

//--- set line width

ObjectSetInteger(0,name,OBJPROP_WIDTH,width);

ObjectSetInteger(0,name,OBJPROP_SELECTED,false);

//--- enable (true) or disable (false) the mode of continuation of the line's display to the right

ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);

//--- successful execution

return(true);

}

//+------------------------------------------------------------------+

//| |

//+------------------------------------------------------------------+

void CleanPoint(int i,double &first[],double &second[])

{

if((second!=EMPTY_VALUE) &&(second !=EMPTY_VALUE))

second=EMPTY_VALUE;

else

if((first!=EMPTY_VALUE) && (first!=EMPTY_VALUE) && (first==EMPTY_VALUE))

first=EMPTY_VALUE;

}

//

//

//

//

//

void PlotPoint(int i,double &first[],double &second[],double &from[])

{

if(first==EMPTY_VALUE)

{

if(first==EMPTY_VALUE)

{

first = from;

first = from;

second = EMPTY_VALUE;

}

else

{

second = from;

second = from;

first = EMPTY_VALUE;

}

}

else

{

first = from;

second = EMPTY_VALUE;

}

}

//+------------------------------------------------------------------+

//---
 
mladen:

このように試してみてください。

You are the best ありがとうございます。

 

こんにちは、どなたかこのインジケーターを緑のアップしか表示されないので、赤いバーもダウンで表示されるように修正していただけませんか?よろしくお願いします。(Deltaforce Volume)

また、バーの太さを調整できるように修正していただけませんか?(Deltaforce)ありがとうございます。

ファイル:
 

こんにちは、MladenとMr.Tools

インジケータやEAでできるかもしれませんが、どうしても必要なのです。

私は半自動注文システムが必要です。つまり、私は最初の取引を手動で取得し、SLとTPで「成行注文」、SLがヒットした場合、システムはSLで反対方向に新しい注文を作成します(新しい注文はエントリ)、最初の取引のエントリは現在SLとPipで常に同じ値であり、私はセットアップで、何枚またはミニロットはマーチンゲイルの一種で、進行中の貿易に開かれるべきである、実際にはありませんが置きたいと思うのですが、手動。TPがヒットするまで、システムは新しい注文を作成する必要があります。TPがヒットすると、システムは停止するか閉じます。私は、私が説明で混乱を作成しなかったことを願っています!;-)

私が使用することができるこのような何かがありますか?

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

 
laborax:
ムラデンさん、ツールズさん、こんにちは

私は問題があり、これを行う方法がわからない、多分インジケータまたはEAで、しかし私は本当にそれが必要です、多分あなたは私を助けることができます。

私は半自動注文システムが必要です。つまり、私は最初の取引を手動で取得し、SLとTPで「成行注文」、SLがヒットした場合、システムはSLで反対方向に新しい注文を作成します(新しい注文はエントリです)、最初の取引のエントリは現在SLとPIPSで常に同じ値であり、私はセットアップで手動で置きたい、何枚またはミニロットはマーチンゲールの種類、しかし実際にはない進歩した取引で開かれるべきであるか?TPがヒットするまで、システムは新しい注文を作成する必要があります。TPがヒットすると、システムは停止するか閉じます。私は、私が説明で混乱を作成しなかったことを願っています!;-)

このような使い方ができるものがあるのでしょうか?

どうもありがとうございます。

ラバックス

このルールはEAを作るには緩すぎるし、私の知る限りではそのようなEAはない。

 

このEAを見つけました、私が探していたものです...あなたはそれについてどう思いますか?

https://www.mql5.com/en/forum/184476