코딩 도움말 - 페이지 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.

시작을 다음과 같이 변경합니다.

[코드]//+-------------------------------------------- ----------------------+

//| RSMA.mq4 |

//| |

//| |

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

#재산권 "Tartut"

#속성 링크 ""

#속성 표시기_분리_창

#속성 표시기_최소 -40

#속성 표시기_최대 100

#속성 표시기_레벨1 19

#속성 표시기_레벨2 -19

#속성 표시기_레벨3 0

#속성 표시기_버퍼 1

#property indicator_color1 라임

외부 int RSI_Period = 9;

extern int RSI_Applied_Price = 0;//0=종가, 1=시가, 2=고가, 3=저가, 4=(고가+저가)/2, 5=(고가+저가+종가)/3, 6=(고가 +낮은+종가+종가)/4

외부 정수 MA_Period = 12;

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

이중 MA_Array[],RSI[], Histo[];

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

//| 커스텀 인디케이터 초기화 기능 |

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

정수 초기화()

{

표시기버퍼)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:

다음과 같이 시도하십시오.

너는 최고야 감사해요

 

안녕하세요, 누군가 이 표시기를 수정하여 빨간색 막대를 아래로 표시하고 초록색 위쪽만 볼 수 있도록 수정해 주실 수 있습니까? 미리 감사드립니다. (델타포스 볼륨)

또한 막대의 두께를 조정할 수 있도록 이 문제를 수정해 주실 수 있습니까? (델타포스) 다시 한번 감사합니다

파일:
 

안녕하세요 Mladen과 Mr. Tools

문제가 있고 지표나 EA를 사용하여 이 작업을 수행하는 방법을 모르겠습니다. 하지만 정말 필요합니다. 도움이 될 수 있습니다.

반자동 주문 시스템이 필요합니다. 즉, SL과 TP로 첫 번째 거래인 "시장 주문"을 수동으로 얻습니다. SL이 히트하면 시스템이 SL과 반대 방향으로 새 주문을 생성합니다(새 주문의 경우 항목), 첫 번째 거래의 항목은 이제 항상 핍으로 동일한 값인 SL 및 TP이지만 설정에 수동으로 입력하고 싶습니다. 몇 로트 또는 미니 로트가 프로그레시브 거래, 일종의 마틴게일, 하지만 실제로는 그렇지 않습니다. TP에 도달할 때까지 시스템은 새 주문을 생성해야 합니다. TP에 도달하면 시스템이 중지되거나 닫힙니다. 수동으로 첫 번째 주문을 다시 넣을 때까지. 나는 설명에 혼란을 일으키지 않았기를 바랍니다! ;-)

내가 사용할 수있는 이런 것이 있습니까?

정말 감사합니다

 
laborax:
안녕하세요 Mladen과 Mr. Tools

문제가 있고 지표나 EA를 사용하여 이 작업을 수행하는 방법을 모르겠습니다. 하지만 정말 필요합니다. 도움이 될 수 있습니다.

반자동 주문 시스템이 필요합니다. 즉, SL과 TP로 첫 번째 거래인 "시장 주문"을 수동으로 얻습니다. SL이 히트하면 시스템이 SL과 반대 방향으로 새 주문을 생성합니다(새 주문의 경우 항목), 첫 번째 거래의 항목은 이제 항상 핍으로 동일한 값인 SL 및 TP이지만 설정에 수동으로 입력하고 싶습니다. 몇 로트 또는 미니 로트가 프로그레시브 거래, 일종의 마틴게일, 하지만 실제로는 그렇지 않습니다. TP에 도달할 때까지 시스템은 새 주문을 생성해야 합니다. TP에 도달하면 시스템이 중지되거나 닫힙니다. 수동으로 첫 번째 주문을 다시 넣을 때까지. 나는 설명에 혼란을 일으키지 않았기를 바랍니다! ;-)

내가 사용할 수있는 이런 것이 있습니까?

정말 감사합니다

노동력

그 규칙은 그것을 기반으로 EA를 만들기에는 너무 느슨하고 내가 아는 한 그런 EA는 없습니다.

 

이 EA를 찾았습니다. 그게 제가 찾던 것입니다... 그것에 대해 어떻게 생각하세요?

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

사유: