코딩하는 방법? - 페이지 43

 
jimven:
Flytox: 내 TrendStrength 사본에서 그러한 코드를 찾을 수 없습니다.

TrendStrength v2.2입니다.

 

사용자 정의 가격 모드

사용자 정의 pricemode를 만드는 방법을 아는 사람이 있습니까? 나는 가격(extern int PriceMode = 6; //(high+low+close+close)/4)이 MA를 교차할 때 신호를 보내기 위해 다음 경고를 사용하고 있습니다. 오프셋(예: 1 또는 2%)을 추가하여 이 사용자 지정을 만들고 싶습니다. 이게 가능해 ? 다음과 같은 것:

extern int PriceMode = ((고가+저가+종가+종가)/4) * 1.01

-------------------------------------------------- --

#속성 표시기_차트_창

extern int MA1.period =5; //기간 5

외부 int MA1.shift=0;

extern int MA1.method=2; //SMMA

extern int lMA1.price=2; //MA 캔들 하이로 설정

extern int sMA1.price=3; //MA 캔들 로우로 설정

외부 정수 PriceMode = 6; //(고가+저가+종가+종가)/4

int cBar, pBarLong, pBarShort;

정수 시작()

{

cBar = 시간[0];

if( CheckMACross (1)== 1 && cBar!=pBarLong ) {EmailAlert(1); pBarLong=cBar;}

또 다른

if(CheckMACross(2)==-1 && cBar!=pBarShort) {EmailAlert(2); pBarShort=cBar;}

리턴(0);

}

int CheckMACross(int 모드)

{

if(모드==1) int 가격 = lMA1.price;

또 다른

if(모드==2) 가격 = sMA1.price;

두 배 가격1 = iMA(Symbol(),0,1,0,1,PriceMode,1);

이중 ma1 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,1);

두 배 price0 = iMA(Symbol(),0,1,0,1,PriceMode,0);

이중 ma0 = iMA(Symbol(),0,MA1.period,MA1.shift,MA1.method, price,0);

if(ma1 > price1 && ma0 <= price0) return( 1);

또 다른

if(ma1 = price0) return(-1);

또 다른

리턴(0);

}

{

if(mode == 1) SendMail("LONG에 대한 신호",Symbol()+" 길게 이동"); //메일을 보내다

또 다른

if(mode == 2) SendMail("SHORT에 대한 신호",Symbol()+" 짧게 이동");//SendMail

}

int lastBAlert = 0;

정수 lastSAlert = 0;

무효 EmailAlert(int 모드)

{

if(모드 == 2 && lastSAlert < 시간[0] )

{

SendMail("짧게 1로 이동",Symbol()+"짧게 1로 이동"); //메일을 보내다

lastSAlert = 시간[0];

}

}

 
vonokpasah:
저를 위해 전문가 어드바이저 META 4 TRADER를 구축하는 데 도움이 필요합니다. 제 요청이 받아들여진다면 큰 도움이 될 것입니다.

전문가를 구축하는 수백만 가지 방법, 어떤 방식으로 생각하고 있었나요?

 

소스 코드 도움말!

모두들 안녕

EA가 있고 여기에 입력을 추가하고 싶습니다.

이익을 취하는 경우 >= :xx , 매수 :xx 로트

extern int Deltaopen1 = 100;

나는 썼다;

if (유형 == OP_BUY)

{

if (M2.BuyCnt == 0 && OrderTakeProfit() > OrderOpenPrice() + Deltaopen1*point)

{

Buy(Symbol(), GetLots2(), Ask, 0, 0, Magic2);

반품;

}

}

if (유형 == OP_SELL)

{

if (M2.SellCnt == 0 && OrderTakeProfit() <= OrderOpenPrice() - Deltaopen1*point)

{

Sell(Symbol(), GetLots2(), Bid, 0, 0, Magic2);

반품;

}

}

}

그러나 그것은 작동하지 않습니다,

도움을 주시면 감사하겠습니다.

고맙습니다

 

이 EA를 수정하는 데 약간의 도움이 필요합니다.

이 포럼의 다른 곳에서 볼 수 있는 "GAPS EA"의 수정된 버전인 이 ea가 있습니다.

어쨌든 코드 사본이 첨부되어 있습니다.

#property link ""

//---- input parameters

extern int min_gapsize = 1;

extern double lotsize_gap = 5;

extern int MagicNumber = 10;

//----

datetime order_time = 0;

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

//| expert initialization function |

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

int init()

{

//----

return(0);

}

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

//| expert deinitialization function |

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

int deinit()

{

//----

return(0);

}

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

//| expert start function |

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

int start()

{

/*

Thing to be done in future in this program to make it more efficient

and more powerful:

1. Make the dicission of the quantity of lots used according to

the scillators;

2. This program will catch the gaps.

Things to ware of:

1. the spread;

2. excuting the order not on the gap ends a little bit less.

*/

// Defining the variables to decide.

Print("order time", order_time);

double current_openprice = iOpen(Symbol(), 0, 0);

double previous_highprice = iHigh(Symbol(), 0, 1);

double previous_lowprice = iLow(Symbol(), 0, 1);

double point_gap = MarketInfo(Symbol(), MODE_POINT);

int spread_gap = MarketInfo(Symbol(), MODE_SPREAD)+1;

datetime current_time = iTime(Symbol(), 0, 0);

// catching the gap on sell upper gap

if(current_openprice > previous_highprice + (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

int ticket = OrderSend(Symbol(), OP_SELL, lotsize_gap, Bid, 0, 0,

previous_highprice + spread_gap,

"Gapped Up Sell " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Red);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (sell) :-)", order_time);

//----

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//catching the gap on buy down gap

if(current_openprice < previous_lowprice - (min_gapsize + spread_gap)*point_gap &&

current_time != order_time)

{

ticket = OrderSend(Symbol(), OP_BUY, lotsize_gap, Ask, 0, 0,

previous_lowprice - spread_gap,

"Gapped Down Buy " + Symbol()+ " " +Period()+ "", MagicNumber, 0, Green);

order_time = iTime(Symbol(), 0, 0);

Print("I am inside (buy) :-)", order_time);

if(ticket < 0)

{

Print("OrderSend failed with error #", GetLastError());

}

}

//----

return(0);

}

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

이것을 전략 테스터 에 넣을 때마다 거래가 열리지 않습니다. 저널을 살짝 들여다보면 주문 시간이 많이 소요되었다는 것을 알 수 있습니다. 내가 뭘 잘못했어?

 

도움말: 기본 히스토그램 질문

이것은 아마도 정말 쉽고 과거를 찾고 있지만 리소스가 부족하고 답을 찾을 수 없습니다.

내가 하려고 하는 모든 것은 이전에 그려진 히스토그램 막대의 값을 기억하는 것입니다.

어떤 아이디어?

즉 Close[1]은 차트에서 마지막으로 닫힌 막대를 보여줍니다.....

그렇다면 이 별도의 창 표시기에 마지막으로 그려진 히스토그램 막대는 무엇으로 표시됩니까?

미리 조언해 주셔서 감사합니다.

-다르산트

 
dharsant:
이것은 아마도 정말 쉽고 과거를 찾고 있지만 리소스가 부족하고 답을 찾을 수 없습니다.

내가 하려고 하는 모든 것은 이전에 그려진 히스토그램 막대의 값을 기억하는 것입니다.

어떤 아이디어?

즉 Close[1]은 차트에서 마지막으로 닫힌 막대를 보여줍니다.....

그렇다면 이 별도의 창 표시기에 마지막으로 그려진 히스토그램 막대는 무엇으로 표시됩니까?

미리 조언해 주셔서 감사합니다.

-다르산트

어떤 지표를 부르고 있습니까? 이전 막대를 호출하도록 시프트를 설정하기만 하면 됩니다.

예를 들어 현재 막대 이동 평균의 경우:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,0);

이전 막대 이동 평균의 경우:

iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,1);

표시기를 호출할 때 마지막 매개변수 는 현재에서 읽을 막대 수를 나타냅니다.

이것이 당신이 찾고 있던 것이기를 바랍니다.

 

코딩 도움이 필요합니다

나는 EA에서 몇 가지 다른 지표를 사용하려고 노력하고 있지만 시스템에 구현하는 방법을 알아낼 수 없는 것 같습니다. 매수 또는 매도를 말할 때 지표의 어느 부분을 사용합니까? 경사 방향 선을 EA의 일부로 가져오려면 어떻게 합니까?

건배

베노

파일:
 

나는 아마 나 자신을 제대로 설명하지 못했을 것이다.

iCustom에 넣어야 할 것이 무엇인지 찾으려고 노력 중입니다. 이것이 제가 아래에서 한 일입니다.

이중 SDL=iCustom(NULL,0,"경사 방향선", 기간, 방법, 가격)

그리고 내 EA에 대한 경사 방향선 표시기에서 매수 및 매도 신호 를 생성하기 위해 수행해야 하는 작업. 아래는 지금까지 수행한 작업입니다. 컴파일되지만 위치가 생성되지 않습니다.

bool Long = TML && SDL && HeikenAshiOpen < HeikenAshiClose && hasOpen < hasClose;

bool Short = TMS && SDL && HeikenAshiOpen > HeikenAshiClose && hasOpen > hasClose;

어떤 도움이라도 좋을 것입니다

건배

베노

 

먼저 iCustom 호출은 끝에 두 개의 추가 인수, 즉 읽을 표시기 버퍼 와 읽을 인덱스가 필요합니다.

둘째, "SDL"은 이중 숫자이므로 "SDL"을 조건으로 두는 것은 약간의 혼란을 나타냅니다. 아마도 "SDL != 0"으로 컴파일되며 아마도 이것이 의미하는 바입니다.