코딩 도움말 - 페이지 104

 

고마워 톤 Mladen .... 당신은 훌륭합니다 ...

 

안녕하세요 여러분,

103페이지에 있는 제 요청을 도와주시겠습니까? 온라인에서 정보를 찾고 있었지만 5개 막대마다 경고를 받을 수 없었습니다(정시부터 시작).

미리 감사합니다

 

친애하는 Mladen/Mr Tools 이 ea를 수정하여 일단 중지되거나 tp에 도달하면 거래가 다시 열리지 않도록 해주실 수 있습니까?

파일:
 

손절을 위한 코딩 도움말

안녕하세요 여러분,

나는 손절매를 변경할 수 없는 이 EA를 가지고 있습니다.

내가 무엇을 바꿔도 그것은 변하지 않을 것이다. 손절매를 최소 300으로 변경하고 싶습니다. 아이디어가 있습니까?

미리 감사드립니다

이것은 그것에 대한 코드입니다:

// 일반 사용자 입력

extern 이중 로트=1.0;

외부 정수 TakeProfit=44;

extern int StopLoss = 90;

extern bool RSIMethodA=거짓;

extern bool RSIMethodB=true;

외부 정수 RSI값=50;

extern bool AbandonMethodA=true;

extern bool AbandonMethodB=거짓;

extern int 포기=101;

extern bool MoneyManagement=true;

extern int 위험 = 2;

extern int 미끄러짐=3;

extern 부울 UseProfitLock=true;

extern int BreakEventTrigger=25;

extern int BreakEven=3;

extern bool LiveTrading=거짓;

extern bool AccountIsMini=거짓;

외부 정수 maxTradesPerPair = 1;

외부 정수 MagicNumber=5432;

이중 lotMM;

부울 BuySignal=거짓;

부울 SetBuy=거짓;

부울 SellSignal=거짓;

부울 SetSell=거짓;

// 바 핸들링

날짜 시간 막대 시간 = 0;

정수 바틱 = 0;

int TradeBars=0;

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

//| 전문가 초기화 기능 |

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

정수 초기화()

{

//----

//----

리턴(0);

}

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

//| 전문가 초기화 해제 기능 |

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

정수 초기화()

{

//----

//----

리턴(0);

}

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

//| 전문가 시작 기능 |

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

정수 시작()

{

//----

if (UseProfitLock) ProfitLockStop();

if (AbandonMethodA || AbandonMethodB)

{

RunAbandonCheck();

RunAbandonMethods();

}

if (!SetLotsMM()) return(0);

RunOrderTriggerCalculations();

RunPairSpesificSettings();

실행신규주문관리();

//----

리턴(0);

}

/////////////////////////////////////////////////////

// SetLotsMM - Robert Cochran 작성 http://autoforex.biz

/////////////////////////////////////////////////////

bool SetLotsMM()

{

이중 여백 컷오프;

if(!AccountIsMini) MarginCutoff = 1000;

if( AccountIsMini) MarginCutoff = 100;

if(AccountFreeMargin() < MarginCutoff) 반환(거짓);

if(머니 매니지먼트)

{

lotMM = MathCeil(AccountBalance() * 위험 / 10000) / 10;

if(lotMM < 0.1) lotMM = 제비;

if(lotMM > 1.0) lotMM = MathCeil(lotMM);

// 로트 크기 경계 적용

if(라이브 트레이딩)

{

if( AccountIsMini) lotMM = lotMM * 10;

if(!AccountIsMini && lotMM < 1.0) lotMM = 1.0;

}

if(lotMM > 100) lotMM = 100;

}

또 다른

{

lotMM = 제비; // Lot 매개변수를 적용하려면 MoneyManagement를 0으로 변경합니다.

}

반환(참);

}

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

/////////////////////////////////////////////////////

// RunOrderTriggerCalculations

/////////////////////////////////////////////////////

bool RunOrderTriggerCalculations()

{

부울 RSIPOS=거짓;

bool RSINEG=거짓;

// Bar[1]의 3기간 이동 평균

더블 불MA3=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);

// Bar[1]의 7기간 이동 평균

더블 bearMA7=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);

// Bar[2]의 2기간 이동 평균

이중 RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);

이중 RSI2=iRSI(Symbol(),0,2,PRICE_CLOSE,1);

// RSI가 어떤 극성인지 확인

if (RSIMethodA)

{

if(RSI>RSI값 && RSI2<RSI값)

{

RSIPOS=참;

RSINEG=거짓;

}

그렇지 않으면 RSIPOS=거짓;

if(RSIRSI값)

{

RSIPOS=거짓;

RSINEG=참;

}

그렇지 않으면 RSINEG=거짓;

}

if (RSIMethodB)

{

if(RSI>RSI값)

{

RSIPOS=참;

RSINEG=거짓;

}

if(RSI<RSI값)

{

RSIPOS=거짓;

RSINEG=참;

}

}

if ((bullMA3 > (bearMA7+Point)) && RSINEG)

{

BuySignal=참;

}

그렇지 않으면 BuySignal=거짓;

if ((bullMA3 < (bearMA7-포인트)) && RSIPOS)

{

SellSignal=참;

}

그렇지 않으면 SellSignal=거짓;

반환(참);

}

/////////////////////////////////////////////////////

// OpenOrdersBySymbolAndComment

/////////////////////////////////////////////////////

int OpenOrdersForThisEA()

{

정수 정수 = 0;

for(int x=0;x<OrdersTotal();x++)

{

주문 선택(x, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

자주++;

}

}

반환(자주);

}

/////////////////////////////////////////////////////

// PROFIT LOCK - Robert Cochran 작성 - http://autoforex.biz

/////////////////////////////////////////////////////

bool ProfitLockStop()

{

if( OpenOrdersForThisEA() > 0 )

{

for ( int i = 0; i < OrdersTotal(); i++){

주문 선택(i, SELECT_BY_POS, MODE_TRADES);

//--- 장기 거래

if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber()== MagicNumber)

{

if (Bid >= OrderOpenPrice() + BreakEvenTrigger*Point &&

OrderOpenPrice() > OrderStopLoss())

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + BreakEven * 포인트, OrderTakeProfit(), 녹색);

}

}

//--- 단기 거래

if(OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber()==MagicNumber)

{

if (Ask <= OrderOpenPrice() - BreakEvenTrigger*Point &&

OrderOpenPrice() < OrderStopLoss())

{

OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice() - 손익분기점 * 포인트, OrderTakeProfit(), 파란색);

}

}

}

}

}

/////////////////////////////////////////////////////

// 포기 체크

/////////////////////////////////////////////////////

bool RunAbandonCheck()

{

if( OpenOrdersForThisEA() > 0 )

{

if (TradeBars == 0 && bartick == 0)

{

(int i = 0; i < OrdersTotal(); i++)

{

if (OrderSymbol() == Symbol())

{

TradeBars = MathFloor(CurTime() - OrderOpenTime())/60/Period();

바타임 = 시간[0];

bartick = TradeBars;

}

}

}

if(bartime!=시간[0])

{

bartime=시간[0];

바틱++;

}

}

반환(참);

}

/////////////////////////////////////////////////////

// RunAbandon 메서드

/////////////////////////////////////////////////////

bool RunAbandonMethods()

{

if( OpenOrdersForThisEA() > 0 )

{

(int i = 0; i < OrdersTotal(); i++)

{

주문 선택(i, SELECT_BY_POS, MODE_TRADES);

if (AbandonMethodA && bartick==Abandon)//포기 후 강제 "HEDGE"

{

// 장기 거래

if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&

OrderMagicNumber()==MagicNumber)

{

OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue);

SetSell=참;

계속하다;

}

// 공매도

if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&

OrderMagicNumber()==MagicNumber)

{

OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Blue);

SetBuy=참;

계속하다;

}

}

if (AbandonMethodB && bartick==Abandon)//포기 후 인디케이터가 방향을 결정합니다.

{

// 장기 거래

if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&

OrderMagicNumber()==MagicNumber)

{

OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White);

계속하다;

}

// 공매도

if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&

OrderMagicNumber()==MagicNumber)

{

OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White);

계속하다;

}

}

}

}

반환(참);

}

/////////////////////////////////////////////////////

// RunPairSpesificSettings

/////////////////////////////////////////////////////

bool RunPairSpesificSettings()

{

// 심볼 최적화 설정

if (Symbol()=="GBPUSD")

{

테이크프로핏=55; 손절매=100; 포기=69;

}

반환(참);

}

/////////////////////////////////////////////////////

// 신규주문관리 실행

/////////////////////////////////////////////////////

bool RunNewOrderManagement()

{

이중 TP, SL;

if( OpenOrdersForThisEA() < maxTradesPerPair )

{

//ENTRY Ask(매수, 매수)

if (BuySignal || SetBuy)

{

SL = 묻기 - 손절매*포인트;

TP = 질문 + TakeProfit*포인트;

OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP,"TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);

바틱=0;

if (SetBuy) SetBuy=거짓;

반환(참);

}

//ENTRY 입찰(매도, 공매도)

if (SellSignal || SetSell)

{

SL = 입찰가 + 손절매*포인트;

TP = 입찰가 - 이익실현*포인트;

OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,TP,"TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);

바틱=0;

if (SetSell) SetSell=거짓;

반환(참);

}

}

반환(참);

}

 
graphics:
안녕하세요 여러분,

나는 손절매를 변경할 수 없는 이 EA를 가지고 있습니다.

내가 무엇을 바꿔도 그것은 변하지 않을 것이다. 손절매를 최소 300으로 변경하고 싶습니다. 아이디어가 있습니까?

미리 감사드립니다

이것은 그것에 대한 코드입니다:

// 일반 사용자 입력

extern 이중 로트=1.0;

외부 정수 TakeProfit=44;

extern int StopLoss = 90;

extern bool RSIMethodA=거짓;

extern bool RSIMethodB=true;

외부 정수 RSI값=50;

extern bool AbandonMethodA=true;

extern bool AbandonMethodB=거짓;

extern int 포기=101;

extern bool MoneyManagement=true;

extern int 위험 = 2;

extern int 미끄러짐=3;

extern 부울 UseProfitLock=true;

extern int BreakEventTrigger=25;

extern int BreakEven=3;

extern bool LiveTrading=거짓;

extern bool AccountIsMini=거짓;

외부 정수 maxTradesPerPair = 1;

외부 정수 MagicNumber=5432;

이중 lotMM;

부울 BuySignal=거짓;

부울 SetBuy=거짓;

부울 SellSignal=거짓;

부울 SetSell=거짓;

// 바 핸들링

날짜 시간 막대 시간 = 0;

정수 바틱 = 0;

int TradeBars=0;

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

//| 전문가 초기화 기능 |

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

정수 초기화()

{

//----

//----

리턴(0);

}

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

//| 전문가 초기화 해제 기능 |

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

정수 초기화()

{

//----

//----

리턴(0);

}

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

//| 전문가 시작 기능 |

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

정수 시작()

{

//----

if (UseProfitLock) ProfitLockStop();

if (AbandonMethodA || AbandonMethodB)

{

RunAbandonCheck();

RunAbandonMethods();

}

if (!SetLotsMM()) return(0);

RunOrderTriggerCalculations();

RunPairSpesificSettings();

실행신규주문관리();

//----

리턴(0);

}

/////////////////////////////////////////////////////

// SetLotsMM - Robert Cochran 작성 autoforex.biz - BlueHost.com

/////////////////////////////////////////////////////

bool SetLotsMM()

{

이중 여백 컷오프;

if(!AccountIsMini) MarginCutoff = 1000;

if( AccountIsMini) MarginCutoff = 100;

if(AccountFreeMargin() < MarginCutoff) 반환(거짓);

if(머니 매니지먼트)

{

lotMM = MathCeil(AccountBalance() * 위험 / 10000) / 10;

if(lotMM < 0.1) lotMM = 제비;

if(lotMM > 1.0) lotMM = MathCeil(lotMM);

// 로트 크기 경계 적용

if(라이브 트레이딩)

{

if( AccountIsMini) lotMM = lotMM * 10;

if(!AccountIsMini && lotMM < 1.0) lotMM = 1.0;

}

if(lotMM > 100) lotMM = 100;

}

또 다른

{

lotMM = 제비; // Lot 매개변수를 적용하려면 MoneyManagement를 0으로 변경합니다.

}

반환(참);

}

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

/////////////////////////////////////////////////////

// RunOrderTriggerCalculations

/////////////////////////////////////////////////////

bool RunOrderTriggerCalculations()

{

부울 RSIPOS=거짓;

bool RSINEG=거짓;

// Bar[1]의 3기간 이동 평균

더블 불MA3=iMA(Symbol(),0,3,0,MODE_EMA,PRICE_CLOSE,1);

// Bar[1]의 7기간 이동 평균

더블 bearMA7=iMA(Symbol(),0,7,0,MODE_EMA,PRICE_CLOSE,1);

// Bar[2]의 2기간 이동 평균

이중 RSI=iRSI(Symbol(),0,2,PRICE_CLOSE,2);

이중 RSI2=iRSI(Symbol(),0,2,PRICE_CLOSE,1);

// RSI가 어떤 극성인지 확인

if (RSIMethodA)

{

if(RSI>RSI값 && RSI2<RSI값)

{

RSIPOS=참;

RSINEG=거짓;

}

그렇지 않으면 RSIPOS=거짓;

if(RSIRSI값)

{

RSIPOS=거짓;

RSINEG=참;

}

그렇지 않으면 RSINEG=거짓;

}

if (RSIMethodB)

{

if(RSI>RSI값)

{

RSIPOS=참;

RSINEG=거짓;

}

if(RSI<RSI값)

{

RSIPOS=거짓;

RSINEG=참;

}

}

if ((bullMA3 > (bearMA7+Point)) && RSINEG)

{

BuySignal=참;

}

그렇지 않으면 BuySignal=거짓;

if ((bullMA3 < (bearMA7-포인트)) && RSIPOS)

{

SellSignal=참;

}

그렇지 않으면 SellSignal=거짓;

반환(참);

}

/////////////////////////////////////////////////////

// OpenOrdersBySymbolAndComment

/////////////////////////////////////////////////////

int OpenOrdersForThisEA()

{

정수 정수 = 0;

for(int x=0;x<OrdersTotal();x++)

{

주문 선택(x, SELECT_BY_POS, MODE_TRADES);

if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)

{

자주++;

}

}

반환(자주);

}

/////////////////////////////////////////////////////

// PROFIT LOCK - Robert Cochran 작성 - autoforex.biz에 오신 것을 환영합니다. - BlueHost.com

/////////////////////////////////////////////////////

bool ProfitLockStop()

{

if( OpenOrdersForThisEA() > 0 )

{

for ( int i = 0; i < OrdersTotal(); i++){

주문 선택(i, SELECT_BY_POS, MODE_TRADES);

//--- 장기 거래

if(OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber()== MagicNumber)

{

if (Bid >= OrderOpenPrice() + BreakEvenTrigger*Point &&

OrderOpenPrice() > OrderStopLoss())

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + BreakEven * 포인트, OrderTakeProfit(), 녹색);

}

}

//--- 단기 거래

if(OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber()==MagicNumber)

{

if (Ask <= OrderOpenPrice() - BreakEvenTrigger*Point &&

OrderOpenPrice() < OrderStopLoss())

{

OrderModify(OrderTicket(), OrderOpenPrice(),OrderOpenPrice() - 손익분기점 * 포인트, OrderTakeProfit(), 파란색);

}

}

}

}

}

/////////////////////////////////////////////////////

// 포기 체크

/////////////////////////////////////////////////////

bool RunAbandonCheck()

{

if( OpenOrdersForThisEA() > 0 )

{

if (TradeBars == 0 && bartick == 0)

{

(int i = 0; i < OrdersTotal(); i++)

{

if (OrderSymbol() == Symbol())

{

TradeBars = MathFloor(CurTime() - OrderOpenTime())/60/Period();

바타임 = 시간[0];

bartick = TradeBars;

}

}

}

if(bartime!=시간[0])

{

bartime=시간[0];

바틱++;

}

}

반환(참);

}

/////////////////////////////////////////////////////

// RunAbandon 메서드

/////////////////////////////////////////////////////

bool RunAbandonMethods()

{

if( OpenOrdersForThisEA() > 0 )

{

(int i = 0; i < OrdersTotal(); i++)

{

주문 선택(i, SELECT_BY_POS, MODE_TRADES);

if (AbandonMethodA && bartick==Abandon)//포기 후 강제 "HEDGE"

{

// 장기 거래

if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&

OrderMagicNumber()==MagicNumber)

{

OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Blue);

SetSell=참;

계속하다;

}

// 공매도

if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&

OrderMagicNumber()==MagicNumber)

{

OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Blue);

SetBuy=참;

계속하다;

}

}

if (AbandonMethodB && bartick==Abandon)//포기 후 인디케이터가 방향을 결정합니다.

{

// 장기 거래

if (OrderType() == OP_BUY && OrderSymbol() == Symbol() &&

OrderMagicNumber()==MagicNumber)

{

OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,White);

계속하다;

}

// 공매도

if (OrderType() == OP_SELL && OrderSymbol() == Symbol() &&

OrderMagicNumber()==MagicNumber)

{

OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,White);

계속하다;

}

}

}

}

반환(참);

}

/////////////////////////////////////////////////////

// RunPairSpesificSettings

/////////////////////////////////////////////////////

bool RunPairSpesificSettings()

{

// 심볼 최적화 설정

if (Symbol()=="GBPUSD")

{

테이크프로핏=55; 손절매=100; 포기=69;

}

반환(참);

}

/////////////////////////////////////////////////////

// 신규주문관리 실행

/////////////////////////////////////////////////////

bool RunNewOrderManagement()

{

이중 TP, SL;

if( OpenOrdersForThisEA() < maxTradesPerPair )

{

//ENTRY Ask(매수, 매수)

if (BuySignal || SetBuy)

{

SL = 묻기 - 손절매*포인트;

TP = 묻기 + TakeProfit*포인트;

OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP,"TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);

바틱=0;

if (SetBuy) SetBuy=거짓;

반환(참);

}

//ENTRY 입찰(매도, 공매도)

if (SellSignal || SetSell)

{

SL = 입찰가 + 손절매*포인트;

TP = 입찰가 - 이익실현*포인트;

OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,TP,"TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);

바틱=0;

if (SetSell) SetSell=거짓;

반환(참);

}

}

반환(참);

}

기호가 GBPUSD인 경우 StopLoss를 항상 100으로 설정합니다.

다른 사람들에게는 정상적으로 작동해야 합니다(EA가 핍이 아닌 포인트로 작동하기 때문에 5자리 브로커의 경우 손절매에 10을 곱해야 한다는 점을 제외하고)

 

현재 USD/JPY로 사용하고 있으며 손절매 는 여전히 100에 머물러 있습니다.

손절매 승수는 어디에서 찾을 수 있습니까?

 
graphics:
현재 USD/JPY로 사용하고 있으며 손절매는 여전히 100에 머물러 있습니다. 손절매 승수는 어디에서 찾을 수 있습니까?

손절매와 이익실현 은 이 부분에서 설정됩니다.

bool RunNewOrderManagement()

{

double TP,SL;

if( OpenOrdersForThisEA() < maxTradesPerPair )

{

//ENTRY Ask(buy, long)

if (BuySignal || SetBuy)

{

SL = Ask - StopLoss*Point;

TP = Ask + TakeProfit*Point;

OrderSend(Symbol(),OP_BUY,lotMM,Ask,Slippage,SL,TP ,"TS-ProfitLock - "+Symbol()+" - Long",MagicNumber,0,White);

bartick=0;

if (SetBuy) SetBuy=false;

return(true);

}

//ENTRY Bid (sell, short)

if (SellSignal || SetSell)

{

SL = Bid + StopLoss*Point;

TP = Bid - TakeProfit*Point;

OrderSend(Symbol(),OP_SELL,lotMM,Bid,Slippage,SL,T P,"TS-ProfitLock - "+Symbol()+" - Short",MagicNumber,0,Red);

bartick=0;

if (SetSell) SetSell=false;

return(true);

}

}

return(true);

}[/PHP]

As of stop loss that stays 100 : this part of code

[PHP]bool RunPairSpesificSettings()

{

// set up the symbol optimizations

if (Symbol()=="GBPUSD")

{

TakeProfit=55; StopLoss=100; Abandon=69;

}

return(true);

}

기호가 "GBPUSD"(코드에서 볼 수 있듯이)인 경우에만 활성화되므로 이 경우에만 되돌립니다. 코드를 다시 확인하고 100을 찾으면 첨부한 코드에서 손절매가 GBPUSD의 경우에만 되돌려지기 때문에 손절매에 무슨 일이 일어나고 있는지 알 수 있습니다.

 

통화 쌍을 내가 거래하는 통화 쌍 으로 변경하더라도 여전히 손절매를 변경하지 않습니다. 이 EA는 손절매를 변경할 수 있다면 완벽했을 것입니다.

어쨌든 도와주셔서 감사합니다.

 

안녕하세요 코더 여러분,

누구든지 이 스퀴즈 브레이크 표시기를 EMA 볼린저 밴드 옵션과 EMA 켈트너 채널 옵션을 갖도록 수정할 수 있습니까?

감사해요 :)

파일:
 
iwillsurvive:
안녕하세요 코더 여러분,

누구든지 이 스퀴즈 브레이크 표시기를 EMA 볼린저 밴드 옵션과 EMA 켈트너 채널 옵션을 갖도록 수정할 수 있습니까?

감사해요 :)

안녕하세요 Iwillsurvive님, 기본적으로 EMA로 설정되어 있는 켈트 너 밴드 와 볼린저 밴드 모두에서 ma를 선택할 수 있도록 표시기를 변경했습니다.

파일: