누가 알겠습니까? 문제는 두 개의 선이 있다는 것입니다. 하나는 일련의 양초에서 새로 부상하는 고점을 따르고 다른 하나는 저점을 따릅니다. 선 사이의 거리가 50 이상이면 수직선을 그려야 합니다. 수직선의 경우 좌표 - 시간이 필요합니다. 선 사이의 거리가 50 이상이 되는 시간을 빼려면 무엇을 사용할 수 있습니까? 나는 나 자신을 생각할 수 없습니다.
아니면 단순히 "아직 고문의 역사에 단 하나의 주문이 없다"라고 단순히 결정하는 그런 기능이 있습니까? - 그것으로 충분할 것이다
이건 모르겠어. 여기 누가 대답할 수 있습니까?
그래도 I. Kim의 폼을 리메이크 하면? 이 하나:
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает количество позиций. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int NumberOfPositions (string sy ="",int op =-1,int mn =-1){int i , k =OrdersTotal(), kp =0;if( sy =="0") sy =Symbol();for( i =0; i < k ; i ++){if(OrderSelect( i , SELECT_BY_POS , MODE_TRADES )){if(OrderSymbol()== sy || sy ==""){if(OrderType()==OP_BUY||OrderType()==OP_SELL){if( op <0||OrderType()== op ){if( mn <0||OrderMagicNumber()== mn ) kp ++;}}}}}return( kp );}
저것들. MODE_TRADES 대신 MODE_HISTORY를 사용하십시오. 주문은 마감된 주문과 삭제된 주문 중에서 선택됩니다.
그런 다음(함수 이름 변경):
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает кол-во ордеровиз истории счета |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" - любой символ, |//| NULL - текущий символ) |//| op - операция (-1 - любая позиция) |//| mn - MagicNumber (-1 - любой магик) |//+----------------------------------------------------------------------------+int NumberOfPos_HISTORY (string sy ="",int op =-1,int mn =-1){int i , k =OrdersTotal(), kp =0;if( sy =="0") sy =Symbol();for( i =0; i < k ; i ++){if(OrderSelect( i , SELECT_BY_POS , MODE_HISTORY )){if(OrderSymbol()== sy || sy ==""){if(OrderType()==OP_BUY||OrderType()==OP_SELL){if( op <0||OrderType()== op ){if( mn <0||OrderMagicNumber()== mn ) kp ++;}}}}}return( kp );}
누가 알겠습니까? 문제는 두 개의 선이 있다는 것입니다. 하나는 일련의 양초에서 새로 부상하는 고점을 따르고 다른 하나는 저점을 따릅니다. 선 사이의 거리가 50 이상이면 수직선을 그려야 합니다. 수직선의 경우 좌표 - 시간이 필요합니다. 선 사이의 거리가 50 이상이 되는 시간을 빼려면 무엇을 사용할 수 있습니까? 나는 나 자신을 생각할 수 없습니다.
vert선은 ObjectCreate를 사용하여 그리고 싶었습니다 ... 시간없이 할 수 있다면 무엇을 사용해야합니까?아니면 단순히 "아직 고문의 역사에 단 하나의 주문이 없다"라고 단순히 결정하는 그런 기능이 있습니까? - 그것으로 충분할 것이다
이건 모르겠어. 여기 누가 대답할 수 있습니까?
그래도 I. Kim의 폼을 리메이크 하면? 이 하나:
저것들. MODE_TRADES 대신 MODE_HISTORY를 사용하십시오. 주문은 마감된 주문과 삭제된 주문 중에서 선택됩니다.
그런 다음(함수 이름 변경):
시도해보십시오 - 작동합니까?
친구, 좋은 오후입니다.
제발, 그런 것을 말해 주세요.
예를 들어, "가격 캔들"이 이동 평균 을 교차했을 때 포지션을 열어야 합니다.
지금까지는 촛대가 닫혔을 때/평균 위/아래로 열렸을 때만 신호를 분류할 수 있었습니다...
( iMA( .....) >닫기[1] 또는 iMA(....) >열기[0] )
그러나 현재 촛불이 닫히고 다음 촛불이 열리기를 기다리지 않고 이미 MA 위/아래에 있는 경우 현재 촛불로 진입하려면 어떻게 해야 하나요???
미리 감사드립니다.
친구, 좋은 오후입니다.
제발, 그런 말을 해 주세요.
예를 들어, "가격 캔들"이 이동 평균을 교차할 때 포지션을 열어야 합니다.
지금까지는 촛대가 닫혔을 때/평균 위/아래로 열렸을 때만 신호를 분류할 수 있었습니다...
( iMA( .....) >닫기[1] 또는 iMA(....) >열기[0] )
그러나 현재 촛불이 닫히고 다음 촛불이 열리기를 기다리지 않고 이미 MA 위/아래에 있는 경우 현재 촛불로 진입하려면 어떻게 해야 하나요???
미리 감사드립니다.
그리고 싫어하는 것:
iMA(....) >열기[0] ? - 0은 현재 촛불입니다.
그리고 싫어하는 것:
iMA(....) >열기[0] ? - 0은 현재 촛불입니다.
이것은 사실이지만 예를 들어 MA 아래에서 열렸을 때 가격(보통 뉴스에서)이 긴 양초로 MA를 돌파하고 위아래로 움직이는 경우가 있습니다....
내 여는 기준을 사용하면 그러한 움직임을 놓칠 수 있습니다 ...
따라서 가격이 현재 평균보다 높거나 낮으면 포지션을 열고 싶습니다. 이 양초가 닫히고 다음 양초가 열릴 때까지 기다리지 마십시오.
다음과 같이 할 수 있습니다.
(이전 막대의 MA가 이전 막대의 종가보다 크고 현재 막대의 MA가 현재 막대의 시가보다 낮 으면 매도)
제발 도와주세요 이틀째 고르고 있는데 이해가 안되네요. 나는 Kovalev의 교과서에서 코드를 가져 와서 구매 주문 을 열려고 시도하고 "오류 130"이라는 대답을 얻었습니다. 손절매와 이익 실현이 0으로 설정되면 작업이 성공한 것입니다.
코드
nt f_Open_Ord(int 팁)
{
int Ticket, // 주문 번호
미네소타; // 매직넘버
double SL, // StopLoss(가격 가치 기준)
TP; // TakeProf(가격 대비)
//------------------------------------------------ --------------- 삼 --
while(g_Mas_Tip[Tip]==0) // 까지 ..
{ //.. 성공하지 못했습니다.
if (SL<g_Level_new) // 허용보다 작으면..
SL=(g_Level_new+20); // .. 그러면 유효
if (TP<g_Level_new)
// 허용보다 작으면..
TP=(g_Level_new+20); // ..그러면 유효
MN=TimeCurrent(); // 단순 매직넘버
f_Inform(13,팁); // 오픈 시도에 대한 메시지
if (Tip==0) // 구매를 엽니다.
{
SL=입찰가 - SL*포인트; // 손절매(가격)
SL=NormalizeDouble(SL, 숫자);
TP=입찰가 + TP*포인트; // TakeProfit(가격)
TP=NormalizeDouble(TP, 숫자);
티켓=OrderSend(Symbol(),0,g_Lots_New,Ask,5,1.46500,1.47500,"",MN);
err=GetLastError();
Comment("오류번호 ",err);
if (티켓>0) f_Inform(4);
//if(티켓<0) f_Inform(25);
코드가 수정되었습니다. 모든 것이 올바르게 작동합니다. 오류가 코드에 없는 것 같습니다. DC-브로코/
죄송합니다, 서둘러. OrderSend 함수 의 값 1.46500 및 1.47500은 각각 SL 및 TP로 대체되어야 합니다.
죄송합니다, 서둘러. OrderSend 함수의 값 1.46500 및 1.47500은 각각 SL 및 TP로 대체되어야 합니다.
그리고 SL과 TP는 무엇과 같습니까? 위의 코드와 같이 0이면 모든 것이 올바른 것입니다. 오류가 발생해야 합니다.
정지는 다음과 같이 계산되는 g_Level_new 전역 변수 에서 가져옵니다. g_Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL)