[경고, 주제 닫힘!] 포럼을 어지럽히지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 당신 없이는 어디에도 없습니다. - 페이지 896

 
belck :

질문. 다음과 같이 이익실현을 설정하고 싶습니다.

 if (TakeProfit< 10 * Point ) TakeProfit= 10 * Point ;
표시선은 일정 시간 후에 위치를 변경합니다. 그러나 이익을 취하는 것이 변경되지 않고 오프닝에서 할당 된 것과 동일하게 유지되도록 만드는 방법은 무엇입니까?
나는 당신이 TP를 계산하는 이유를 추측하기조차 어렵다는 것을 알게 되었습니다. 일반적으로 take는 주문할 때 계산됩니다. 그런 다음 주문에 할당되고 OrderModify()를 사용하여 변경해야 합니다. TP는 가상입니다. , 그런 다음 배열로 기억하십시오.
 
IgorM :
나는 당신이 TP를 계산하는 이유를 추측하기조차 어렵다는 것을 알게 되었습니다. 일반적으로 take는 주문할 때 계산됩니다. 그런 다음 주문에 할당되고 OrderModify()를 사용하여 변경해야 합니다. TP는 가상입니다. , 그런 다음 배열로 기억하십시오.

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

 

안녕히 주무세요! 고문을 여기에서 채찍질했습니다. 지금은 계속 훈련하고 있습니다. 매번 모든 것이 더 빨리 나타납니다. 오직 그는 거래하지 않습니다!

가능하면 말씀해 주세요. 연락을 드리는 것 같아요.

//+----------------------------------------------- --------------------+
//| 다이몬 테두리 .mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+----------------------------------------------- --------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#속성 링크 "http://www.metaquotes.net"

//+----------------------------------------------- --------------------+
//| 전문가 초기화 기능 |
//+----------------------------------------------- --------------------+
extern int BandsPeriod=20,i=1 ;extern int BandsShift=0;
외부 이중 대역편차=2.0;
extern 더블 랏=0.1, TakeProfit=50, 손절매=10 ;
정수 초기화()
{int 평균;
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 초기화 해제 기능 |
//+----------------------------------------------- --------------------+
정수 초기화()
{
//----

//----
리턴(0);
}
//+----------------------------------------------- --------------------+
//| 전문가 시작 기능 |
//+----------------------------------------------- --------------------+
정수 시작()
{더블 평균, 상한, 하한, newres, 합계, 편차;

평균=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
//----
newres=닫기[i]-평균;
합계=뉴스*뉴스;


편차=대역 편차*MathSqrt(합/대역 주기);
상한=중간+편차;
하한=중간편차;
//----
if (상위 테두리<닫기[i])
{ Comment("부표!",상향 );
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);

}


if (하단>닫기[i])
{ Comment(" Sell! ", Lower bound );

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
}
반환(0);
}
//+----------------------------------------------- --------------------+

영어가 아닌 변수에 대해 사과드립니다. 무엇이 무엇인지 기억하는 것이 훨씬 쉽습니다.

 
VOLDEMAR :
여기요 ! 뭐가 잘못됐는지 모르겠어???? 시장가 주문을 수정하지 않습니다
slb =NormalizeDouble(입찰가 - (손절매 * 포인트), 자릿수); // 매수 포지션에 대한 스톱 계산 //
tpb =NormalizeDouble(Ask + (TakeProfit* 포인트), 자릿수); // 매수 포지션에 대한 이익 계산 //
sls =NormalizeDouble(Ask + (StopLoss * Point),Digits); // 매도 포지션에 대한 스톱 계산 //
tps =NormalizeDouble(Bid - (TakeProfit* 포인트), 자릿수);

//================================================== = ====================//
정수 합계=OrdersTotal();
정수 = 0;
for (int i=total-1; i>=0; i--)
{
if(주문선택(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++;
}}}
만약 ( 총 == 1 )
{
for (int k=total-1; k>=0; k--)
{
if(주문선택(k, SELECT_BY_TICKET))
Alert("주문은", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("오류", GetLastError());

}}}}
반환(0);}

어떤 문제를 도와줄 수 있습니까 ...........................................................

다음과 같이 시도할 수도 있습니다.

 double TakeProfitBuy = NormalizeDouble ((three - zero) / 4 , Digits );
if (TakeProfitBuy< 10 * Point ) TakeProfitBuy= 10 * Point ;
double TakeProfitSell = NormalizeDouble ((zero - two) / 4 , Digits );
if (TakeProfitSell< 25 * Point ) TakeProfitSell= 25 * Point ;
 

얼마나 더 나은지:

- 어떤 쌍과 거래 기간을 고문에 지정하십시오.

또는

- 원하는 설정 기간의 통화 쌍 차트에 고문을 던집니다.

??

 

한 번만 더 요청하십시오. 똑똑할 필요가 없습니다. 미리 씁니다. 그리고 그것은 별로 좋지 않습니다.

저에게는 이 질문에 대한 답이 매우 중요하므로 진지하게 받아주세요.

 
제 생각에는 두 번째 옵션이 훨씬 더 실용적이고 편리합니다.
 

그것은 결정되고 선택한 솔루션에서 멈출 것입니다.

필요한 통화 쌍에 대해 조언을 제공하거나 특정 통화 쌍에 대해 즉시 작성하십시오.

저도 그냥 던지는 편입니다.

그러나 나는 이것에 대해 더 많은 경험을 가진 사람들의 의견도 중요하게 생각합니다. 어느 것이 더 나은지 이미 결정했습니다.

 
매우 합리적입니다. 나는 확실히 전문가는 아니지만 두 번째 옵션이 훨씬 간단합니다.
 
도와주세요! EA는 작동하지 않으며 거래도 하지 않습니다.